第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

為什么會(huì)這樣

55feea300001b15a05000159.jpg

55feea30000132df05000254.jpg


local Snake=class("Snake")

local Body=require"app.Body"


local cInitLen=3


function Snake:ctor(node)

self.BodyArray={}

self.node=node

--給予蛇移動(dòng)的方向

?self:SetDir("left")

--self.MoveDir="left"

--將蛇初始化

? for i=1,cInitLen do

self:Grow(i==1)

? 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

function Snake:GetTailGrid()

--無(wú)蛇情況

? if #self.BodyArray==0 then

? return 0,0

? end

--有蛇情況返回其尾巴,以用于添加蛇身

? local tail=self.BodyArray[#self.BodyArray]

? return tail.X,tail.Y

end


function Snake:Update()

? ??

? ? if #self.BodyArray==0 then

? ?return?

? ? end

?

?for i=#self.BodyArray,1,-1 do


? ?local body=self.BodyArray[i]

? ? ? --i=1時(shí)為頭部

? ? ?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 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

? ? ? ? ?else

? ? ? ? ? ? ? ? print("unknown Dir")

? ? ? ? ? ? ? ? return x,y

? ? ? end

end

--水平只能走垂直

--垂直只能走水平

local hvTable={

?["left"]="h",

?["right"]="h",

?["up"]="v",

?["down"]="v",

}

local rotTable={

?["up"]=90,

?["down"]=-90,

?["left"]=0,

?["right"]=180,

}


?function Snake:SetDir(dir)

?if hvTable[dir]==hvTable[self.MoveDir] then?

? return

?end

? self.MoveDir=dir

? local head=self.BodyArray[1]


? ? ?head.sp:setRotation(rotTable[self.MoveDir])

? ?


?end

return Snake


正在回答

2 回答

終于知道問題出現(xiàn)在哪里了

--給予蛇移動(dòng)的方向

?self:SetDir("left")

--self.MoveDir="left"

--將蛇初始化

? for i=1,cInitLen do

self:Grow(i==1)

? end

這里調(diào)用self:SetDir()函數(shù)的時(shí)候,self.BodyArray里面還沒有元素,所以取BodyArray[1]肯定一直nil,只要把這個(gè)函數(shù)位置放在for循環(huán)后面就好了

1 回復(fù) 有任何疑惑可以回復(fù)我~

我也遇到這種情況了,head好像沒有取出來(lái),一直是nil的。不知道為什么

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

為什么會(huì)這樣

我要回答 關(guān)注問題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)