Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Nov 6, 2017, 4:06:54 PM (7 years ago)
Author:
vyang
Message:

TestLevel Design → immer noch mit Fehlermeldungen, Asteroiden in der death() Methode von AsteroidsStone spawnen oder im game?

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/Asteroid_HS17/src/modules/asteroids/AsteroidsShip.cc

    r11528 r11541  
    1818    {
    1919        RegisterObject(AsteroidsShip);
    20         /*radius = 20;
    21         x = getPosition().x;
    22         y = getPosition().y;
    23         dx = 3.0f;
    24         dy = 3.0f;
    25         angle= 0.0f;*/
    2620
    27         speed = 830;
     21        angle= 0.0f;
     22
     23
     24
    2825        isFireing = false;
    29         damping = 10;
     26        damping = 0.90;
    3027
    3128        lastTimeFront = 0;
    3229        lastTimeLeft = 0;
    3330        lastTime = 0;
     31
     32        height = this->getGame()->center_->getFieldHeight();
     33        width = this->getGame()->center_->getFieldWidth();
     34
     35        force.x =0;
     36        force.y =0;
     37
     38        velocity.x = 0;
     39        velocity.y = 0;
    3440
    3541    }
     
    4753    void AsteroidsShip::tick(float dt)
    4854    {
    49         /*Movement computation
     55        //Movement computation beachte Beschleunigung?
    5056        Vector3 pos = getPosition();
    5157
    52         dx *= damping;
    53         dy *= damping;
    54 
    55         float speed = sqrt(dx*dx+ dy*dy);
     58        float speed = sqrt(velocity.x*velocity.x+ velocity.y*velocity.y);
    5659        if(speed > maxspeed)
    5760        {
    58             dx *= maxspeed/speed;
    59             dy *= mayspeed/speed;
     61            velocity.x *= maxspeed/speed;
     62            velocity.y *= mayspeed/speed;
    6063        }
    6164
    62         x += dx;
    63         y += dy;
     65        pos.x += velocity.x*dt;
     66        pos.y += velocity.y*dt;
    6467
    65         if(x>W) x=0;
    66         if(x<0) x=W;
    67         if(y>H) y=0;
    68         if(y<0) y=H;
    69         setPosition(x,y,0);
    7068
    71         //roll? muss sich das Raumschiff drehen?
    72         setOrientation(angle, x, y, 0);
     69        //haelt ship innerhalb des Kamerafensters
     70        if(x>width) x=0;
     71        if(x<0) x=width;
     72        if(y>height) y=0;
     73        if(y<0) y=height);
     74
    7375
    7476        //Schiessen wenn geschossen wurde
    7577        // shoot!
     78/*
    7679        if (isFireing)
    7780            ControllableEntity::fire(0);
    78        
    79         //Leben verloren */
    80         Vector3 pos = getPosition();
    81 
    82         //Movement calculation
    83         lastTimeFront += dt * damping;
    84         lastTimeLeft += dt * damping;
    85         lastTime += dt;
    86 
    87         velocity.x = interpolate(clamp(lastTimeLeft, 0.0f, 1.0f), desiredVelocity.x, 0.0f);
    88         velocity.y = interpolate(clamp(lastTimeFront, 0.0f, 1.0f), desiredVelocity.y, 0.0f);
     81        */
    8982
    9083        //Execute movement
    9184        if (this->hasLocalController())
    9285        {
    93             float dist_y = velocity.y * dt;
    94             //float dist_x = velocity.x * dt;
    95             if(dist_y + posforeward > -42*3 && dist_y + posforeward < 42*6)
    96                 posforeward += dist_y;
    97             else
    98             {
    99                 velocity.y = 0;
    100                 // restart if game ended
    101 /*
    102                 if (getGame())
    103                     if (getGame()->bEndGame)
    104                     {
    105                         getGame()->start();
    106                         return;
    107                     }*/
    108             }
    109 
    110             pos += Vector3(1000 + velocity.y, 0, velocity.x) * dt;
     86            force.x += 1;
     87            force.y += 1;
    11188
    11289        }
     
    11895        if (camera != nullptr)
    11996        {
    120             // camera->setPosition(Vector3(-pos.z, -posforeward, 0));
    121             camera->setOrientation(Vector3::UNIT_Z, Degree(0));
     97            camera->setPosition(Vector3(0,cameradistance, 0));
     98            camera->setOrientation(Vector3::UNIT_Z, Degree(90));
    12299        }
    123100
     
    130107        }
    131108
     109        velocity.x *= damping;
     110        velocity.y *= damping;
     111
    132112        setPosition(pos);
    133113        setOrientation(Vector3::UNIT_Y, Degree(270));
    134114
    135115        SUPER(AsteroidsShip, tick, dt);
     116
    136117    }
    137118
    138119    void AsteroidsShip::moveFrontBack(const Vector2& value)
    139120    {
    140 
    141 
     121        velocity.x += 1;
    142122    }
    143123
    144     void AsteroidsShip::moveFrontBack(const Vector2& value)
     124    void AsteroidsShip::moveUpDown(const Vector2& value)
    145125    {
     126        velocity.y +=1;
    146127
    147128    }
    148     void AsteroidsShip::moveFrontBack(const Vector2& value)
     129    void AsteroidsShip::moveFrontLeftRight(const Vector2& value)
    149130    {
    150131
Note: See TracChangeset for help on using the changeset viewer.