bzr branch
http://9ix.org/bzr/traderous
65
by Josh C
enemy is back |
1 |
-- player = 300 accel, 400 velLimit |
2 |
local accelLimit = 150 |
|
3 |
local velLimit = 200 |
|
7
by Josh C
enemy |
4 |
Enemy = Tile:extend { |
5 |
image = 'data/enemy.png', |
|
6 |
maxVelocity = {x=velLimit,y=velLimit}, |
|
7 |
minVelocity = {x=-velLimit, y=-velLimit}, |
|
65
by Josh C
enemy is back |
8 |
lastFired = 0, |
9 |
onNew = function (self) |
|
10 |
self.thrust = Tile:new{image = 'data/thrust.png'} |
|
66
by Josh C
enemy thrust |
11 |
--the.app.view:add(self.thrust) |
65
by Josh C
enemy is back |
12 |
end, |
13 |
onStartFrame = function (self) |
|
14 |
||
15 |
local pvec = vector.new(the.player.x - self.x, |
|
16 |
the.player.y - self.y) |
|
17 |
||
18 |
self.rotation = math.atan2(pvec.y, pvec.x) |
|
19 |
||
20 |
local pdist2 = pvec:len2() |
|
21 |
||
22 |
if pdist2 > 400^2 then -- ... if player dist > 64? |
|
23 |
self.acceleration = vector.new(300, 0) |
|
24 |
self.acceleration:rotate_inplace(self.rotation) |
|
25 |
self.thrust.visible = true |
|
26 |
else |
|
27 |
self.acceleration = {x=0, y=0} |
|
28 |
self.thrust.visible = false |
|
29 |
end |
|
30 |
||
31 |
if pdist2 < 400^2 and |
|
32 |
love.timer.getTime() - self.lastFired > 0.25 then |
|
33 |
--print('pew') |
|
34 |
b = Bullet:new{ |
|
35 |
x = self.x + self.width / 2, |
|
36 |
y = self.y + self.height / 2, |
|
37 |
rotation = self.rotation |
|
38 |
} |
|
39 |
self.lastFired = love.timer.getTime() |
|
40 |
end |
|
41 |
||
42 |
end, |
|
7
by Josh C
enemy |
43 |
onUpdate = function(self) |
65
by Josh C
enemy is back |
44 |
self.thrust.x = self.x - self.width |
45 |
self.thrust.y = self.y |
|
46 |
self.thrust.rotation = self.rotation |
|
47 |
end, |
|
48 |
||
7
by Josh C
enemy |
49 |
} |