我正在編程一個基於六角形網格的遊戲,您在其中點擊相鄰的玩家貼圖時,以及玩家移動地圖/網格時向相反方向移動(在主jframe內的jpanel上使用setLocation(),這樣相對於屏幕來說,玩家仍然居中。我傳入我的GameBoard類的構造函數中,最大數量的六邊形高度,我希望網格位於中間和單個六邊形的半徑,並且它工作得很好(在某種程度上)。六角形格柵在生成流出框架時被切斷
當我傳入足夠多的六角形時,一些網格會在jframe外部產生(與普通的1080x1920大小的顯示器一樣高和寬)。當發生這種情況時,我仍然可以讓玩家四處移動並打開菜單並更改玩家皮膚,但是當在網格上向北移動時(當網格的頂部是在jframe外部生成的)時,網格會被切斷,在整個六角形重新粉刷之前結束。
我想知道是否有解決這個問題,也許我只是簡單地被忽視的方式。我的第一個想法是每次玩家移動並且根本不使用setLocation()方法時,用新的x,y座標刪除並重新生成網格,但我覺得這樣做效率很低,而且更多的是暴力解決方案(last採取)。我只是覺得必須有一個更優雅或有效的方式。即使在一般方向稍有微調,也將不勝感激。我已經玩弄了setSize(),setMinimumSize()和setPreferredSize()方法來嘗試使jpanel或jframe的內容窗格變大。
圖片的幫助:
這個問題可能更適合於https://gamedev.stackexchange.com/順便說一下 –