summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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