我的怎么是向左下倾斜的...
local Snake=require "app.Snake"
local MainScene = class("MainScene", function()
return display.newScene("MainScene")
end)
local cMoveSpeed=0.3
function MainScene:onEnter()
self.snake=Snake.new(self)
local tick=function()
self.snake:Update()
end
cc.Director:getInstance():getScheduler():scheduleScriptFunc(tick,cMoveSpeed,false);
end
function MainScene:onExit()
end
return MainScene
local Snake=class("Snake")
local Body=require("app.Body")
local cInitLen=3
function Snake:ctor(node)
self.BodyArray={}
self.node=node
self.MoveDir="left"
for i=1,cInitLen do
self:Grow(i==1)
end
end
function Snake:GetTailGrid()
if #self.BodyArray==0 then
return 0,0
end
local tail=self.BodyArray[#self.BodyArray]
return tail.X,tail.Y
end
local function OffsetGridByDir( x,y,dir )
if dir=="left" then
return x-1,y
elseif dir=="right" then
return x+1,y
elseif dir=="up" then
return x,y-1
elseif dir=="down" then
return x,y+1
end
print("unknow dir",dir)
return x,y
end
function Snake:Update()
if #self.BodyArray==0 then
return
end
for i=#self.BodyArray,1,-1 do
local body=self.BodyArray[i]
if i==1 then
body.X,body.Y=OffsetGridByDir(body.X,body.Y,self.MoveDir);
else
local front=self.BodyArray[i-1]
body.X,body.Y=front.X,front.Y
end
body:Update()
end
end
function Snake:Grow(isHead)
local tailX,tailY=self:GetTailGrid()
local body=Body.new(self,tailX,tailY,self.node,isHead)
table.insert(self.BodyArray,body)
end
return Snake
你的原点可能是在左下角而不是在正中心 origin参数