Erwartung:
1. Die Kugel springt nach dem Kontakt mit dem Rahmen
2. Stellen Sie die Geschwindigkeitstaste ein und ändern Sie die Geschwindigkeit und den Farbzustand der Kugel, nachdem Sie darauf gedrückt haben
Spezifische Umsetzung:
1 import pygame 2 from pygame.locals import * 3 import sys, random 4 5 6 class Circle(object): 7 # 设置Circle类属性 8 def __init__(self): 9 self.vel_x = 110 self.vel_y = 111 self.radius = 2012 self.pos_x, self.pos_y = random.randint(0, 255), random.randint(0, 255)13 self.width = 014 self.color = 0, 0, 015 16 # 球体颜色速度改变方法17 def change_circle(self, number):18 self.color = random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)19 # 防止球体速度方向发生改变20 if self.vel_x < 0:21 self.vel_x = -number22 else:23 self.vel_x = number24 if self.vel_y < 0:25 self.vel_y = -number26 else:27 self.vel_y = number28 # self.vel_x, self.vel_y = number, number 如果仅此句,速度方向会发生改变 def circle_run(self):31 # 防止球体超出游戏界面框体32 if self.pos_x > 580 or self.pos_x < 20:33 self.vel_x = -self.vel_x if self.pos_y > 480 or self.pos_y < 20:36 self.vel_y = -self.vel_y37 self.pos_x += self.vel_x38 self.pos_y += self.vel_y39 pos = self.pos_x, self.pos_y40 ygame.draw.circle(screen, self.color, pos, self.radius, self.width)41 42 pygame.init()43 screen = pygame.display.set_mode((600, 500))44 # Circle实例45 circle1 = Circle()46 47 while True:48 for event in pygame.event.get():49 if event.type == QUIT:50 sys.exit()51 elif event.type == KEYUP:52 if event.key == pygame.K_1:53 circle1.change_circle(1)54 elif event.key == pygame.K_2:55 circle1.change_circle(2)56 elif event.key == pygame.K_3:57 circle1.change_circle(3)58 elif event.key == pygame.K_4:59 circle1.change_circle(4)60 61 screen.fill((0, 0, 100))62 63 circle1.circle_run()64 65 pygame.display.update()
Das obige ist der detaillierte Inhalt vonTeilen Sie ein Implementierungsbeispiel für einen Pygame-Hüpfball. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!