4
4
namespace invadersGame{
5
5
class GameObjectPlayer : GameObject{
8
private MovementDelta my_movement_delta;
10
public GameObjectPlayer () {
11
base((int16)SCREEN_WIDTH / 2 - 16, (int16)SCREEN_HEIGHT / 2, 0, 0, 200, 200);
15
public override void draw(SDL.Screen screen) {
16
ResourceHandler.player.blit(null,screen,my_rect);
19
public void set_movment_delta(MovementDelta d) {
20
my_movement_delta = d;
21
stdout.printf(d.to_string() + "\n");
24
public override void move () {
25
float de_t = (float)(SDL.Timer.get_ticks() - last_frame);
27
if(my_movement_delta.y > 0 && my_movement_delta.x > 0) {
28
pos_y = pos_y + (float)((speed/1.5) * de_t)/1000.0f;
29
pos_x = pos_x + (float)((speed/1.5) * de_t)/1000.0f;
30
} else if(my_movement_delta.y < 0 && my_movement_delta.x < 0) {
31
pos_y = pos_y - (float)((speed/1.5) * de_t)/1000.0f;
32
pos_x = pos_x - (float)((speed/1.5) * de_t)/1000.0f;
33
} else if(my_movement_delta.y > 0 && my_movement_delta.x < 0) {
34
pos_y = pos_y + (float)((speed/1.5) * de_t)/1000.0f;
35
pos_x = pos_x - (float)((speed/1.5) * de_t)/1000.0f;
36
} else if(my_movement_delta.y < 0 && my_movement_delta.x > 0) {
37
pos_y = pos_y - (float)((speed/1.5) * de_t)/1000.0f;
38
pos_x = pos_x + (float)((speed/1.5) * de_t)/1000.0f;
39
} else if(my_movement_delta.x > 0 ) {
40
pos_x = pos_x + (float)(speed * de_t)/1000.0f;
41
} else if(my_movement_delta.x < 0 ) {
42
pos_x = pos_x - (float)(speed * de_t)/1000.0f;
43
} else if(my_movement_delta.y > 0 ) {
44
pos_y = pos_y + (float)(speed * de_t)/1000.0f;
45
} else if(my_movement_delta.y < 0 ) {
46
pos_y = pos_y - (float)(speed * de_t)/1000.0f;
51
my_rect.x = (int16)pos_x;
52
my_rect.y = (int16)pos_y;
54
last_frame = SDL.Timer.get_ticks();