Project1

标题: 【强手棋基础篇】仿大富翁游戏基本框架 [打印本页]

作者: 柳之一    时间: 2008-7-4 00:11
标题: 【强手棋基础篇】仿大富翁游戏基本框架
教学讨论QQ群 53535461  作业检查:亿万星辰 (群主)

作业的问题在群里问亿万就好了{/tp}

仿大富翁游戏

初级的一些基本东西完成后,我们来通过制作一个完整的游戏来活用之前
的东西。

【核心问题】
这个游戏其实并不复杂,很多人的问题就是如何判断走到某格的事件的触
发。事件过多怎么解决卡的问题。这2个问题还真不好解决。我的解决办
法是抛弃上面的判断方式。解决问题有时候就是这样简单。一条路死了
就换条路。(分明是偷懒)

【问题1:让角色动起来】
首先我们要让角色按照骰子走步。
首先规定一个棋盘
■■■■
■    ■
■■■■
黑色格子就是要走的地方。我们在标记上数字来表示每个格子的位置
8,9,10,1
7,     ,2
6,5,4 ,3
变量简化写成V,V1就是变量1
V1=玩家位置,V2=com位置,V3=玩家方向(0:逆时针移动 1:顺时针)
V4=com方向,V5=随机数

首先初始化
V1=1,V2=6,V3=V4=1

预备工作准备好了,
我们开始在公共事件里面规定流程
公共事件1:
循环开始
#判断输赢,判断完,跳出
玩家回合
事件判断
com回合
事件判断
循环结束

玩家回合(公共事件):
v5随机成1~6
以下循环
if v5>0
角色前进一步
v1+=1(既:v1变量+1)
v5-=1
除此之外
跳出循环
end
循环结束

这样角色就可以动了,不过v5=4的时候发现人物出去了。
原来是在拐角的地方没有转弯。

我们在更正一下:

玩家回合(公共事件):
v5随机成1~6
以下循环
if v5>0
if v1==3
角色面向左
end
角色前进一步
v1+=1(既:v1变量+1)
v5-=1
除此之外
跳出循环
end
循环结束

这样,第一个拐角处就可以了。其他681拐角处同理。
敌人也这样设置。

测试一下游戏,发现就是角色和敌人走来走去。
我们可以在随机数后面显示文章。显示走了几步。至于骰子动画再说,先
实现基本功能再说。

这时候我们发现v4v5没有用到,是给以后变方向用得的。

【问题2:我要买房子】
买房子之前要先规定各个格子的属性。
建立个全局变量$shuju=[]
[位置,类型,所属,价格,等级]
位置就是格子的编号
8,9,10,1
7,     ,2
6,5,4 ,3

类型就是
0代表是事件,1代表是房子,2代表特殊建筑:旅馆,购物中心,公园什
么的

所属就是
0:空地   1:玩家1所有   2:电脑玩家1所有  真正的大富翁有4个人在
扩展就行了。

价格就是这个房子的价格

等级就是目前这个房子的等级

例子[2,1,0,100,0] 2号格房子 目前是空地,购买价格100,没有等级。

[3,0,0,100,0]3号格事件,后面3个其实没有用可以用nil 或者加上事件
属性,是突发事件,还是商店什么的

$shuju[1]到$shuju[10]设定你喜欢的就好。
例子:$shuju[1]=[2,1,0,100,0]

为了方便讲解,我规定1368为事件,其他是房子,没有特殊建筑。

我们再来规定一下
v6是当前玩家 例子:v6=1就是玩家 =2就是电脑玩家
v7是当前玩家位置
v8是玩家金钱
v9是电脑金钱

在玩家回合的后面追加
v6=1,v7=v1
敌人回合追加
v6=2,v7=v2



公共事件(事件检查):
if $shuju[v7][1]==0
#显示文章 你遇到什么不幸事件了金钱丢失什么的
# 也可以创建其他大富翁效果,由于种类繁多,以后专门讨论
显示文章:你遇到事件了
elsif $shuju[v7][1]==1
#这里就开始买房子了
#房子为空地的时候
   if $shuju[v7][2]==0
        if v6==1 && v8>=$shuju[v7][3]
        显示选择项:是否买地?
        买的情况:
        $shuju[v7][2]=1#玩家所有
        $shuju[v7][4]=1#建筑1级
          #减去买的金钱
        elsif v6==2 && v9>=$shuju[v7][3]
        #电脑情况,改法参考上面
        else
        显示文章:金钱不足。
        end
   elsif $shuju[v7][2]==v6#房子为当前玩家所有
         if v6==1 && v8>=$shuju[v7][3]
        显示选择项:是否升级?
        升的情况:
        $shuju[v7][4]+=1#建筑升1级
           #减去买的金钱
        elsif v6==2 && v9>=$shuju[v7][3]
        #电脑情况,改法参考上面
        else
        显示文章:金钱不足。
           end
   elsif
        $shuju[v7][2]!=v6#房子为非当前玩家所有
         if v6==1
        #玩家减去 价格乘以级别的金钱,加给别人
         v8-=$shuju[v7][3]*$shuju[v7][4]
         v9+=$shuju[v7][3]*$shuju[v7][4]
        显示选择项:你损失了,谁加上了,你可以自定义说的话
       
        elsif v6==2
        #电脑情况,改法参考上面
           end
end


然后在主流程里面 反复调用这几个事件就行了。
现在就可以甩骰子走格子买房子了
基本的构架就是这样了。有错误疏忽请原谅。

作业?知道要做什么了吧。鉴于是考试期间,先不具体作业和截止时间。
作者: 亿万星辰    时间: 2008-7-4 20:29
你这个是打算用事件来做呢还是脚本辅助?
作者: 柳之一    时间: 2008-7-4 21:51
以下引用亿万星辰于2008-7-4 12:29:09的发言:

你这个是打算用事件来做呢还是脚本辅助?


基本上是事件,一些东西用脚本。
作者: 亿万星辰    时间: 2008-7-5 04:08
那就是F11里不加东西咯?
作者: 越前リョーマ    时间: 2008-7-5 22:27
连事件脚本都没掌握的事件派飘过………………
作者: 亿万星辰    时间: 2008-7-7 02:16
以下引用越前リョーマ于2008-7-5 14:27:58的发言:

连事件脚本都没掌握的事件派飘过………………

这个用纯纯的事件感觉应该也可以做,就是会麻烦好多好多……{/gg}
作者: 阳光下的月色    时间: 2008-7-10 17:39
我可以交现成的作业么{/tp}

  全事件● 《家中有鬼》正式版(大富翁式RPG) ●

已发布的哦{/hx}{/hx}
作者: 阳光下的月色    时间: 2008-7-10 17:40
以下引用越前リョーマ于2008-7-5 14:27:58的发言:

连事件脚本都没掌握的事件派飘过………………


话说原来越前也是事件派吗{/gg}
作者: yangff    时间: 2008-7-14 05:44
大富翁的话,不建议这样做。。。
作者: 亿万星辰    时间: 2008-7-14 06:21
事件制作确实存在一些问题,不过用事件做小规模一点的确实还是比较锻炼思维的。
作者: 精灵使者    时间: 2008-7-16 19:04
我记得以前有个大富翁式的游戏叫“虚拟人生”,那个似乎很不错……
就是五辆不同颜色的汽车走过真正的人生之路,最后统计金钱的游戏……嗯嗯……
作者: 风雪优游    时间: 2008-7-18 07:04
能做出个运动游戏嘛?如足球?
作者: 身之察察    时间: 2008-7-19 09:12
作业:
http://rpg.blue/upload_program/files/强手棋_96856929.rar
截图:


看了老师讲的建立shuju数组的方法,觉得很好
不过实际做的时候遇到点困难,于是稍微改了一些方案做的

主要是关于显示的问题,因为要显示每格的地是我方的还是对手的,是地还是房子。
我想最简单的方法就是,在每格处放一个事件,每个事件建立多个事件页,每个事件页条件是某变量的数值,根据该变量不同
显示的行走图不同。比如变量=0显示空地行走图,变量=1显示我方土地,变量=2显示我方房屋,变量=3显示敌方房屋。。。。
这样的话就得,每格地都需要一个单独的变量,所以,我把数组shuju中的 等级和所属都省略了,因为可以用这些每格所对应的
变量得值来代替。后来想了一下,感觉shuju中的位置,也可以用一个变量“位置”来代替,然后类型,因为我没做太多,所以
也省略了,直接用位置变量来条件分歧,位置=特殊建筑的位置时就怎么怎么样。于是,我就只把价格做成了这个数组了。就成这样了。。

暂时有的功能:
1走路
2买地+升级+扣对手钱
3特殊建筑购买(其实只是比较贵的地,收钱也比较多)
4地图4个角是随机命运。
作者: ONEWateR    时间: 2008-8-5 04:42
以下引用yangff于2008-7-13 21:44:16的发言:

大富翁的话,不建议这样做。。。


赞同,觉得很麻烦..
作者: pixel32    时间: 2008-8-20 05:29
提示: 作者被禁止或删除 内容自动屏蔽
作者: 越前リョーマ    时间: 2008-8-21 07:07
以下引用风雪优游于2008-7-17 23:04:52的发言:

能做出个运动游戏嘛?如足球?

其实我也觉得这个比较难吧……
踢足球感觉一点思路都没有……




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1