2017-08-18 5 views
0

私は、プレイヤーのキャラクターが常にスクリーンの中央にとどまり、周囲の壁が多くのトップダウンゲームのように位置を変えるようなゲームを作成しています。静かなプレイヤーとのゲームの衝突

私の問題は、私が壁のリストを持っているということです。pygame.Rectsしかし、私は衝突を静的プレーヤーで正しく動作させる方法を見つけられません。私はこのような変数を持っています

walls = [pygame.Rect([0, 0, 20, 20]), ...] 
player = pygame.Rect([100, 100, 20, 20]) 

壁には現在のレベルのすべての壁が含まれています。どのようにすれば、プレイヤーがこれらの矩形の1つに衝突し、正しく調整され、他のすべての壁も移動するのを止めるにはどうすればいいですか? プレーヤーの位置は決して変更されないため、常に[100,100]にする必要がありますが、壁の位置は変更されます。

+0

https://stackoverflow.com/questions/31022269/collision-detection-between-two-rectangles-in-javaはPythonに簡単に翻訳する必要があります – user3080953

+0

@ user3080953 Pygameには衝突ロジックが組み込まれています。 – SwiftsNamesake

答えて

2

壁を動かさないでください。プレーヤーを移動します。それから、すべてのゲームオブジェクトを描画するときは、プレーヤーの座標を引いて(100、100)を加えて、移動していないプレーヤーの外観を与えます。あなたのゲームモデルは常にあなたのゲームの実際の状態を表すべきであり、レンダリングの考慮事項は一般にレンダリング時にのみ発生します。 。

関連する問題