バウンド処理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()

移動の処理だけ異なります.
バウンドすると速度が変わるのですが, その仕組みがまだ把握していないのでまた更新します.