查看: 3149|回复: 3

[已经过期] 求教横版游戏斜面判断法

  [复制链接]
梦石
0
星屑
55
在线时间
869 小时
注册时间
2009-3-13
回帖
730
发表于 2010-9-12 13:13:32 | 显示全部楼层 |阅读模式

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

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

×
那个,最近做了一个冒险岛的小游戏(不是用RUBY的),但是发布后被关于地图的BUG纠结了很久,于是向各位大大求教思路,因为不是用RUBY,所以只要思路就好了......
0、基本已知条件
已知:角色原点在下方正中间,所有斜面原点位于左上角,所有平面的原点位于上方中间
1、普通斜面
已知:斜面的横向长度(就是斜面两端x值对减然后求绝对值)和纵向长度(斜面两端y值对减的绝对值)。
求判断:角色是否站在斜面上,以及角色走动时x,y的变化。
——————————————————
我以前想过一个判断方法......
斜面.png
如图,AB为斜面,AC,BC为辅助线,假设角色的x为rx,斜面的x与y为mx和my,斜面的高为m.length,斜面的长为m.width......首先rx-mx得到角色相对于该斜面的x(假设为fx),于是rx应等于mx+fx,而ry应等于my+m.height*[fx/m.width],然后判断角色是否站在斜面上就是如果角色的原点在这个三角形的范围内并且x与y对应(就是满足上面rx与ry的关系),那么可以判定为站立,但是出现非常纠结的事情,就是如果角色从左边跳入斜面,然后按死→,角色就会从斜面中间穿出去......(角色一次移动5),那么,各位大大有没有更好的方法......
2、弯曲的斜面
已知:斜面的横向长度和纵向长度。
求判断:角色是否站在斜面上,以及角色走动时x,y的变化。
——————————————————
我去问过数学老师,数学老师说可能和函数有一点关系(但是我还没有学函数......),于是情况如图
弯曲的斜面.jpg
弯弯曲曲的线是用铅笔描的曲线(当然每个弯曲斜面的曲线不一定是这样的),剩下的就都是辅助线了......于是求教弯曲斜面的判断方法......
3、(附加)物品判断
中间的星星当作一个物品,我做的游戏有的时候物品爆出来是掉在地板上,但是有的时候会继续往下掉,掉到下一层......我将物品的原点设置在正中间,判断方法和人物相同......为什么会这样,然后有没有更好的想法......
4、我的平面判断法
我在游戏中用的平面(就是水平地板)的判断法是(所有x,y的名称和1相同,if后面的括号里装的是需要判断的内容,大括号什么的不用管了,G是重力【就当作向下掉的距离就好了】):
if(rx>m.x-m.width/2&&rx<m.x+m.width/2&&ry<m.y&&ry+G>m.y){
    这时候就可以判定角色在地板上了......
}
就是这样,r代表角色和物品,但是为什么会出现3中的纠结场面还是请各位大大告诉我吧......

就是这样,请大家帮我一下,万分感激......
我的寒假活动作品:http://rpg.blue/forum.php?mod=viewthread&tid=281065
咱的龙蛋,求点击:

酱油的

梦石
0
星屑
1840
在线时间
2161 小时
注册时间
2007-12-22
回帖
3216

贵宾

发表于 2010-9-12 13:25:29 | 显示全部楼层
本帖最后由 禾西 于 2010-9-12 13:27 编辑

設人物的坐標爲(Ax, Ay)
斜面函數爲 y=kx
將Ax代入公式中的x,如 Ay > y 則人物站在斜面上,如Ay小于y,則人物站在斜面下。
內陷曲線斜面函數爲 y=x^2
Ay > y 則人物站在斜面上,如Ay小于y,則人物站在斜面下。
其余問題同理……
另外同學你的帖子錯區了
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复

使用道具 举报

名侦探小柯

梦石
10
星屑
4420
在线时间
3740 小时
注册时间
2006-9-6
回帖
36596

极短27获奖MZ评测员开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

发表于 2010-9-12 13:29:25 | 显示全部楼层
弯曲的斜面?二次函数么?
不定期回归 ~ 游戏开发之旅
———————————————————————————————
回复

使用道具 举报

孤独守望

梦石
0
星屑
3144
在线时间
1535 小时
注册时间
2006-10-16
回帖
4223

开拓者贵宾

发表于 2010-9-12 14:40:46 | 显示全部楼层
= =……
一次函数表达式Ax + By + C = 0或者y = kx + b.
判断是不是在斜面“上”请用LP(线性规划)
二次函数基本表达式y = ax平方 + bx + c,
……非线性规划?估计用不到……
另外,游戏屏幕的通常定义是原点在左上角,向右为x正轴,向下为y正轴。
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部