Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Dec 2, 2013, 3:53:08 PM (10 years ago)
Author:
zifloria
Message:

yeaHHH

Location:
code/branches/invaders/src/modules/invader
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • code/branches/invaders/src/modules/invader/Invader.cc

    r9837 r9854  
    8787            return;
    8888
    89         for (int i = 0; i < level; i++)
     89        srand(player->getPosition().x + player->getPosition().y);
     90        for (int i = 0; i < level * 2; i++)
    9091        {
    91             SmartPtr<InvaderEnemy> newPawn = new InvaderEnemy(this->center_->getContext());
     92            WeakPtr<InvaderEnemy> newPawn = new InvaderEnemy(this->center_->getContext());
    9293            newPawn->addTemplate("enemyinvader");
    93             newPawn->setPosition(player->getPosition() + Vector3(500 + 100 * i, 0, 0));
     94            newPawn->setPlayer(player);
     95            newPawn->level = level;
     96            newPawn->setPosition(player->getPosition() + Vector3(500 + 100 * i, 0, float(rand())/RAND_MAX * 400 - 200));
    9497        }
    9598    }
  • code/branches/invaders/src/modules/invader/Invader.h

    r9837 r9854  
    6666            int getLevel(){return this->level;}
    6767            int getPoints(){return this->point;}
     68            int getMultiplier(){return this->multiplier;}
    6869
    6970            void costLife(){lives--; if (lives <= 0) end();};
  • code/branches/invaders/src/modules/invader/InvaderEnemy.cc

    r9837 r9854  
    4444        RegisterObject(InvaderEnemy);
    4545        enableCollisionCallback();
     46        lifetime = 0;
    4647    }
    4748
    4849    void InvaderEnemy::tick(float dt)
    4950    {
    50         setVelocity(Vector3(500 ,0, 0));
     51        lifetime += dt;
     52        if (lifetime > 5000)
     53        {
     54            removeHealth(2000);
     55        }
     56        if (player != NULL)
     57        {
     58            float newZ = player->getPosition().z - getPosition().z;
     59            if (newZ < 0)
     60                newZ = (-100 < newZ)?-100:newZ;
     61            else
     62                newZ = (100 > newZ)?100:newZ;
     63            setVelocity(Vector3(1000 - level * 100 , 0, newZ));
     64        }
    5165        SUPER(InvaderEnemy, tick, dt);
    5266    }
     
    5468    inline bool InvaderEnemy::collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint)
    5569    {
    56         setVelocity(Vector3(900,0,0));
     70        setVelocity(Vector3(1000,0,0));
    5771        removeHealth(2000);
    5872        return false;
  • code/branches/invaders/src/modules/invader/InvaderEnemy.h

    r9829 r9854  
    5050            virtual bool collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint);
    5151            virtual void damage(float damage, float healthdamage, float shielddamage, Pawn* originator);
     52            virtual void setPlayer(WeakPtr<InvaderShip> player){this->player = player;}
    5253
     54            int level;
    5355        private:
    5456            WeakPtr<Invader> getGame();
    5557            WeakPtr<Invader> game;
     58            WeakPtr<InvaderShip> player;
    5659            Camera* camera;
    5760            bool isFireing;
    5861            float speed, damping;
    5962            float lastTimeFront, lastTimeLeft;
     63            float lifetime;
    6064            struct Velocity
    6165            {
  • code/branches/invaders/src/modules/invader/InvaderHUDinfo.cc

    r9828 r9854  
    4444        this->bShowLevel_ = false;
    4545        this->bShowPoints_ = false;
     46        this->bShowMultiplier_ = false;
    4647    }
    4748
     
    5758        XMLPortParam(InvaderHUDinfo, "showPoints",     setShowPoints,     getShowPoints,     xmlelement, mode).defaultValues(false);
    5859        XMLPortParam(InvaderHUDinfo, "showLevel",     setShowLevel,     getShowLevel,     xmlelement, mode).defaultValues(false);
     60        XMLPortParam(InvaderHUDinfo, "showMultiplier",     setShowMultiplier,     getShowMultiplier,     xmlelement, mode).defaultValues(false);
    5961    }
    6062
     
    8082                this->setCaption(points);
    8183            }
     84            else if(this->bShowMultiplier_)
     85            {
     86                const std::string& Multiplier = multi_cast<std::string>(this->InvaderGame->getMultiplier());
     87                this->setCaption(Multiplier);
     88            }
    8289        }
    8390    }
  • code/branches/invaders/src/modules/invader/InvaderHUDinfo.h

    r9828 r9854  
    6060                { return this->bShowPoints_; }
    6161
     62            inline void setShowMultiplier(bool value)
     63                { this->bShowMultiplier_ = value; }
     64            inline bool getShowMultiplier() const
     65                { return this->bShowMultiplier_; }
     66
     67
    6268        private:
    6369            Invader* InvaderGame;
     
    6571            bool bShowLevel_;
    6672            bool bShowPoints_;
     73            bool bShowMultiplier_;
    6774    };
    6875}
Note: See TracChangeset for help on using the changeset viewer.