私はコンピュータプログラミングを教えています。最初のコースの生徒のために、衝突時に方向を変える最も簡単なアルゴリズム(ウィンドウ枠付き)を探しています。このコードは正常に動作します衝突の方向を逆転させる最も単純なアルゴリズム
import sys, pygame
pygame.init()
speed_x = 1
speed_y = 1
black = (0, 0, 0)
width, height = 320, 240
size = (width, height)
screen = pygame.display.set_mode(size)
display_surface = pygame.display.get_surface()
display_rectangle = display_surface.get_rect()
ball_img = pygame.image.load("data/ball.gif")
ball = ball_img.convert_alpha()
ballrect = ball.get_rect()
while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT: sys.exit()
if not display_rectangle.contains(ballrect.move([speed_x, 0])):
speed_x *= -1
else:
ballrect = ballrect.move([speed_x, 0])
if not display_rectangle.contains(ballrect.move([0, speed_y])):
speed_y *= -1
else:
ballrect = ballrect.move([0, speed_y])
screen.fill(black)
screen.blit(ball, ballrect)
pygame.display.flip()
pygame.time.delay(30)
誰かが簡単なアルゴリズムやcontains
またはその他のcollide
pygameのテストを使用して方向を逆にする明確なアルゴリズムについて知っていれば、私の質問は:これは私の実際のコードです。
いつか私はアプローチが学生にとって最も簡単で、新しい明確なアプローチが現れると思います。
すべての提案は
いくつかの提案を歓迎しますか!ありがとう!
私はあなたのコードを試していませんが、おそらく動作するようです。あなたの質問は何ですか? –
@GregHewgill、ご意見ありがとうございます、はい、それは動作します、私は編集された質問をしました。 – danihp