hi
im making a top down game where enemys try to catch you
there is the code for enemy movement:
FUNCTION enemyMove:
LOCAL pi = 3.14159265
FOR x=0 TO LEN(enemysFleet[])-1 STEP 1
//calculate distance between follower and target
LOCAL distanceX = (b_BodyGetPosX(tmpObjxx)-b_BodyGetPosX(enemysFleet[x].obj))
LOCAL distanceY = (b_BodyGetPosY(tmpObjxx)-b_BodyGetPosY(enemysFleet[x].obj))
LOCAL distanceTotal = SQR(distanceX*distanceX+distanceY*distanceY);
IF distanceTotal <= 80000
LOCAL moveX=enemysFleet[x].turnRate*distanceX/distanceTotal
LOCAL moveY=enemysFleet[x].turnRate*distanceY/distanceTotal
//
LOCAL totalmove = SQR(moveX * moveX + moveY * moveY)
//
moveX = enemysFleet[x].speed * moveX / totalmove;
moveY = enemysFleet[x].speed * moveY / totalmove;
//
// b_moveObject( enemysFleet[x].obj,b_BodyGetPosX(enemysFleet[x].obj)+moveX,b_BodyGetPosY(enemysFleet[x].obj)+moveY,0)
//b_BodySetAngle(enemysFleet[x].obj,-angleInRadians);
LOCAL angleInRadians = ATAN(moveX, moveY);
LOCAL andleInDegrees = angleInRadians * (180 / pi);
LOCAL velocityX = SIN ( b_BodyGetAngle(enemysFleet[x].obj))*enemysFleet[x].speed
LOCAL velocityY = COS ( b_BodyGetAngle(enemysFleet[x].obj))*enemysFleet[x].speed
//
b_SetLinearVelocity(enemysFleet[x].obj,velocityX,velocityY);
IF enemysFleet[x].mission="attack"
b_ApplyTorque(enemysFleet[x].obj,b_BodyGetAngle(enemysFleet[x].obj)-angleInRadians);
b_SetLinearVelocity(enemysFleet[x].obj,velocityX,velocityY);
ELSEIF enemysFleet[x].mission="run"
b_SetLinearVelocity(enemysFleet[x].obj,-velocityX,-velocityY);
ENDIF
ENDIF
NEXT
ENDFUNCTION
////
i cant seem to get the enemy's to turn at you with difrent turn rates
any ideas?
10x
Could you edit your post and put your code inside a code block?
It's the button with the '#'.
It looks like something converted some code characters into little squares.