/traderous

To get this branch, use:
bzr branch /bzr/traderous
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
local accelLimit = 300 * 2 -- same as the player, yes?
local velLimit = 600 -- same as player
Enemy = Tile:extend {
   image = 'data/enemy.png',
   maxVelocity = {x=velLimit,y=velLimit},
   minVelocity = {x=-velLimit, y=-velLimit},
   onUpdate = function(self)
                 -- find where player is relative to us
                 local dx = the.player.x - self.x
                 local dy = the.player.y - self.y

                 local ax, ay = dx, dy
                 if math.abs(dx) > math.abs(accelLimit) then
                    ax = accelLimit * util.signOf(dx)
                    ay = accelLimit * math.abs(dx) / dy
                 elseif math.abs(dy) > math.abs(accelLimit) then
                    ay = accelLimit * util.signOf(dy)
                    ax = accelLimit * math.abs(dy) / dx
                 end

                 self.acceleration.x = ax
                 self.acceleration.y = ay

                 self.rotation = math.atan2(self.velocity.y, self.velocity.x)
              end
}