设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1820|回复: 4
打印 上一主题 下一主题

[已经过期] 求教若干事件移动重叠时,相互挤开(在同格) 的方法或思路

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1759
在线时间
2524 小时
注册时间
2010-10-12
帖子
1454

开拓者

跳转到指定楼层
1
发表于 2014-12-8 14:03:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
我记得以前看到过一个脚本。真忘了叫什么,是说主角可以移动到任意点(不再是32*32的格子中心)
于是我想到如何才能让事件移动起来也充满松散的随机性呢。特别是人多密集的时候有时候不需要整齐划一的站队。
而且有时候两个可以互相穿透的事件移动到了同一格子, 叠在一起很难看的。如果他们能走着走着遇到一起后互相“挤开”就棒了。
当然我知道如果一个格子事件太多还是不好看。这个就不考虑了。

我自己摸索半天,写了点小函数改了一下character的@real_x 和@real_y
他们确实错开了但是因为@real_x 和@real_y的改变被判定成为了moving移动中。

那么请教一下大神们,如果能做到移动中互相“挤开”并且不影响moving啥的其他的相关的东西。
而且我做的不好,只是纯粹让他们颤抖了一下。

毕竟这种效果在正在做游戏中需要用到

评分

参与人数 1+1 收起 理由
玛尔斯 + 1 我很赞同

查看全部评分


Lv1.梦旅人

梦石
0
星屑
55
在线时间
218 小时
注册时间
2013-12-17
帖子
386
2
发表于 2014-12-8 17:15:48 | 只看该作者
思路:
Game_Event也就是我们的事件,所处的位置是由x,y控制的。
这个x,y是指逻辑坐标而非实际坐标。
然后SpriteCharacter来根据GE的逻辑坐标来计算实际坐标(*32),并显示。

如果你想实现你所说的功能,首先你就需要让Game_Event不再使用逻辑坐标显示。需要添加一个实际坐标。
并且SprChar也不再根据GE的逻辑坐标计算实际坐标。而是直接调用GE计算好的实际坐标。

至于挤开。判断他们是否有碰撞,有的话让其中一个或者全都移动。
在GameEvent的Update_stop方法里刷新最佳。

评分

参与人数 1星屑 +100 收起 理由
RyanBern + 100 塞糖

查看全部评分

RM脚本定制/修改/整合 群:143356012(入群注明来意)
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1759
在线时间
2524 小时
注册时间
2010-10-12
帖子
1454

开拓者

3
 楼主| 发表于 2014-12-10 05:01:40 | 只看该作者
国产吃货 发表于 2014-12-8 04:15
思路:
Game_Event也就是我们的事件,所处的位置是由x,y控制的。
这个x,y是指逻辑坐标而非实际坐标。

这么说的话,整个Game_Character,SpriteCharacter都要改了吗
果然好复杂((( ゚д゚)))

回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

4
发表于 2014-12-10 12:43:46 | 只看该作者
本帖最后由 taroxd 于 2014-12-10 12:48 编辑
刺夜之枪 发表于 2014-12-10 05:01
这么说的话,整个Game_Character,SpriteCharacter都要改了吗
果然好复杂((( ゚д゚))) ...


要改的是以 Game_Character 为主,Sprite_Character 应该几乎不需要做改动。

因为和数据的计算有关的部分应该都是在 Game_Xxxx 里面,Sprite 只是处理显示而已。

补充一下沙发的思路:你还要考虑事件的触发条件(可以通过碰撞检测)等各种细节

评分

参与人数 1星屑 +100 收起 理由
RyanBern + 100 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
218 小时
注册时间
2013-12-17
帖子
386
5
发表于 2014-12-10 13:29:47 | 只看该作者
你还要考虑事件的触发条件(可以通过碰撞检测)等各种细节

是的,这是主要需要解决的问题。
你要知道有的时候可能 事件偏离了他的逻辑位置。
换句话说:你看他在这,其实他在那。
你要解决这个问题:最好让重要的需要交互的事件自主的往最靠近逻辑坐标的位置挤挤。
RM脚本定制/修改/整合 群:143356012(入群注明来意)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-23 22:15

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表