Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Nov 7, 2007, 10:03:26 PM (16 years ago)
Author:
rgrieder
Message:

added files from rev 189

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/main_reto/src/run_manager.cc

    r171 r190  
    5252#include "orxonox_ship.h"
    5353#include "bullet.h"
     54#include "bullet_manager.h"
    5455#include "camera_manager.h"
     56#include "weapon_manager.h"
     57#include "inertial_node.h"
    5558
    5659#include "run_manager.h"
     
    5861namespace orxonox {
    5962  using namespace Ogre;
     63  using namespace weapon;
    6064
    6165  /**
     
    97101    // background scene (world objects, skybox, lights, etc.)
    98102    backgroundScene_ = new OrxonoxScene(sceneMgr_);
     103
     104
     105    // BULLET LIST FOR THE TEST APPLICATION
     106
     107    // create a bullet manager
     108    bulletManager_ = new BulletManager(sceneMgr_);
     109    WeaponManager::loadWeapons();
     110
     111    // TODO: Use STL to make life easier. But it works this way too..
     112    /*bullets_ = new Bullet*[10];
     113    bulletsIndex_ = 0;
     114    bulletsSize_ = 10;*/
     115
    99116
    100117    // PLAYER SPACESHIP
     
    114131    // Construct a new spaceship and give it the node
    115132    playerShip_ = new OrxonoxShip(sceneMgr_, sceneMgr_->getRootSceneNode()
    116       ->createChildSceneNode("ShipNode", Vector3(20, 20, 20)));
     133      ->createChildSceneNode("ShipNode", Vector3(20, 20, 20)), bulletManager_);
    117134
    118135
     
    140157
    141158   
    142     // BULLET LIST FOR THE TEST APPLICATION
    143 
    144     // TODO: Use STL to make life easier. But it works this way too..
    145     bullets_ = new Bullet*[10];
    146     bulletsIndex_ = 0;
    147     bulletsSize_ = 10;
    148 
    149159
    150160    // HUMAN INTERFACE
     
    205215    if (playerShip_)
    206216      delete playerShip_;
     217    if (bulletManager_)
     218      delete bulletManager_;
     219
     220    WeaponManager::destroyWeapons();
    207221
    208222    // clean up the bullet list
    209     for (int i = 0; i < bulletsIndex_; i++)
     223    /*for (int i = 0; i < bulletsIndex_; i++)
    210224      delete bullets_[i];
    211     delete bullets_;
     225    delete bullets_;*/
    212226  }
    213227
     
    239253
    240254    // update the bullet positions
    241     for (int i = 0; i < bulletsIndex_; i++)
     255    bulletManager_->tick(time, deltaTime);
     256
     257    /*for (int i = 0; i < bulletsIndex_; i++)
    242258    {
    243259      bullets_[i]->node_->translate(bullets_[i]->speed_*deltaTime);
    244260      bullets_[i]->node_->yaw(Degree(deltaTime*100));
    245261      bullets_[i]->node_->roll(Degree(deltaTime*300));
    246     }
     262    }*/
    247263
    248264    // HUMAN INTERFACE
     
    447463      // Prevent continuous fire for the moment.
    448464      leftButtonDown_ = true;
     465
     466      playerShip_->fire();
    449467     
    450468      // let ship fire one shot with its only weapon (Barrels..)
    451       Bullet *tempBullet = playerShip_->fire();
     469      /*Bullet *tempBullet = playerShip_->fire();
    452470
    453471      // resize array if neccessary (double the size then)
     
    464482
    465483      // add the bullet to the list
    466       bullets_[bulletsIndex_++] = tempBullet;
     484      bullets_[bulletsIndex_++] = tempBullet;*/
    467485
    468486    }
     
    556574  {
    557575    camera_ = sceneMgr_->createCamera("PlayerCam");
    558     playerShip_->getRootNode()->attachObject(camera_);
     576    playerShip_->getRootNode()->getSceneNode()->attachObject(camera_);
    559577    camera_->setNearClipDistance(5);
    560578    camera_->setPosition(Vector3(0,10,500));
Note: See TracChangeset for help on using the changeset viewer.