作者Cosmology (地球超人)
看板GameDesign
标题[请益] SDL中 脚色跳跃的问题
时间Tue Sep 18 22:31:41 2012
大家好
我算是自学的开发一套游戏
爬了一些文先摸摸看SDL跟C++
现在做到需要脚色有跳跃情况
却常常出现问题
程式码如下(我是着重在按键的部分 不知道观念正不正确)
http://lazyfoo.net/SDL_tutorials/lesson20/index.php
这是搭配着看的教学网站
void Foo::handle_events()
{
if( event.type == SDL_KEYDOWN )
{
y_velocity = 0;
switch( event.key.keysym.sym )
{
case SDLK_RIGHT: x_velocity += 10; break;
case SDLK_LEFT: x_velocity -= 10; break;
case SDLK_UP: y_velocity += 10; break;
}
}
else if( event.type == SDL_KEYUP )
{
//Set the velocity
switch( event.key.keysym.sym )
{
case SDLK_RIGHT: x_velocity -= 10; break;
case SDLK_LEFT: x_velocity += 10; break;
case SDLK_UP: y_velocity -= 20; break;
}
}
}
主要就是运用↑键可以往上移动
但是放掉以後速度却变成减更多 使他往下掉这样
然後在按纽以後可以重新定义速度0
可是常常会出现 卡在半空中的情况
或是上跟右一起按会卡在半空中这样
不知道怎麽解决...
请问这样的设定观念正确吗?(人物图是40*40)
比较完整的程式码我放在学校
如果有需要的话我明天会附上
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.36.234.248
1F:推 BSpowerx:建议不要用+= -= 直接用=就好,不然加加减减的数字会很怪 09/18 22:36
2F:推 yoll522:我也正在用sdl写一款游戏,正好也要开始写跳跃的部分 09/18 22:41
3F:→ yoll522:不过我的想法跟你不一样,可是我也不晓得我的正不正确 09/18 22:41
4F:→ yoll522:我是先判断是否按下up,如果按下後则jump的bool为ture 09/18 22:42
5F:→ yoll522:然後再贴角色图的地方判断jump那边是否为ture,如果为是 09/18 22:42
6F:→ yoll522:则角色y就开始增加,且记录增加的次数,例如y每次+5 09/18 22:43
7F:→ yoll522:增加5次後则jump为fals,然後把land为true开始下降 09/18 22:44
8F:→ yoll522:以上我都还没有实做过,只是我脑子的想法而已,不一定正确 09/18 22:44
9F:→ yoll522:打错字,fals→false 09/18 22:45
10F:推 KanoLoa:从程式码分析:当你在空中只要有按下左右,就不会降落 09/19 00:16
11F:推 BSpowerx:突然发现KEYDOWN里面有一行y_v = 0 囧 这个用意是? 09/19 11:02
12F:推 demon3612:有没有可能UP的KEYUP event被其他按键的event盖掉了? 09/19 14:21
13F:→ funbook:我找得好辛苦,有没有大大可以直接告诉我 如何显示(繁体) 09/19 14:31
14F:→ funbook:中文字? (要不然可能还得浪费很多时间在寻找答案) 09/19 14:32
15F:推 Bencrie:不介意 dependency 的话,PangoCairo 还不错用 XD 09/19 15:16
17F:→ Bencrie:范例只写产生 texture 的部份 09/19 15:18