src/proto2/GameState.cc
author ekku
Wed, 03 Dec 2008 12:09:42 +0000
changeset 180 bfe1077edab3
parent 170 fe74105c07ea
child 182 84675387ca74
permissions -rw-r--r--
Ammuksia f:lla
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
180
bfe1077edab3 Ammuksia f:lla
ekku
parents: 170
diff changeset
     5
void Player::shoot (void) {
bfe1077edab3 Ammuksia f:lla
ekku
parents: 170
diff changeset
     6
    this->state.addProjectile(new Shot(this->state, this->position, true));
bfe1077edab3 Ammuksia f:lla
ekku
parents: 170
diff changeset
     7
}
bfe1077edab3 Ammuksia f:lla
ekku
parents: 170
diff changeset
     8
96
4a801210096c fix movement physics+network code to some degree, jumping is now buggy?
terom
parents: 94
diff changeset
     9
void Player::handleMove (PlayerInput_Move input) {
108
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    10
    float fx = 0; // Force in x-direction
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    11
    float da = 0; // Crosshair angle
26
5685602aeb9c it works \o/
terom
parents:
diff changeset
    12
96
4a801210096c fix movement physics+network code to some degree, jumping is now buggy?
terom
parents: 94
diff changeset
    13
    // handle left/right
160
ba0b6f421a3c not anything big
nireco
parents: 153
diff changeset
    14
    if ((input & INPUT_MOVE_LEFT) && (velocity.x > -PLAYER_MAX_SPEED))
108
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    15
        fx -= PLAYER_MOVE_FORCE;
50
9e1a6506f5a1 some rough-handed code modifications towards a newer, better, working Physics
terom
parents: 26
diff changeset
    16
160
ba0b6f421a3c not anything big
nireco
parents: 153
diff changeset
    17
    if ((input & INPUT_MOVE_RIGHT) && (velocity.x < PLAYER_MAX_SPEED))
108
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    18
        fx += PLAYER_MOVE_FORCE;
94
08bebac3d0c2 Maalla liikkumista
ekku
parents: 66
diff changeset
    19
108
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    20
    if (input & INPUT_MOVE_UP)
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    21
        da += CROSSHAIR_ANGLE_SPEED;
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    22
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    23
    if (input & INPUT_MOVE_DOWN)
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    24
        da -= CROSSHAIR_ANGLE_SPEED;
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    25
170
fe74105c07ea jumppi toimii oikeisiin suuntiin
ekku
parents: 160
diff changeset
    26
    if (input & INPUT_MOVE_JUMP) {
fe74105c07ea jumppi toimii oikeisiin suuntiin
ekku
parents: 160
diff changeset
    27
        if ((input & INPUT_MOVE_LEFT))
fe74105c07ea jumppi toimii oikeisiin suuntiin
ekku
parents: 160
diff changeset
    28
            jump(-1);
fe74105c07ea jumppi toimii oikeisiin suuntiin
ekku
parents: 160
diff changeset
    29
        else if ((input & INPUT_MOVE_RIGHT))
fe74105c07ea jumppi toimii oikeisiin suuntiin
ekku
parents: 160
diff changeset
    30
            jump(1);
fe74105c07ea jumppi toimii oikeisiin suuntiin
ekku
parents: 160
diff changeset
    31
        else
fe74105c07ea jumppi toimii oikeisiin suuntiin
ekku
parents: 160
diff changeset
    32
            jump(0);
fe74105c07ea jumppi toimii oikeisiin suuntiin
ekku
parents: 160
diff changeset
    33
    }
114
71f7e9d3d052 V?h?n siistin tota walkkia, viel? on kyll? tekemist?.
saiam
parents: 108
diff changeset
    34
71f7e9d3d052 V?h?n siistin tota walkkia, viel? on kyll? tekemist?.
saiam
parents: 108
diff changeset
    35
    this->changeAim(da); // Move crosshair
71f7e9d3d052 V?h?n siistin tota walkkia, viel? on kyll? tekemist?.
saiam
parents: 108
diff changeset
    36
108
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    37
    // Player facing
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    38
    if (fx < 0) setFacing(false);
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    39
    else if (fx > 0) setFacing(true);
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    40
114
71f7e9d3d052 V?h?n siistin tota walkkia, viel? on kyll? tekemist?.
saiam
parents: 108
diff changeset
    41
    // Apply force
122
16a73ebca810 No warnings anymore, but well have to think about that applyForce
saiam
parents: 117
diff changeset
    42
    applyForce(Vector(fx, 0));
108
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    43
117
2877eef6c1d5 digging
nireco
parents: 116
diff changeset
    44
    // dig/shoot or something
2877eef6c1d5 digging
nireco
parents: 116
diff changeset
    45
    if (input & INPUT_MOVE_DIG) {
2877eef6c1d5 digging
nireco
parents: 116
diff changeset
    46
        // Should create Shot which destroys ground, but also should be destroyed then,
2877eef6c1d5 digging
nireco
parents: 116
diff changeset
    47
        // but it doesn't.
2877eef6c1d5 digging
nireco
parents: 116
diff changeset
    48
        // But this now just segfaults
2877eef6c1d5 digging
nireco
parents: 116
diff changeset
    49
//        world.addObject(new Shot(state, position, true));
2877eef6c1d5 digging
nireco
parents: 116
diff changeset
    50
153
73402d5b778e Lots of small fixe. Moved drawing PhysicsObjects away from Graphics.cc.
saiam
parents: 122
diff changeset
    51
        world.removeGround(position, 15);
117
2877eef6c1d5 digging
nireco
parents: 116
diff changeset
    52
    }
26
5685602aeb9c it works \o/
terom
parents:
diff changeset
    53
}
94
08bebac3d0c2 Maalla liikkumista
ekku
parents: 66
diff changeset
    54
08bebac3d0c2 Maalla liikkumista
ekku
parents: 66
diff changeset
    55
void Player::debugInfo (void) {
108
1b93045a5b0a T?ht?in lis?tty, tosin se piirret??n tosi rumasti.
saiam
parents: 96
diff changeset
    56
    Engine::log(DEBUG, "Player.debugInfo") << "In air: " << this->inAir;
94
08bebac3d0c2 Maalla liikkumista
ekku
parents: 66
diff changeset
    57
}
116
0d36aade845e some stuff, don't remember what
nireco
parents: 114
diff changeset
    58
0d36aade845e some stuff, don't remember what
nireco
parents: 114
diff changeset
    59
void Shot::onCollision() {
0d36aade845e some stuff, don't remember what
nireco
parents: 114
diff changeset
    60
//    world.removeGround(position, 20);
0d36aade845e some stuff, don't remember what
nireco
parents: 114
diff changeset
    61
}