怎么实现这种效果
gamemaker吧
全部回复
仅看楼主
level 5
▫向导大人▫
楼主
像以撒的结合一样,人物可以获取一些道具,来改变人物的能力,有一些道具获取后人物会增加一些代码,比方说获取“便携导弹发射器”后攻击时有50%概率发射一个导弹,有一些道具获取后人物一些代码会被改变,比方说获取“精灵之翼”后人物可以无视低矮的障碍物
2020年06月06日 11点06分
1
level 14
宋异人
我感觉,相对简单一点就是在人物创建初期就把可能的状态都设计到,然后判断是否存在某种状态,如果存在则相关代码起作用。
2020年06月07日 01点06分
2
▫向导大人▫
那是不是每步都要检测有没有这个道具?每次攻击时都检测有没有“便携导弹发射器”,每次检测碰撞时都要检测有没有“精灵之翼”,这样会不会很占用资源?
2020年06月07日 02点06分
宋异人
@▫向导大人▫
简单的方法效率低,效率高的办法就得复杂一点。最好就是在吃到某个道具后赋予状态。不过还是需要判断。
2020年06月07日 02点06分
▫向导大人▫
补充一下,我的游戏里这些道具是人物创建之前就有的,而且游戏过程中不会失去
2020年06月07日 02点06分
▫向导大人▫
@▫向导大人▫
这样的话有没有什么更好的方法
2020年06月07日 02点06分
level 5
▫向导大人▫
楼主
补充一下,我的游戏里这些道具是人物创建之前就有的,而且游戏过程中不会失去
2020年06月07日 02点06分
3
level 8
liurengfei
效率高的办法是,将你要实现的各种功能制作成脚本。
用一个数据结构列表储存当前要要执行的脚本索引。用函数script_execute来执行列表中储存的脚本
增加或删除功能,只需操作列表即可。无需判断状态
2020年06月10日 14点06分
6
吧务
level 13
q糖豆p
你感觉“在未获取某物品时完全不会执行的动作”,实际游戏逻辑都是在if(某物品已获得){.....}的范围里。
获取“便携导弹发射器”后攻击时有50%概率发射一个导弹
实际逻辑是
反击动作 - 如果“便携导弹发射器”已获得 - 随机一个判定值与50%对比成立 - 发射一个导弹
并未进行反击动作、并未获得物品、随机值不满足,这3个中有任意一个成立都不会发射导弹。
无论物品是否获得,这段判定代码都在这里,并不是“获得物品以后人物代码改变”。
2020年06月15日 03点06分
7
▫向导大人▫
我的意思是能不能做到判定了一次,拥有便携导弹发射器之后就不判定了,现在来看是不能
2020年06月15日 10点06分
q糖豆p
@▫向导大人▫
方法是有,但拿以撒举例的话,这个方案反倒更麻烦。那就是未获得道具和已获得道具的玩家做成两个不同的object,然后每增加一个“互不影响”的道具,需要制作的object数量就会翻倍。这样倒是不至于“总是判断”了。
2020年06月16日 00点06分
level 15
开不了车
事实上,只要该事件不是总是发生的,那它就需要判断,所以楼主的想法是无法实现的,但可以减少判断的运算量
2020年06月15日 10点06分
8
level 9
小Ytianyang
emmmm其实还有一个办法就是把道具做成对象,然后对应的事情都让道具来处理,玩家身上只写控制道具的代码就行了
2020年06月17日 01点06分
9
level 9
◆依稀♤
加一个布尔变量
2020年06月18日 08点06分
10
level 9
br0d
链表,存道具,到要用道具攻击时执行?
2020年06月19日 14点06分
11
1