看板 GameDesign 關於我們 聯絡資訊
※ 引述《yoll522 (522)》之銘言: : 原文怒刪 : 不好意思,我最近也在用SDL開發橫向捲軸, : 有幾點問題想請問一下,謝謝 : 1.請問你遊戲在執行的時候是如何不讓CMD視窗跑出來的? lazyfoo第一課XD 我是用Code::Blocks 其他IDE我不清楚 就把Project/targets options裡面的Build targets裡面的Type改成GUI application 然後編譯的時候選擇release 而不是Debug模 : 2.請問你遊戲是如何做到可以讓畫面X1跟X2?圖片是如何跟著等比例放大跟縮小的? 可以參考lazyfoo第31課, 這一課有教你怎麼自己寫程式將圖片水平翻轉。 稍微改一下這部份的程式,改成將圖片變大兩倍就行 總之SDL似乎沒有內建圖片放大(縮小)功能, 因此必須自己去寫。 畢竟圖片放大縮小時,會根據你演算法的不同產生很大的差異 總之就自己讀圖檔 -> 寫程式將他放大 -> 將放大的圖拿來用 : 3.請問你遊戲的被攻擊以及攻擊別人是如何判斷『擊中』的? Lazyfoo第17課,這邊基本上就講了碰撞的判斷基礎 一般習慣上、即使是不規則的圖形也當成一個正方形來判定(比較省資源) 於是用幾個迴圈去掃描所有的物件, 判斷彼此之間有沒有碰撞。 雖然不是沒有比較快的演算法(用O(N log(N))去排序再掃描之類 ) 不過太麻煩了XD 直接全部掃過一次比較快。 場地上有20個物件會彼此碰撞就掃20*19次 : 不好意思問題有點多@@ : 還希望可以指教一些,謝謝 -- ██ ▄ ▄▄▄ ▄ ▄ ________ (Nintendo) ▄▄▄▄  ̄ ̄ ̄ ̄ ▄▄ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.144.7
cooper6334:3我都當作圓形用距離vs半徑判斷,這樣會比較吃資源嗎? 08/30 00:00
Bencrie:其實 gcc 系的 linker 參數加上 -mwindows 就可以去掉 08/30 00:02
Bencrie:cmd 視窗了。 08/30 00:02
BSpowerx:圓形也可以,看遊戲需求吧。我納款遊戲也有部份攻擊是用 08/30 00:08
BSpowerx:圓形作判定 08/30 00:08
Bencrie:拿掉 sqrt 會快一點 XD 08/30 00:09
cooper6334:當然不是開根號求實際距離,而是把半徑和平方阿XDDDD 08/30 00:10
yoll522:感謝解答,我那時就想說要參考教學說的正方形判斷 08/30 00:26
yoll522:就是擔心說要判斷的正方形太多,程式會lag@@ 08/30 00:27
yoll522:翻轉那課我有學到,可是它裡面有教到放大嗎 08/30 00:27
yoll522:還是這是你額外自己想的? 08/30 00:28
Bencrie:放大 bilinear interpolation 就很好用了 @@a 08/30 00:30
yoll522:不好意思,我想在請問一個問題,如果一個地板有斜坡 08/30 00:52
yoll522:然後我是打算用一個私底下的地圖判斷來做移動路徑 08/30 00:52
yoll522:http://ppt.cc/dWr_ 08/30 00:53
yoll522:人物移動在畫面顯示是右邊的圖,實際上判斷是左邊那個 08/30 00:53
yoll522:那請問sdl有那種『判斷是否是什麼顏色』這樣嗎? 08/30 00:53
yoll522:這樣我就可以寫說『如果前面有黑色,則人物y上升』 08/30 00:53
yoll522:謝謝 08/30 00:54
juicefish:套句我們老師以前說的「先有功能,再考慮效能」 08/30 12:05
juicefish:我想Lag問題不是你這個階段要考慮的 08/30 12:06
BSpowerx:Lazyfoo 18課有教針對圖形像素去作的碰撞判斷 08/30 12:13
yoll522:18課教的不是每個像素的碰撞嗎? 因為我是想說能不能判斷 08/30 13:00
yoll522:主角的底部踩到的是不是黑色 08/30 13:00
BSpowerx:就改成判斷主角腳部的像素碰到的像素是不是黑的就是啦~ 08/30 14:19
BSpowerx:我自己是沒寫過啦XD 看你的應用力了 08/30 14:20
yoll522:好的,謝謝你的幫忙 08/30 16:55
damody:lag問題是 寫程式的人在考慮的 09/03 04:27