bi_tux

joined 1 year ago
[–] bi_tux@lemmy.world 2 points 6 hours ago (1 children)

you don't even need a supported gpu, I run ollama on my rx 6700 xt

[–] bi_tux@lemmy.world 1 points 6 hours ago (1 children)

what are the things you (don't) like? one of my hobbies is game developement (in Rust) and no AI managed to help me yet, on the other hand it's pretty good at repetetive and boring tasks like writing emails

[–] bi_tux@lemmy.world 15 points 6 hours ago

you don't use ai because you can't afford a subscription

I don't use it because it always destroys my code instead of fixing it

We are probably similar

[–] bi_tux@lemmy.world 4 points 13 hours ago (3 children)

I wanted to try it on my phone to, since I'm bored sitting on my train to work, but appearently you can't copy text out of jeroba and now I don't care enough to open it in my webbrowser

[–] bi_tux@lemmy.world 1 points 13 hours ago (2 children)

I mean invading poland side by side with the nazis, they weren't interested in getting rid of the nazis, why do you think they had a nap?

[–] bi_tux@lemmy.world 5 points 1 day ago (1 children)

wo piraten Scholz?

[–] bi_tux@lemmy.world 9 points 1 day ago (43 children)

don't worry, the soviets joined ww2 as well

[–] bi_tux@lemmy.world 1 points 4 days ago (1 children)

I mean c'mon, every pc that can compile rust in a reasonable time has at least 20gb of storage

[–] bi_tux@lemmy.world 1 points 5 days ago (1 children)

I 3d printed one for a few cents

[–] bi_tux@lemmy.world 0 points 5 days ago (3 children)

that's because Rust is more modern and in modern days we don't rly have hard disk limitation, also it's probably because the compiler tells you the solution to most problems

[–] bi_tux@lemmy.world 1 points 1 week ago

My all time favourite is god bless america, it's kind of relatable

283
submitted 1 week ago* (last edited 1 week ago) by bi_tux@lemmy.world to c/programmerhumor@lemmy.ml
 

This happend to me right noww as I tried to write a gui task manager for the GNU/Linux OS

 

ofc I imediatly upgraded it from winxp to gnu/linux

 

I hope memes are okay here

 

So I thought about this in the shower amd it makes sense to me, like praying and stuff never worked for most people I know, so a direkt link to god gotta be unlikely. That made me conclude that religion is probably fake, no matter if there's a god or not. Also people speaking to the same god being given a different set of rules sounds stupid, so at least most religions must be fake.

 

Why do some cars have their engines in the front and some in the back, what are the advantages and disadvantages of the two builds. And why doesn't every car have full wheel drive?

1
doggo (lemmy.world)
 
1
submitted 5 months ago* (last edited 5 months ago) by bi_tux@lemmy.world to c/rust@lemmy.ml
 

So I want to update the sprite so my character looks in a different direction each time the player presses left/right, how could I do this? I can't do it in the setup fn, since it's a startup system, appreciate any help

EDIT: changed formating

here is my code:

use bevy::prelude::*;

`fn main() {
    App::new()
        .add_plugins(DefaultPlugins.set(ImagePlugin::default_nearest())) // prevents blurry sprites
        .add_systems(Startup, setup)
        .add_systems(Update, animate_sprite)
        .add_systems(Update, player_movement_system)
        .run();
}

const BOUNDS: Vec2 = Vec2::new(1200.0, 640.0);
static mut FLIP_BOOLEAN: bool = false;

fn set_flip_boolean(boolean: bool) {
    unsafe {
        FLIP_BOOLEAN = boolean;
    }
}

fn get_flip_boolean() -> bool{
    unsafe {
        FLIP_BOOLEAN
    }
}

#[derive(Component)]
struct Player {
    movement_speed: f32,
}

#[derive(Component)]
struct AnimationIndices {
    first: usize,
    last: usize,
}

#[derive(Component, Deref, DerefMut)]
struct AnimationTimer(Timer);

fn animate_sprite(
    time: Res<Time>,
    mut query: Query<(&AnimationIndices, &mut AnimationTimer, &mut TextureAtlas)>,
) {
    for (indices, mut timer, mut atlas) in &mut query {
        timer.tick(time.delta());
        if timer.just_finished() {
            atlas.index = if atlas.index == indices.last {
                indices.first
            } else {
                atlas.index + 1
            };
        }
    }
}


fn setup(
    mut commands: Commands,
    asset_server: Res<AssetServer>,
    mut texture_atlas_layouts: ResMut<Assets<TextureAtlasLayout>>,
) {
    let texture = asset_server.load("sprites/Idle01.png");
    let layout = TextureAtlasLayout::from_grid(Vec2::new(64.0, 40.0), 5, 1, None, None);
    let texture_atlas_layout = texture_atlas_layouts.add(layout);
    let animation_indices = AnimationIndices { first: 0, last: 4 };
    let boolean = get_flip_boolean();
    commands.spawn(Camera2dBundle::default());
    commands.spawn((
        SpriteSheetBundle {
            texture,
            atlas: TextureAtlas {
                layout: texture_atlas_layout,
                index: animation_indices.first,
            },
            
            ..default()
        },
        Player {
            movement_speed: 500.0,
        },
        animation_indices,
        AnimationTimer(Timer::from_seconds(0.1, TimerMode::Repeating)),
    ));
}

fn player_movement_system(
    time: Res<Time>,
    keyboard_input: Res<ButtonInput<KeyCode>>,
    mut query: Query<(&Player, &mut Transform)>,
) {
    let (guy, mut transform) = query.single_mut();

    let mut movement_factor = 0.0;

    let mut movement_direction = Vec3::X;

    if keyboard_input.pressed(KeyCode::ArrowLeft) {
        movement_factor -= 1.0;
        movement_direction = Vec3::X;
        set_flip_boolean(true);
    }

    if keyboard_input.pressed(KeyCode::ArrowRight) {
        movement_factor += 1.0;
        movement_direction = Vec3::X;
        set_flip_boolean(false);
    }

    if keyboard_input.pressed(KeyCode::ArrowUp) {
        movement_factor += 1.0;
        movement_direction = Vec3::Y;
    }

    if keyboard_input.pressed(KeyCode::ArrowDown) {
        movement_factor -= 1.0;
        movement_direction = Vec3::Y;
    }


    let movement_distance = movement_factor * guy.movement_speed * time.delta_seconds();
    let translation_delta = movement_direction * movement_distance;
    transform.translation += translation_delta;

    let extents = Vec3::from((BOUNDS / 2.0, 0.0));
    transform.translation = transform.translation.min(extents).max(-extents);
}
 

tbh I did a horrible paint job, but she still liked it

EDIT: the parts are 3d printed (not my model tho)

 
 
 
view more: next ›