src/proto2/GameState.cc
author saiam
Mon, 24 Nov 2008 23:04:22 +0000
changeset 108 1b93045a5b0a
parent 96 4a801210096c
child 114 71f7e9d3d052
permissions -rw-r--r--
T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
26
5685602aeb9c it works \o/
terom
parents:
diff changeset
     1
5685602aeb9c it works \o/
terom
parents:
diff changeset
     2
#include "GameState.hh"
94
08bebac3d0c2 Maalla liikkumista
ekku
parents: 66
diff changeset
     3
#include "Engine.hh"
26
5685602aeb9c it works \o/
terom
parents:
diff changeset
     4
96
4a801210096c fix movement physics+network code to some degree, jumping is now buggy?
terom
parents: 94
diff changeset
     5
void Player::handleMove (PlayerInput_Move input) {
108
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
     6
    float fx = 0; // Force in x-direction
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
     7
    float da = 0; // Crosshair angle
26
5685602aeb9c it works \o/
terom
parents:
diff changeset
     8
96
4a801210096c fix movement physics+network code to some degree, jumping is now buggy?
terom
parents: 94
diff changeset
     9
    // handle left/right
54
b8b043ba0abd fix some more compiler errors...
terom
parents: 50
diff changeset
    10
    if (input & INPUT_MOVE_LEFT)
108
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    11
        fx -= PLAYER_MOVE_FORCE;
50
9e1a6506f5a1 some rough-handed code modifications towards a newer, better, working Physics
terom
parents: 26
diff changeset
    12
54
b8b043ba0abd fix some more compiler errors...
terom
parents: 50
diff changeset
    13
    if (input & INPUT_MOVE_RIGHT)
108
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    14
        fx += PLAYER_MOVE_FORCE;
94
08bebac3d0c2 Maalla liikkumista
ekku
parents: 66
diff changeset
    15
108
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    16
    if (input & INPUT_MOVE_UP)
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    17
        da += CROSSHAIR_ANGLE_SPEED;
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    18
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    19
    if (input & INPUT_MOVE_DOWN)
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    20
        da -= CROSSHAIR_ANGLE_SPEED;
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    21
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    22
    // Player facing
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    23
    if (fx < 0) setFacing(false);
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    24
    else if (fx > 0) setFacing(true);
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    25
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    26
    this->changeAim(da); // Move crosshair
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    27
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    28
        // we behave differently depending on if we're in the air or on the ground
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    29
        if (inAir) {
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    30
            // apply horizontal force
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    31
            if (fx)
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    32
                applyForce(Vector(fx, 0), INPUT_INTERVAL_MS);
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    33
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    34
        } else {
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    35
            // walk right
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    36
            if (fx)
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    37
                this->position = walk(fx > 0);
96
4a801210096c fix movement physics+network code to some degree, jumping is now buggy?
terom
parents: 94
diff changeset
    38
        
108
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    39
            // jump?
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    40
            if (input & INPUT_MOVE_JUMP)
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    41
                jump();    
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    42
        }
26
5685602aeb9c it works \o/
terom
parents:
diff changeset
    43
}
94
08bebac3d0c2 Maalla liikkumista
ekku
parents: 66
diff changeset
    44
08bebac3d0c2 Maalla liikkumista
ekku
parents: 66
diff changeset
    45
void Player::debugInfo (void) {
108
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    46
    Engine::log(DEBUG, "Player.debugInfo") << "In air: " << this->inAir;
94
08bebac3d0c2 Maalla liikkumista
ekku
parents: 66
diff changeset
    47
}