Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Oct 31, 2007, 11:16:00 AM (17 years ago)
Author:
rgrieder
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/main_reto/src/RunManager.cpp

    r130 r133  
    55RunManager::RunManager(OgreControl * mOgre, bool bufferedKeys, bool bufferedMouse,
    66                                           bool bufferedJoy ) :
    7 mOgre(mOgre), mWindow(mOgre->getRenderWindow()),
     7mOgre(mOgre), mWindow(mOgre->getRenderWindow()), leftButtonDown(false),
    88mStatsOn(true), mNumScreenShots(0),
    99mTimeUntilNextToggle(0), mFiltering(TFO_BILINEAR),
     
    3535        // Set default mipmap level (NB some APIs ignore this)
    3636        TextureManager::getSingleton().setDefaultNumMipmaps(5);
     37
     38        // initialise bullets list
     39        mBullets = new Bullet*[10];
     40        mBulletsPosition = 0;
     41        mBulletsSize = 10;
    3742
    3843        using namespace OIS;
     
    7984        if (mScene)
    8085                delete mScene;
     86
     87        for (int i = 0; i < mBulletsPosition; i++)
     88                delete mBullets[i];
     89        delete mBullets;
    8190}
    8291
     
    91100        mScene->tick(time, deltaTime);
    92101        mShip->tick(time, deltaTime);
     102
     103        // update the bullet positions
     104        for (int i = 0; i < mBulletsPosition; i++)
     105        {
     106                mBullets[i]->mNode->translate(mBullets[i]->mSpeed*deltaTime);
     107                mBullets[i]->mNode->yaw(Degree(deltaTime*100));
     108                mBullets[i]->mNode->roll(Degree(deltaTime*300));
     109        }
    93110
    94111        using namespace OIS;
     
    257274        const MouseState &ms = mMouse->getMouseState();
    258275
     276        if (ms.buttonDown(MB_Left) && !leftButtonDown)
     277        {
     278                leftButtonDown = true;
     279                // fire
     280                Bullet *mTempBullet = mShip->fire();
     281                if (mBulletsPosition >= mBulletsSize)
     282                {
     283                        // redimension the array
     284                        Bullet **mTempArray = new Bullet*[2*mBulletsSize];
     285                        for (int i = 0; i < mBulletsSize; i++)
     286                                mTempArray[i] = mBullets[i];
     287                        mBulletsSize *= 2;
     288                        delete mBullets;
     289                        mBullets = mTempArray;
     290                }
     291                mBullets[mBulletsPosition++] = mTempBullet;
     292
     293        }
     294        else if (!ms.buttons)
     295                leftButtonDown = false;
     296
    259297        mShip->setYaw(Degree(-ms.X.rel * 0.13));
    260298        mShip->setPitch(Degree(-ms.Y.rel * 0.13));
Note: See TracChangeset for help on using the changeset viewer.