バウンド処理2
バウンド処理の違う方法について説明します.
バウンド時の速度の工夫をします.
import pygame from pygame.locals import * import sys SCR_WIDTH,SCR_HEIGHT = 1000,700 pygame.init() screen = pygame.display.set_mode((SCR_WIDTH,SCR_HEIGHT)) pygame.display.set_caption("画像の移動と跳ね返り処理2") backImg = pygame.image.load("hakusuiko.jpg").convert() pythonImg2 = pygame.image.load("kappa3.png").convert() colorkey = pythonImg2.get_at((0,0)) # 左上の色を透明色に pythonImg2.set_colorkey(colorkey, RLEACCEL) pythonImg2_rect = pythonImg2.get_rect() vx = vy = 120 # 1秒間の移動ピクセル clock = pygame.time.Clock() while True: screen.blit(backImg, (0,0)) time_passed = clock.tick(60) # 60fpsで前回からの経過時間を返す(ミリ秒) time_passed_seconds = time_passed / 1000.0 # ミリ秒を秒に変換 # 画像の移動 pythonImg2_rect.x += vx * time_passed_seconds pythonImg2_rect.y += vy * time_passed_seconds # 跳ね返り処理 if pythonImg2_rect.left < 0 or pythonImg2_rect.right > SCR_WIDTH: vx = -vx if pythonImg2_rect.top < 0 or pythonImg2_rect.bottom > SCR_HEIGHT: vy = -vy screen.blit(pythonImg2, pythonImg2_rect) pygame.display.update() for event in pygame.event.get(): if event.type == QUIT: sys.exit() if event.type == KEYDOWN and event.key == K_ESCAPE: sys.exit()
移動の処理だけ異なります.
バウンドすると速度が変わるのですが, その仕組みがまだ把握していないのでまた更新します.