Solution pour eviter la duplication code epee/bullet entités?
Pour eviter la duplication du code pour les epee / bullet:
avoir du code qui stock juste les data generales (la position) check si touché, si touché ensuite on check la valeur de dmg.
C'est un peu plus abstrait mais on a 0 code spécifique entre deux assets.
Juste les anim/sprite/particules sont différentes ;)
//draw_rectangle(ship.pos.x,ship.pos.y,40.0,50.0,RED);
//les tirs par intervalle choisi
let frame_t = get_time();
if is_key_down(KeyCode::Space) && frame_t - last_shot > 0.1 {
bullets.push(Bullet {
pos: vec2(ship.pos.x + 20.0, ship.pos.y + 10.0),
shot_at: frame_t,
collided: false,
});
last_shot = frame_t;
}
if is_key_down(KeyCode::A) && frame_t - last_shot2 > 0.1 && ship.energy >= 10.{
ship.energy -=10.;
epexs.push(Bullet {
pos: vec2(ship.pos.x + 20., ship.pos.y ),
shot_at: frame_t,
collided: false,
});
last_shot2 = frame_t;
}
// chute de cookie mortel
if frame_t-last_shot3> 1. && bidule !=0{
cookie.push(Bullet {
pos: vec2(750.0,gen_range(0.0,520.0)),
shot_at: frame_t,
collided: false,
});
last_shot3 = frame_t;
Relisez bien c'est possible de faire une fonction un peu generique ;)
mais faut decouper: input/update ;))
Modification effectuée par Axel Viala