summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Pérez-Cerezo <gabriel@gpcf.eu>2017-12-25 20:27:14 +0100
committerGabriel Pérez-Cerezo <gabriel@gpcf.eu>2017-12-25 20:27:14 +0100
commit8d1f2d3b55cc4bde79a912fb167bd42ef2da42bc (patch)
tree8e35e2478968dbd98c2b9cc28f65c576f321076a
parentd423e2897792acf197675c5fa9bd1be546d94789 (diff)
Make boats return to their first position
-rw-r--r--init.lua16
1 files changed, 10 insertions, 6 deletions
diff --git a/init.lua b/init.lua
index 184641d..a75f112 100644
--- a/init.lua
+++ b/init.lua
@@ -186,19 +186,23 @@ function boat.selfdriving_step(self, dtime)
local instr = self.instructions[1]
local curpos = self.get_instr_pos(instr)
self.object:setpos(curpos)
- self.dnext = -1
- local nextpos = self.instructions[self.current+2]
+ local nextpos = self.instructions[self.current+1]
nextpos = self.get_instr_pos(nextpos)
- self.object:setpos(nextpos)
- self.object:setyaw(math.pi/4*instr[4])
+ self.object:setpos(curpos)
+ self.object:setyaw(core.dir_to_yaw(vector.direction(curpos,nextpos)))
self.v = instr[5]
self.dnext = vector.distance(curpos,nextpos)
end
if self.dnext < 0 then
self.current = self.current + 1
if self.current == #self.instructions then
- self.selfdriving = false
- self.v = 0
+ local instr = self.instructions[self.current]
+ self.current = 0
+ local nextpos = self.instructions[1]
+ nextpos = self.get_instr_pos(nextpos)
+ local curpos = self.get_instr_pos(instr)
+ self.object:setyaw(core.dir_to_yaw(vector.direction(curpos,nextpos)))
+ self.dnext = vector.distance(curpos,nextpos)
return
end