Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Dec 5, 2007, 10:08:12 PM (16 years ago)
Author:
motth
Message:

added actual flocking code and two frameworks

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/AI/src/orxonox.cc

    r325 r426  
    3535#include <CEGUI/CEGUI.h>
    3636#include <OgreCEGUIRenderer.h>
     37#include <OgreMath.h>
    3738
    3839#include <string>
     
    4243#include "loader/LevelLoader.h"
    4344#include "Flocking.h"
     45#include "AIClass.h"
    4446
    4547// some tests to see if enet works without includsion
     
    7880//my-stuff
    7981//globale definition eines Arrays welches alle nodes enthält
    80 Vector3 ElementLocationArray[3];
    81 Vector3 ElementSpeedArray[3];
    82 Vector3 ElementAccelerationArray[3];
    83 
    84 Element arrayOfElements[3];
     82Vector3 ElementLocationArray[9];
     83Vector3 ElementSpeedArray[9];
     84Vector3 ElementAccelerationArray[9];
     85
     86Element arrayOfElements[9];
     87
     88 // float time = 0;
    8589
    8690
     
    105109      SceneManager *mgr = root_->getSceneManager("Default SceneManager");
    106110
    107 
    108 
    109111      arrayOfElements[0].update(arrayOfElements, evt);
    110112      arrayOfElements[1].update(arrayOfElements, evt);
    111113      arrayOfElements[2].update(arrayOfElements, evt);
     114      arrayOfElements[3].update(arrayOfElements, evt);
     115      arrayOfElements[4].update(arrayOfElements, evt);
     116      arrayOfElements[5].update(arrayOfElements, evt);
     117      arrayOfElements[6].update(arrayOfElements, evt);
     118      arrayOfElements[7].update(arrayOfElements, evt);
     119      arrayOfElements[8].update(arrayOfElements, evt);
     120
     121 /*   arrayOfElements[0].update(arrayOfElements, evt);
     122      arrayOfElements[1].update(arrayOfElements, evt);
     123      arrayOfElements[2].update(arrayOfElements, evt);
     124      arrayOfElements[3].update(arrayOfElements, evt);
     125      arrayOfElements[4].update(arrayOfElements, evt);   */
     126
     127
     128      for(int i=0; i<9; i++) {
     129
     130         arrayOfElements[i].speed = 0.995*arrayOfElements[i].speed + arrayOfElements[i].acceleration*evt.timeSinceLastFrame;
     131
     132         arrayOfElements[i].location = arrayOfElements[i].location + arrayOfElements[i].speed*evt.timeSinceLastFrame;
     133
     134         arrayOfElements[i].acceleration  = (0,0,0);
     135      }
    112136
    113137      mgr->getSceneNode("HeadNode1")->setPosition(arrayOfElements[0].location);
    114138      mgr->getSceneNode("HeadNode2")->setPosition(arrayOfElements[1].location);
    115139      mgr->getSceneNode("HeadNode3")->setPosition(arrayOfElements[2].location);
     140      mgr->getSceneNode("HeadNode4")->setPosition(arrayOfElements[3].location);
     141      mgr->getSceneNode("HeadNode5")->setPosition(arrayOfElements[4].location);
     142      mgr->getSceneNode("HeadNode6")->setPosition(arrayOfElements[5].location);
     143      mgr->getSceneNode("HeadNode7")->setPosition(arrayOfElements[6].location);
     144      mgr->getSceneNode("HeadNode8")->setPosition(arrayOfElements[7].location);
     145      mgr->getSceneNode("HeadNode9")->setPosition(arrayOfElements[8].location);
     146
     147
     148      /*
     149
     150      mgr->getSceneNode("HeadNode9")->setPosition(Vector3(200*cos(10*time),0,0));
     151      time = time + evt.timeSinceLastFrame;
     152
     153     */
    116154
    117155
     
    292330    Entity* ent2 = mgr->createEntity("Head2", "ogrehead.mesh");
    293331    Entity* ent3 = mgr->createEntity("Head3", "ogrehead.mesh");
    294     SceneNode *node1 = mgr->getRootSceneNode()->createChildSceneNode("HeadNode1", Vector3(0,100,0));
    295     SceneNode *node2 = mgr->getRootSceneNode()->createChildSceneNode("HeadNode2", Vector3(100,0,0));
    296     SceneNode *node3 = mgr->getRootSceneNode()->createChildSceneNode("HeadNode3", Vector3(-100,0,0));
     332    Entity* ent4 = mgr->createEntity("Head4", "ogrehead.mesh");
     333    Entity* ent5 = mgr->createEntity("Head5", "ogrehead.mesh");
     334    Entity* ent6 = mgr->createEntity("Head6", "ogrehead.mesh");
     335    Entity* ent7 = mgr->createEntity("Head7", "ogrehead.mesh");
     336    Entity* ent8 = mgr->createEntity("Head8", "ogrehead.mesh");
     337    Entity* ent9 = mgr->createEntity("Head9", "ogrehead.mesh");
     338    SceneNode *node1 = mgr->getRootSceneNode()->createChildSceneNode("HeadNode1", Vector3(100,300,100));
     339    SceneNode *node2 = mgr->getRootSceneNode()->createChildSceneNode("HeadNode2", Vector3(300,0,200));
     340    SceneNode *node3 = mgr->getRootSceneNode()->createChildSceneNode("HeadNode3", Vector3(-300,0,-100));
     341    SceneNode *node4 = mgr->getRootSceneNode()->createChildSceneNode("HeadNode4", Vector3(-100,-300,150));
     342    SceneNode *node5 = mgr->getRootSceneNode()->createChildSceneNode("HeadNode5", Vector3(150,150,-100));
     343    SceneNode *node6 = mgr->getRootSceneNode()->createChildSceneNode("HeadNode6", Vector3(150,-150,-100));
     344    SceneNode *node7 = mgr->getRootSceneNode()->createChildSceneNode("HeadNode7", Vector3(-150,-150,0));
     345    SceneNode *node8 = mgr->getRootSceneNode()->createChildSceneNode("HeadNode8", Vector3(-150,150,0));
     346    SceneNode *node9 = mgr->getRootSceneNode()->createChildSceneNode("HeadNode9", Vector3(0,0,0)); 
     347
     348// follwing camera
     349
     350 //  Camera *cam = mgr->getCamera("Camera");
     351 //  node1->attachObject(cam);
     352
     353
     354
     355
    297356    node1->attachObject(ent1);
    298357    node2->attachObject(ent2);
    299358    node3->attachObject(ent3);
     359    node4->attachObject(ent4);
     360    node5->attachObject(ent5);
     361    node6->attachObject(ent6);
     362    node7->attachObject(ent7);
     363    node8->attachObject(ent8);
     364    node9->attachObject(ent9);
    300365    ElementLocationArray[0] = node1->getPosition();
    301366    ElementLocationArray[1] = node2->getPosition();
    302367    ElementLocationArray[2] = node3->getPosition();
     368    ElementLocationArray[3] = node4->getPosition();
     369    ElementLocationArray[4] = node5->getPosition();
     370    ElementLocationArray[5] = node6->getPosition();
     371    ElementLocationArray[6] = node7->getPosition();
     372    ElementLocationArray[7] = node8->getPosition();
     373    ElementLocationArray[8] = node9->getPosition();
     374/*
     375ElementLocationArray[5] = node6->getPosition();
     376ElementLocationArray[6] = node7->getPosition();*/
    303377    ElementSpeedArray[0] = (0,0,0);
    304378    ElementSpeedArray[1] = (0,0,0);
    305379    ElementSpeedArray[2] = (0,0,0);
     380    ElementSpeedArray[3] = (0,0,0);
     381    ElementSpeedArray[4] = (0,0,0);
     382    ElementSpeedArray[5] = (0,0,0);
     383    ElementSpeedArray[6] = (0,0,0);
     384    ElementSpeedArray[7] = (0,0,0);
     385    ElementSpeedArray[8] = (0,0,0);
     386/*
     387ElementSpeedArray[5] = (0,0,0);
     388ElementSpeedArray[6] = (0,0,0); */
    306389    ElementAccelerationArray[0] = (0,0,0);
    307390    ElementAccelerationArray[1] = (0,0,0);
    308391    ElementAccelerationArray[2] = (0,0,0);
    309     arrayOfElements[0].setValues( ElementLocationArray[0], ElementSpeedArray[0], ElementAccelerationArray[0] );
    310     arrayOfElements[1].setValues( ElementLocationArray[1], ElementSpeedArray[1], ElementAccelerationArray[1] );
    311     arrayOfElements[2].setValues( ElementLocationArray[2], ElementSpeedArray[2], ElementAccelerationArray[2] );
     392    ElementAccelerationArray[3] = (0,0,0);
     393    ElementAccelerationArray[4] = (0,0,0);
     394    ElementAccelerationArray[5] = (0,0,0);
     395    ElementAccelerationArray[6] = (0,0,0);
     396    ElementAccelerationArray[7] = (0,0,0);
     397    ElementAccelerationArray[8] = (0,0,0);
     398/*
     399ElementAccelerationArray[5] = (0,0,0);
     400ElementAccelerationArray[6] = (0,0,0); */
     401    arrayOfElements[0].setValues( ElementLocationArray[0], ElementSpeedArray[0], ElementAccelerationArray[0], true);
     402    arrayOfElements[1].setValues( ElementLocationArray[1], ElementSpeedArray[1], ElementAccelerationArray[1], true);
     403    arrayOfElements[2].setValues( ElementLocationArray[2], ElementSpeedArray[2], ElementAccelerationArray[2], true);
     404    arrayOfElements[3].setValues( ElementLocationArray[3], ElementSpeedArray[3], ElementAccelerationArray[3], true);
     405    arrayOfElements[4].setValues( ElementLocationArray[4], ElementSpeedArray[4], ElementAccelerationArray[4], true);
     406    arrayOfElements[5].setValues( ElementLocationArray[5], ElementSpeedArray[5], ElementAccelerationArray[5], true);
     407    arrayOfElements[6].setValues( ElementLocationArray[6], ElementSpeedArray[6], ElementAccelerationArray[6], true);
     408    arrayOfElements[7].setValues( ElementLocationArray[7], ElementSpeedArray[7], ElementAccelerationArray[7], true);
     409    arrayOfElements[8].setValues( ElementLocationArray[8], ElementSpeedArray[8], ElementAccelerationArray[8], false);
     410/*
     411arrayOfElements[5].setValues( ElementLocationArray[5], ElementSpeedArray[5], ElementAccelerationArray[5], false);
     412arrayOfElements[6].setValues( ElementLocationArray[6], ElementSpeedArray[6], ElementAccelerationArray[6], false);*/
    312413
    313414
     
    320421    arrayOfElements[i]->update(arrayOfElements);
    321422    }  */
     423
     424//testing AIPilot -> function steer
     425  //  AIPilot temp;
     426  //  Vector3 foo = temp.steer(Vector3(0,0,1));
     427
     428
    322429    }
    323430};
Note: See TracChangeset for help on using the changeset viewer.