Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Nov 18, 2013, 7:54:32 PM (11 years ago)
Author:
zifloria
Message:

movement code update

Location:
code/branches/invaders
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • code/branches/invaders/data/levels/templates/enemyInvader.oxt

    r9777 r9793  
    11<Template name=enemyinvader>
    2   <InvaderShip
     2  <InvaderEnemy
    33   hudtemplate            = spaceshiphud
    44   camerapositiontemplate = spaceshipescortcameras
     
    3434
    3535   collisionType     = "dynamic"
    36    mass              = 0.00001
     36   mass              = 5
    3737   linearDamping     = 0
    3838   angularDamping    = 0
     39
     40    collisiondamage = 100
     41    enablecollisiondamage = true
    3942  >
    4043    <engines>
     
    5962  include("../includes/invaderWeapon.oxi")
    6063?>
    61   </InvaderShip>
     64  </InvaderEnemy>
    6265</Template>
    6366
    64 <Template name=spaceshipescortcameras defaults=0>
    65   <InvaderShip>
     67<!-- <Template name=spaceshipescortcameras defaults=0>
     68  <InvaderEnemy>
    6669    <camerapositions>
    67 <!--       <CameraPosition position="0,15, 60" drag=true mouselook=true />
     70      <CameraPosition position="0,15, 60" drag=true mouselook=true />
    6871      <CameraPosition position="0,20, 90" drag=true mouselook=true />
    69       <CameraPosition position="0,30,120" drag=true mouselook=true /> -->
     72      <CameraPosition position="0,30,120" drag=true mouselook=true />
    7073      <CameraPosition position="0,300,-100" direction="0, -1, 0" drag=false mouselook=true />
    7174    </camerapositions>
    72   </InvaderShip>
    73 </Template>
     75  </InvaderEnemy>
     76</Template> -->
    7477
    7578<Template name=spaceshipescortengine baseclass=MultiStateEngine>
  • code/branches/invaders/src/modules/invader/Invader.cc

    r9777 r9793  
    4747#include "InvaderCenterPoint.h"
    4848#include "InvaderShip.h"
     49#include "InvaderEnemy.h"
    4950
    5051#include "core/command/ConsoleCommand.h"
     
    7980            return;
    8081
    81         Pawn* newPawn = new Pawn(this->center_->getContext());
     82        InvaderEnemy* newPawn = new InvaderEnemy(this->center_->getContext());
    8283        newPawn->addTemplate("enemyinvader");
    8384
  • code/branches/invaders/src/modules/invader/InvaderShip.cc

    r9777 r9793  
    5656    void InvaderShip::tick(float dt)
    5757    {
    58         // if (camera == NULL)
    59         //     camera = this->getCamera();
    60         // if (camera != NULL)
    61         //     camera->setPosition(Vector3(0, 0, 0) + this->getWorldPosition());
     58        Vector3 pos = getPosition();
    6259
     60        //Movement calculation
     61        lastTimeFront += dt * damping;
     62        lastTimeLeft += dt * damping;
     63        lastTime += dt;
     64
     65        velocity.x = interpolate(clamp(lastTimeLeft, 0.0f, 1.0f), desiredVelocity.x, 0.0f);
     66        velocity.y = interpolate(clamp(lastTimeFront, 0.0f, 1.0f), desiredVelocity.y, 0.0f);
     67
     68        //Execute movement
    6369        if (this->hasLocalController())
    6470        {
    65             this->setVelocity(Vector3(1000 + velocity.y, 0, velocity.x)); //
    66             //this->setVelocity(this->getOrientation() * Vector3(1, 0, 0));
     71            float dist_y = velocity.y * dt;
     72            if(dist_y + posforeward > -42*3 && dist_y + posforeward < 42*6)
     73                posforeward += dist_y;
     74            else
     75                velocity.y = 0;
     76            // this->setVelocity(Vector3(1000 + velocity.y, 0, velocity.x));
     77            pos += Vector3(1000 + velocity.y, 0, velocity.x) * dt;
    6778        }
    68         lastTimeFront += dt * damping;
    69         lastTimeLeft += dt * damping;
    70         velocity.x = interpolate(clamp(lastTimeLeft, 0.0f, 1.0f), desiredVelocity.x, 0.0f);
    71         velocity.y = interpolate(clamp(lastTimeFront, 0.0f, 1.0f), desiredVelocity.y, 0.0f);
    7279
    7380        if (isFireing)
    7481            ControllableEntity::fire(0);
    7582
    76         if (getPosition().x > 30000)
     83        // Camera
     84        Camera* camera = this->getCamera();
     85        if (camera != NULL)
    7786        {
    78             //level++
    79             setPosition(getPosition() - Vector3(30000, 0, 0));
     87            camera->setPosition(Vector3(-pos.z, -posforeward, 0));
     88            camera->setOrientation(Vector3::UNIT_Z, Degree(90));
     89            // orxout() << "asbhajskjasjahg" << pos << endl;
    8090        }
    8191
    82         // if ((int(getPosition().x) % 1000) < 5)
     92
     93
     94        // bring back on track!
     95        if (pos.z > 42*2.5)
     96            pos.z = 42*2.5;
     97        else if (pos.z < -42*3)
     98            pos.z = -42*3;
     99        if(pos.y != 0)
     100            pos.y = 0;
     101        // if (camera != NULL)
    83102        // {
    84         //     for (ObjectList<Invader>::iterator it = ObjectList<Invader>::begin(); it != ObjectList<Invader>::end(); ++it)
    85         //         it->spawnEnemy();
     103        //     float x = camera->getWorldPosition().x;
     104        //     if (pos.x > x + 20)
     105        //         pos.x = x + 20;
     106        //     else if (pos.x < x - 20)
     107        //         pos.x = x - 20;
    86108        // }
     109        // if (abs(posforeward) < 20)
     110           
    87111
    88         // camera->setOrientation(Vector3::UNIT_X, Degree(0));
     112        setPosition(pos);
     113        setOrientation(Vector3::UNIT_Y, Degree(270));
    89114
     115        // Level up!
     116        if (pos.x > 30000)
     117        {
     118            updateLevel();
     119            setPosition(Vector3(0, 0, 0)); // pos - Vector3(30000, 0, 0)
     120        }
    90121
    91122        SUPER(InvaderShip, tick, dt);
    92123    }
    93124
    94 
     125    void InvaderShip::updateLevel()
     126    {
     127        lastTime = 0;
     128        //level++
     129    }
    95130
    96131    void InvaderShip::moveFrontBack(const Vector2& value)
    97132    {
    98         // orxout(internal_error) << "move backfront" << value.x << value.y << endl;
    99         //velocity.y = value.y * speed * 10;
    100         lastTimeFront = 0;
    101         desiredVelocity.y = value.y * speed * 10;
     133        lastTimeLeft = 0;
     134        desiredVelocity.x = -value.x * speed;
    102135    }
    103136
    104137    void InvaderShip::moveRightLeft(const Vector2& value)
    105138    {
    106         // orxout(internal_error) << "right left front" << value.x << value.y << endl;
    107         lastTimeLeft = 0;
    108         desiredVelocity.x = value.x * speed;
    109         // velocity.x = value.x * speed;
     139        lastTimeFront = 0;
     140        desiredVelocity.y = value.y * speed * 42;
    110141    }
    111142    void InvaderShip::boost(bool bBoost)
  • code/branches/invaders/src/modules/invader/InvaderShip.h

    r9777 r9793  
    6060            virtual void rotateRoll(const Vector2& value){};
    6161
     62            virtual void updateLevel();
     63
    6264            // *InvaderShip getShip(){return this;}
    6365        private:
    6466            Camera* camera;
    6567            bool isFireing;
    66             float speed, damping;
    67             float lastTimeFront, lastTimeLeft;
     68            float speed, damping, posforeward;
     69            float lastTimeFront, lastTimeLeft, lastTime;
    6870            struct Velocity
    6971            {
Note: See TracChangeset for help on using the changeset viewer.