31 #include "Core-Level-JR.h"
33 laShooter::laShooter(
void)
36 dir = rand()%1 ? -1 : +1;
37 speedv = (rand()%10)/50.0;
39 _ptPivot.bSimulateCollision = _ptPivot.bSimulateGravitation = M_FALSE;
45 laShooter::~laShooter(
void)
50 void laShooter::drawGeometry(
laRenderer *r, laPoint3 ptBasePos)
53 r->styleSet(laColor(255,255,255,255));
56 r->transTranslate( ptBasePos+_ptPivot );
58 getObject()->getModel(0)->draw( r );
60 r->transTranslate( laPoint3(0,0,shoot_z) );
61 r->styleSet(laColor(255,255,255, 200 - 200*(shoot_z/(
M_UNIT*9.0))));
63 getObject()->getModel(1)->draw( r );
68 void laShooter::drawFx(
laRenderer *r, laPoint3 ptBasePos)
70 laObject::drawFx(r, ptBasePos);
73 void laShooter::animate(laTimer &t)
76 laPlayer *pPlayer = getLevelObject()->getPlayer();
77 double change = (speedv+0.1)*t.delta();
79 shoot_z += (0.4)*t.delta();
82 _ptPivot.y( _ptPivot.y() + dir*change );
94 if( pPlayer->boundingRect().intersecting(boundingRect()) && (imune<=0) && (shoot_z<M_UNIT*3) && (shoot_z>
M_UNIT*0.5) )
96 pPlayer->hit(
rpgAttack(M_ELEMENT_PHYSICAL, 1) );
99 if(imune>=0) imune -= t.delta();
101 laObject::animate(t);
#define M_UNIT
Unit of 1 meter.
#define M_ABS(a)
Return abs(a)
Virtual interface for the Engine graphics renderer.