看板 GameDesign 關於我們 聯絡資訊
大家好 我算是自學的開發一套遊戲 爬了一些文先摸摸看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
BSpowerx:建議不要用+= -= 直接用=就好,不然加加減減的數字會很怪 09/18 22:36
yoll522:我也正在用sdl寫一款遊戲,正好也要開始寫跳躍的部分 09/18 22:41
yoll522:不過我的想法跟你不一樣,可是我也不曉得我的正不正確 09/18 22:41
yoll522:我是先判斷是否按下up,如果按下後則jump的bool為ture 09/18 22:42
yoll522:然後再貼角色圖的地方判斷jump那邊是否為ture,如果為是 09/18 22:42
yoll522:則角色y就開始增加,且記錄增加的次數,例如y每次+5 09/18 22:43
yoll522:增加5次後則jump為fals,然後把land為true開始下降 09/18 22:44
yoll522:以上我都還沒有實做過,只是我腦子的想法而已,不一定正確 09/18 22:44
yoll522:打錯字,fals→false 09/18 22:45
KanoLoa:從程式碼分析:當你在空中只要有按下左右,就不會降落 09/19 00:16
BSpowerx:突然發現KEYDOWN裡面有一行y_v = 0 囧 這個用意是? 09/19 11:02
demon3612:有沒有可能UP的KEYUP event被其他按鍵的event蓋掉了? 09/19 14:21
funbook:我找得好辛苦,有沒有大大可以直接告訴我 如何顯示(繁體) 09/19 14:31
funbook:中文字? (要不然可能還得浪費很多時間在尋找答案) 09/19 14:32
Bencrie:不介意 dependency 的話,PangoCairo 還不錯用 XD 09/19 15:16
Bencrie:http://tinyurl.com/8jkj6dg 09/19 15:17
Bencrie:範例只寫產生 texture 的部份 09/19 15:18