/+junk/invaders_vala

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/%2Bjunk/invaders_vala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
using SDL;
using SDLGraphics;

namespace invadersGame{
  class GameObjectPlayer : GameObject{
    private bool exists;
    
    private MovementDelta my_movement_delta;
    
    public GameObjectPlayer () {
      base((int16)SCREEN_WIDTH / 2 - 16, (int16)SCREEN_HEIGHT  / 2, 0, 0, 200, 200);
      
    }
    
    public override void draw(SDL.Screen screen) {
      ResourceHandler.player.blit(null,screen,my_rect);
    }
    
    public void set_movment_delta(MovementDelta d) {
      my_movement_delta = d;
      stdout.printf(d.to_string() + "\n");
    }
    
    public override void move () {
      float de_t = (float)(SDL.Timer.get_ticks() - last_frame);
      
      if(my_movement_delta.y > 0  && my_movement_delta.x > 0) {
        pos_y = pos_y + (float)((speed/1.5) * de_t)/1000.0f;
        pos_x = pos_x + (float)((speed/1.5) * de_t)/1000.0f;
      } else if(my_movement_delta.y < 0  && my_movement_delta.x < 0) {
        pos_y = pos_y - (float)((speed/1.5) * de_t)/1000.0f;
        pos_x = pos_x - (float)((speed/1.5) * de_t)/1000.0f;
      } else if(my_movement_delta.y > 0  && my_movement_delta.x < 0) {
        pos_y = pos_y + (float)((speed/1.5) * de_t)/1000.0f;
        pos_x = pos_x - (float)((speed/1.5) * de_t)/1000.0f;
      } else if(my_movement_delta.y < 0  && my_movement_delta.x > 0) {
        pos_y = pos_y - (float)((speed/1.5) * de_t)/1000.0f;
        pos_x = pos_x + (float)((speed/1.5) * de_t)/1000.0f;
      } else if(my_movement_delta.x > 0 ) {
        pos_x = pos_x + (float)(speed * de_t)/1000.0f;
      } else if(my_movement_delta.x < 0 ) {
        pos_x = pos_x - (float)(speed * de_t)/1000.0f;
      } else if(my_movement_delta.y > 0 ) {
        pos_y = pos_y + (float)(speed * de_t)/1000.0f;
      } else if(my_movement_delta.y < 0 ) {
        pos_y = pos_y - (float)(speed * de_t)/1000.0f;
      } else  {
        // nothing
      }
      
      my_rect.x = (int16)pos_x;
      my_rect.y = (int16)pos_y;
      
      last_frame = SDL.Timer.get_ticks();
    }
  }
}