作者yoll522 (yolling)
看板GameDesign
标题[请益] 横向卷轴斜坡设计
时间Mon Aug 6 21:54:18 2012
各位高手们好,我最近在设计横向卷轴的游戏
目前单纯没有斜坡的横向移动大概没有问题
但是目前要设计上坡跟下坡的时候卡住了,因此想请问各位一下
http://ppt.cc/X1U1
如果说像这张图,由左往右移动,第一个斜坡我本来是打算利用座标的方式
如果到了座标x某个点,就启动某开关,让我往右移动的时候人物增加的不只是x还有y
可是感觉这样有点无脑,况且每个斜坡的坡度又不一样
想请问各位如果要做横向的设计,是如何判断斜坡的?
谢谢
另外请问各位有推键的横向设计的书籍吗?没有的话也没关系,感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 49.158.60.5
※ 编辑: yoll522 来自: 49.158.60.5 (08/06 21:55)
1F:推 KanoLoa:如果要做这功能,通常会用现成的引擎吧 ? 08/06 22:03
2F:→ KanoLoa:自己刻要简单就用暴力法存地形座标,再不然判断色块。 08/06 22:06
因为我们是用sdl自己写的,所以没有引擎@@
3F:推 damody:请问原po用的是游戏引擎,还是dx opengl硬干? 08/06 22:08
我是用sdl自己写的
4F:→ damody:基本上你的坡会有个梯度变化量 你可以设定一个门槛值 08/06 22:09
没听过梯度@@等等google查查看,谢谢
5F:→ damody:超过这个门槛值就可以往前 否则只能往後之类的 08/06 22:09
感谢提供的网址,我再来看看
7F:→ damody:因为你会有这个坡的连续点 可以算出角色目前站的位置的梯度 08/06 22:10
8F:推 littleshan:一般engine的解法就是地板是个collider 08/06 22:20
9F:→ littleshan:你的人物会受到重力往下掉,直到碰到collider为止 08/06 22:20
10F:→ littleshan:如果你是自己刻程式也建议这样做 08/06 22:21
11F:→ littleshan:因为2d platformer几乎一定要用到collider 08/06 22:21
我本来也有这样想过,就一直往下掉,直到掉到地板为止,
可是感觉这样在爬坡的时候,斜坡事在身体的旁边,
感觉没办法用往下掉的方式来爬上坡
还是是我的想法错误@@?
※ 编辑: yoll522 来自: 49.158.60.5 (08/06 22:28)
※ 编辑: yoll522 来自: 49.158.60.5 (08/06 22:31)
12F:→ yoll522:因为个人英文不是很好,所以看网址的话要翻译很久 08/06 22:42
13F:→ yoll522:网址上的方法似乎也是把地图变成很多个格子,用座标的 08/06 22:43
14F:→ yoll522:方式来判断前後左右该做的事情噜? 08/06 22:43
15F:→ azureblaze:差不多是那样 08/06 23:01
16F:→ azureblaze:另外你也可以用物理引擎来帮你处理碰撞 08/06 23:01
17F:→ azureblaze:可是用物理控制角色会比较麻烦 08/06 23:01
18F:→ yoll522:我有学过这种方法的碰撞,只是物体是四四方方的正方形 08/06 23:10
20F:推 futfan:试试看让角色贴着给的点或线移动,能作的话应该就能解决? 08/06 23:10
21F:→ yoll522:所以我想说如果套用到高地不一的地板的话似乎也没办法 08/06 23:10
22F:→ futfan:当然如果你要作出加速感的话,就需要三角函数。 08/06 23:12
23F:→ yoll522:请问意思是说在地板上再多画一条线,让角色跟着线移动吗 08/06 23:13
24F:→ easy0519:高低不一地板判断 你可以拿一张黑白图来判定哪边可以走 08/06 23:16
25F:→ easy0519:以及哪边不能走 08/06 23:16
26F:→ easy0519:在斜坡判定..假设脚色位置在 (x, y) ,在 x 轴上想往 v 08/06 23:18
27F:→ easy0519:方向走..可以去查那张黑白图 (x + v, y) 判定是否能走 08/06 23:18
28F:→ easy0519:If not, 检查 (x+v, y+1) 到 (x+v, y+n) 区段是否可以走 08/06 23:19
29F:→ easy0519:如果可以 (x+v, y+k) 可以走,直接设定脚色在这个位置 08/06 23:20
30F:→ easy0519:其中 n 为你允许玩家最陡能走的坡度, y<k<=n 08/06 23:21
31F:→ yoll522:原来如此,这方法感觉还不错,我明天会来设计看看的 08/06 23:38
32F:→ yoll522:谢谢你的详细步骤唷,也谢谢其他人的帮忙 08/06 23:38