主题:  有科利华的兄弟吗?

愁眉不展

职务:普通成员
等级:1
金币:0.0
发贴:114
#12001/2/6 15:52:51
在一张科利华的盘里看到一个走迷宫的游戏,迷宫的形状比较复杂而且分层,一个人物被限制在迷宫里面可以沿着曲线行走。我想了半天只想到一个笨办法:就是判断当前人物位置周围8或16个点的相素颜色以确定下一步的可能走向,分层又增加了这种判断的复杂性。不知各位有什么更好的方法,科利华的兄弟是怎么做的,可否分享一下?



D计划-混沌

职务:管理员
等级:6
金币:15.2
发贴:3528
#22001/2/11 16:26:51
迷宫的原理,在d中实现,我知道一个办法是将底图用分割成一个个SPRITE小块
每小块都有方向定义,可直接用NAME OF CAST定义(如:CAST "LTBR")
组成一个迷宫需要四通方向图1(LTBR)
三通方向图4(LRB,LTB,LTR,TRB)
二通方向图6(LR,LT,LB,RB,LB,LT)
一通方向图4(L,T,R,B)
如果有层还得加(up,dowm)2种
每一次动作前是先知道运动方向的,然后判断方向的可行性
底图是张效果图(比如三维),上面的通向图是不可见的
转弯应该是图片加计算次数产生的效果
控制的行走是比较简单的,因为方向可以指定
迷宫中怪物的方向DIABLO需用random,
例 :用 repeat with J = MIGONGSTART to MIGONGEND
if (sprite I within J) then
put J into WEIZHI
exit repeat
end if
end repeat
RETURN WEIZHI
(MIGONGSTART=迷宫开始SPRITENUM,MIGONGEND=迷宫结束SPRITENUM,I=怪物SPRITENUM
WEIZHI=现在怪物SPRITENUM下的迷宫小块的SPRITENUM)

迷宫可通方向MIGONG是 the name of cast (the castNum of sprite WEIZHI)
repeat while TRUE
put char random(4) of "LTRB" into DIABLO
if MIGONG contains DIABLO then exit repeat
end repeat
RETURN DIABLO
在加上一些LINGO就可以作出例如吃豆子的游戏了(当然需要较深的功底)
真的很想把他说清楚
看来我得申请一个免费空间了
感兴趣的兄弟可以联系我
我会给你一个原理性的源文件(能看懂的那种)
SPRITE小块也可以用LINGO定义区域或XTRAS取代,又更复杂了
科利华的东西不大的话发给我看看

页面:点这儿参观



愁眉不展

职务:普通成员
等级:1
金币:0.0
发贴:114
#32001/2/12 11:04:10
那是光盘里的内容,没法给你发。能把你的程序发一份给我么?
谢谢!



D计划-混沌

职务:管理员
等级:6
金币:15.2
发贴:3528
#42001/2/13 1:24:45
源程序上传错误(有一些为deugger而设参数未去除,不影响使用)

put the name of cast (the castNum of sprite currentPiece) into possDir
set k = the number of chars in possdir
set i = random(k)
put char random(k) of possdir into nextDir
put nextDir into myDirection
该为
put the name of cast (the castNum of sprite currentPiece) into possDir--得到下一步的可移动方向
put char random(the number of chars in possdir) of possdir into myDirection --得到移动方向
回答:-----
用lingo划分区域的思路是
划分迷宫
依据迷宫制定一list如[rt,rtl,.....]
通过木偶的位置得到划分数值
然后...不用我说了吧
试试,要不sprite是不够用
xtras好像可以用table,可惜我没有



荣誉版主

职务:普通成员
等级:1
金币:0.0
发贴:71
#52001/2/13 8:56:52