From de766399e2442fbc438123c1c8763e0ae90e6158 Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Fri, 20 Apr 2012 03:36:39 +0100 Subject: numerous problems --- gaunt01/src/bird.cpp | 41 +++++++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 12 deletions(-) (limited to 'gaunt01/src/bird.cpp') diff --git a/gaunt01/src/bird.cpp b/gaunt01/src/bird.cpp index 35d9020..a6dfcf8 100644 --- a/gaunt01/src/bird.cpp +++ b/gaunt01/src/bird.cpp @@ -34,6 +34,8 @@ bird::bird() fieldofview=60; lastTime=ofGetElapsedTimef(); + + centrePoint=ofVec2f(ofGetWidth()/2,600); //quick and dirty } bird::~bird() @@ -41,7 +43,7 @@ bird::~bird() //dtor } -void bird::update(map& players, float angle){ +void bird::update(map& players, float angle,vector border){ float time=ofGetElapsedTimef(); float timeSeg=time-lastTime; lastTime=time; @@ -75,16 +77,30 @@ void bird::update(map& players, float angle){ playhead.push_back(headif); } } - //fly towards nearest visible player - int nearest=-1; - float distance=9999; - for(int i=0;i180) centrehead=centrehead-360; + while (centrehead <-180) centrehead=centrehead+360; + if (OutsidePolygon(border,futurepoint)) { + //if (ofVec + leaving=true; + turnRate=centrehead/5; + } + else { + leaving=false; + //fly towards nearest visible player + int nearest=-1; + float distance=9999; + for(int i=0;i-1) turnRate=-playhead[nearest]; } - if (nearest>-1) turnRate=playhead[nearest]; } void bird::draw(){ @@ -95,7 +111,7 @@ void bird::draw(){ ofRotate(90,-1,0,0); ofRotate(heading+90,0,1,0); ofSetHexColor(0xffffff); - ofScale(.15,.15,.15); + ofScale(.25,.25,.25); bindTexture(texture); model.drawAnimated(); unbindTexture(texture); @@ -114,8 +130,9 @@ void bird::drawShadow(){ model.drawAnimated(); ofPopMatrix(); } -void bird::drawDebug(){ - ofSetHexColor(0xff00ff); +void bird::drawDebug(){ + if (leaving) ofSetHexColor(0xff0000); + else ofSetHexColor(0xff00ff); ofLine(pointer.s,pointer.s+1000*pointer.t); } -- cgit v1.2.3