0

私は現在、pyhton 3.2.3 と pygame でメイン キャラクターがコインを収集できるようにするサイド スクローラー ゲームの関数の作成に取り組んでいます。私がやろうとしているのは、キャラクターの位置がお金の位置と同じになると、お金が消えるということです。これが私のコードです:

def drawMoney(x,y):
offset = 0 - guy[X]
guyPos = guy[X]+640
moneyPos = x
print(guyPos,moneyPos)
if lvlNum == level1:
    money1  = screen.blit(money,(offset+x, y))
if guyPos == moneyPos or guy[Y] == y:
    y = 10000

レベルの画像を再ブリットしてお金を消そうとしていますが、何らかの理由でこれは起こりません。理由はわかりませんが、何らかの理由で機能していません。すべてが正しいように見えますが、guyPos が moneyPos と決して等しくないと仮定しています。どんな助けでも大歓迎です。

4

2 に答える 2

1

行うことによって:

offset = 0 - guy[X] 
guyPos = guy[X] + offset

あなたは実質的にゼロを割り当てていますguyPos

于 2014-06-16T22:56:52.627 に答える
0

このようなものには、pygame に既に組み込まれている colliderect() 関数を使用します。プレーヤーがいずれかのコインと衝突するかどうかを確認し、衝突する場合は、その変数にそれぞれの量を追加してプレーヤーのコレクションにコインを追加し、ブリットするスプライトのリストからコインを削除します。

擬似コード:

For coin in coin_list:
    Does the coin collide with the player (check by using pygame.Rect.colliderect())
        If so: add coin amount to player's coin variable and remove coin from coin_list
于 2014-06-17T10:46:10.547 に答える