标题: 五子棋游戏的制作(2)
ljjk5
元帅
Rank: 1


荣誉会员奖章
UID 46706
精华 1
积分 99426
帖子 49690
威望 554
金币 48489
热心 505
阅读权限 100
注册 2007-2-25
状态 离线
五子棋游戏的制作(2)

  五子棋游戏的制作    三.棋子布置和后悔按钮的代码设计1..介绍一下棋子的布置。初始时舞台上没有棋子,我们通过puppetsprite来动态的根据需要把棋子放在舞台上并激活移动用户使用,这样不必在舞台上拖大量的精灵,时游戏显得混乱。我们这里用41及41以后的通道来共摆放棋子。具体运用时我们在电影脚本里面定义一个函数来完成这一需要多次用到的操作:根据nowNum的值来设置,为1是设置为黑子用户走子,-1则为白子用户。onsetUsernowNumifnowNum=1then    nextname="black"member("info").text="黑子走"else    nextname="white"member("info").text="白子走"endifrepeatwitho=41tothelastchannel--从41通道开始找到第一个memberNum为空的演员,来对其关联给对应的演员ifsprite(o).memberNum=0then--开始控制该通道puppetspriteo,true--设置位置等相关精灵属性sprite(o).loc=point(322,390)sprite(o).ink=36sprite(o).width=18sprite(o).height=18--设置对应membersprite(o).member=member(nextname)--添加按钮脚本x=script("chess").new()--因为设置scriptInstanceList时,不能覆盖已有的元素,固需要加入sprite(o).scriptInstanceList=[]sprite(o).scriptInstanceList=[]sprite(o).scriptInstanceList.add(x)--强迫初始化sendspriteo,#beginspriteexitrepeatendifendrepeatend每次下完一颗棋子后,当没有玩家获胜时,则调用setUser(num)出现下一颗棋子让玩家移动。2..后悔按钮,就是把棋盘上的最近放置的一颗棋子去掉,并设置新的当前玩家。onmouseupmepuppetsound1,"regret"--播放音效repeatwithi=thelastchanneldownto42--从最好一个通道往前面扫描--找到第一个memberNum不为空的通道,即最近放置的棋子ifsprite(i).memberNum<>0then      Pos=sprite(i-1).OnlinePos--得到棋子的位置信息      onlist[Pos[1]][Pos[2]]=0--将onlist对应位置恢复,表示该位置为空了--清空最近一颗棋子的脚本和演员sprite(i).scriptInstanceList=[]sprite(i).memberNum=0--停止对最近一颗棋子所在通道的控制puppetspritei,0exitrepeatendifendrepeat  setUser(-Pos[3])--如果舞台上只剩一颗棋子,则不应由后悔按钮了ifi=42thensel.visible=0end到此位置,整个游戏的关键代码就介绍完了,大家在看完本文后,在参考dir源文件分析应该时有所收获的。源程序下载(完)

网友 ljjk5 签名 - 网友社区 ===
顶部
[广告] 免费域名(Free Subdomain) 免费空间(Free hosting) PR查询(Google Pagerank)
belfast
列兵
Rank: 1



UID 59031
精华 0
积分 1
帖子 1
威望 0
金币 0
热心 1
阅读权限 10
注册 2007-4-28
状态 离线
我想做一个射击游戏,该怎么做呢

顶部



当前时区 GMT+8, 现在时间是 2008-10-11 15:27
信产部ICP备案:京ICP备05066424号 北京市公安局网监备案:1101050648号

Powered by Discuz! 5.5.0
清除 Cookies - 联系我们 - 网友俱乐部 - Archiver - WAP