私は、pygameを使って少しプラットフォームゲームを作っていて、各レベルのレベルエディタを作るのは各ブロックの座標とサイズを入力するよりも簡単だと決めました。pygame - グリッドをグリッドに合わせる
私はプロットポイントを簡単にするためのグリッドを作るために、水平方向と垂直方向のラインを使用しています。私は、ユーザーのマウスが交差点の唯一のポイントに移動するには、10pxの間隔で移動したい
def makeGrid(surface, width, height, spacing):
for x in range(0, width, spacing):
pygame.draw.line(surface, BLACK, (x,0), (x, height))
for y in range(0, height, spacing):
pygame.draw.line(surface, BLACK, (0,y), (width, y))
:
は、ここに私のグリッド用のコードです。マウスをグリッドに押し付けるように強制してみました。
def snapToGrid(mousePos):
if 0 < mousePos[0] < DISPLAYWIDTH and 0 < mousePos[1] < 700:
pygame.mouse.set_pos(roundCoords(mousePos[0],mousePos[1]))
(BTW、roundCoords()に最も近い10個の単位に丸められた座標を返す。)
(行われていないがまたところで、snapToGridは())(メインゲームループ内と呼ばれる)
...しかしthisが発生した場合、マウスは他の場所に移動したくありません。
これを修正する方法についてのご意見はありますか?必要があれば、グリッドコードも変更できます。 ありがとう。
P.S.これは64ビットPython 2.7のPyGameの最新バージョンを使用しています
私はこれが大好きです、ありがとう。問題は、前のサークルが消えないことだけです。 –
私はあなたにとってどれほど実現可能かはわかりませんが、私は通常、各フレームで背景を再調整し、その上にあるすべてを再びブリットします。あなたの場合、私は1)白い背景をblit、2)グリッドをblit、3)blit、すべての単一のフレームでblitを行います。 – Sorade
私がやったのは、背景と同じ色の別のサークルの上に重ねてしまったので、ドットはドットの代わりにグリッドの中にあるように見えます。 –