具體幀腳本如下:
global gempty,randomlist,first,finish,tmp,m1,m2,m3,m4,m5,m6,m7,
m8,m9,m10,m11,m12,m13,m14,m15,m16,mlist,m
on enterframe
if first = 0 then
repeat with i = 1 to 16
puppetsprite i,true
set the membernum of sprite i to getat(randomlist,i)
end repeat
set first = 1
end if
if finish = tmp then
go the frame + 1
else
set tmp = []
end if
set m = move(gempty)
end
在進入幀事件句柄 on enterframe 中,首先根據變量 first 來判定是否第一次進入當前循環幀,判定條件是 first 是否為0。如果是,則根據 randomlist 列表中的值來更新通道 1 - 16 的角色。更新后,將變量 first 賦值為 1 。以免下次在執行此操作。然后比較最終列表 finish與臨時列表 tmp 之間是否相同,如果相同則,拼圖結束。跳到結束幀。否則繼續在當前幀循環,并將tmp 列表賦值為空,以免在 tmp 列表因 on exitframe 的操作而疊加。最后取得空白在當前通道時的可移動列表 m。
on exitframe
repeat with x = 1 to 16
addat(tmp,the membernum of sprite x )
end repeat
go the frame
end
在退出幀事件句柄 on exitframe 中,通過循環生成當前各個通道的角色臨時列表 tmp,并用 go the frame 在當前幀循環。
所有程序代碼都已講述完畢。如果將這 16 張圖片換成您喜愛的圖片的拼圖,你可以生成自己風格的拼圖游戲。通過上面的講述,您會發現 lingo 編程的確與眾不同。這樣的游戲可以用如此簡單的代碼在很短的時間內編寫完畢。(完)
新聞熱點
疑難解答