私はここで間違っているのか分かりません。これはコードがちょうど応答しない、トレースバックを与えず、「通常」のように実行する数少ないケースの1つです。ここでの目標は、バスケットを前後に動かすシンプルなゲームを作成することです。私はそれを特に奇妙な方法でコード化しましたが、メソッドが汚れているように感じました。私はそれが私を悩ますために戻ってくると思います。 先生、IRC、友人と相談しました。誰も私にまっすぐな答えを与えていない、または問題が本当に何であるかを知らないことを認めているか、ドキュメンテーションを見ている一般的な答えを教えてください。パイの卵とバスケット;卵とバスケットの衝突検知に苦労しています
#The egg and basket game
import pygame
from pygame.locals import *
import time
import random
x=260
y=541
score = 0
lives = 3
#Screen initialize
pygame.init()
pygame.font.init()
screen=pygame.display.set_mode((600,600))
pygame.display.set_caption("egg")
clock = pygame.time.Clock()
#Basket
basket=pygame.image.load("art/basket.png")
basket_rect = basket.get_rect()
#egg
egg=pygame.image.load("art/egg.png")
egg_rect = egg.get_rect()
def eggy(xegg, yegg):
screen.blit(egg,(xegg, yegg))
def basketey(x, y):
screen.blit(basket,(x, y))
#Movement of basket
ychange=0
xchange=0
exiting=False
xegg = random.randrange(50,550)
yegg = 20
while not exiting:
if yegg<550:
yegg += 2
eggy(xegg, yegg)
elif egg_rect.colliderect(basket_rect):
yegg=20
xegg = random.randrange(50,550)
yegg=yegg+ychange
score += 1
eggy(xegg, yegg)
else:
yegg=20
xegg = random.randrange(50,550)
yegg=yegg+ychange
lives -= 1
eggy(xegg, yegg)
clock.tick(60)
for event in pygame.event.get():
if event.type==pygame.QUIT:
exiting=True
pygame.quit()
quit()
if event.type==pygame.KEYDOWN:
if event.key==pygame.K_LEFT:
xchange=-5
if event.key==pygame.K_RIGHT:
xchange=5
if event.type==pygame.KEYUP:
if event.key==pygame.K_LEFT or event.key==pygame.K_RIGHT:
xchange=0
x=x+xchange
screen.fill((255, 255, 255))
basketey(x, y)
eggy(xegg, yegg)
if x > 600 - 78 or x < 0:
xchange = 0
if lives == 0:
print("Game Over, Your score was: %s" % score)
exiting = True
pygame.display.update()
ychange=0
ようこそStackOverflow。ヘルプドキュメントの投稿ガイドラインを読み、それに従ってください。 [最小、完全で検証可能な例](http://stackoverflow.com/help/mcve)がここに適用されます。 MCVEコードを投稿して問題を正確に記述するまでは、効果的にお手伝いすることはできません。 – Prune
うまくいかない場合はどうしたらいいですか?それが重要な場合は、あなたは決して 'ychange'を変更することはありません –