/+junk/invaders_vala

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/%2Bjunk/invaders_vala

« back to all changes in this revision

Viewing changes to src/GameObjectPlayer.vala

  • Committer: Gustav Hartvigsson
  • Date: 2012-10-09 21:59:24 UTC
  • Revision ID: gustav.hartvigsson@gmail.com-20121009215924-bsntg7a4ocaxkhoh
Implimented Time based movement...

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
 
4
4
namespace invadersGame{
5
5
  class GameObjectPlayer : GameObject{
6
 
    
 
6
    private bool exists;
 
7
    
 
8
    private MovementDelta my_movement_delta;
 
9
    
 
10
    public GameObjectPlayer () {
 
11
      base((int16)SCREEN_WIDTH / 2 - 16, (int16)SCREEN_HEIGHT  / 2, 0, 0, 200, 200);
 
12
      
 
13
    }
 
14
    
 
15
    public override void draw(SDL.Screen screen) {
 
16
      ResourceHandler.player.blit(null,screen,my_rect);
 
17
    }
 
18
    
 
19
    public void set_movment_delta(MovementDelta d) {
 
20
      my_movement_delta = d;
 
21
      stdout.printf(d.to_string() + "\n");
 
22
    }
 
23
    
 
24
    public override void move () {
 
25
      float de_t = (float)(SDL.Timer.get_ticks() - last_frame);
 
26
      
 
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;
 
47
      } else  {
 
48
        // nothing
 
49
      }
 
50
      
 
51
      my_rect.x = (int16)pos_x;
 
52
      my_rect.y = (int16)pos_y;
 
53
      
 
54
      last_frame = SDL.Timer.get_ticks();
 
55
    }
7
56
  }
8
57
}