我自學C++並玩2D瓦片映射。居中精靈或移動相機? C++/Opengl
我一直在讀通過這個scrolling
後here,這是基於這個tiling tutorial。
使用上面的教程和Pearson, Computer Graphics with OpenGL
書的一些幫助我寫了一個小程序,繪製了一個40x40
平鋪的世界和一個Sprite
(也是一個瓷磚)。
就繪圖/渲染順序而言,地圖(或世界)本身就是背層,而Sprite是最前面的層(或頂層)。我認爲這是一個很好的方式,因爲它比2個拼貼塊更容易互動,而不是拼貼圖和自定義精靈或矩形。那是對的嗎?
我實現了一個Keyhandling()
功能,您可以使用keyboards arrow keys
移動map
的viewport
內。我有一個名爲offsetx, offsety
的變量,當按下某個鍵時會增加或減少。根據我是否將變量分配給map
或sprite
,我可以在屏幕上的任意方向更多或另一個。
這兩者似乎都不能很好地工作,所以我將變量分配給(地圖和精靈),但是精靈正值,地圖負值。所以在按鍵時,這允許我的Sprite在一個方向上移動,而地圖在相反的方向上移動。
我的問題是,小精靈很快就會移動到足以離開窗口,並不足以將更多的地圖帶入場景中。 (該窗口在任何時候只顯示瓷磚的1/8th
)。
我一直在想整天,我認爲一個有效的方法來解決這個問題將固定sprite
到屏幕的中心,當一個按鍵被按下map
移動...我我不確定如何實現這個。
這是一個好方法嗎?還是預計會移動視口或相機呢?