本文实例为大家分享了pygame实现弹力球及其变速效果的具体代码,供大家参考,具体内容如下
期望:
1.球体接触到框体后反弹
2.设置速度按键,按下后改变球体速度、颜色状态
具体实现:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
import pygame from pygame. locals import * import sys, random class Circle( object ): # 设置Circle类属性 def __init__( self ): self .vel_x = 1 self .vel_y = 1 self .radius = 20 self .pos_x, self .pos_y = random.randint( 0 , 255 ), random.randint( 0 , 255 ) self .width = 0 self .color = 0 , 0 , 0 # 球体颜色速度改变方法 def change_circle( self , number): self .color = random.randint( 0 , 255 ), random.randint( 0 , 255 ), random.randint( 0 , 255 ) # 防止球体速度方向发生改变 if self .vel_x < 0 : self .vel_x = - number else : self .vel_x = number if self .vel_y < 0 : self .vel_y = - number else : self .vel_y = number # self.vel_x, self.vel_y = number, number 如果仅此句,速度方向会发生改变 def circle_run( self ): # 防止球体超出游戏界面框体 if self .pos_x > 580 or self .pos_x < 20 : self .vel_x = - self .vel_x if self .pos_y > 480 or self .pos_y < 20 : self .vel_y = - self .vel_y self .pos_x + = self .vel_x self .pos_y + = self .vel_y pos = self .pos_x, self .pos_y pygame.draw.circle(screen, self .color, pos, self .radius, self .width) pygame.init() screen = pygame.display.set_mode(( 600 , 500 )) # Circle实例 circle1 = Circle() while True : for event in pygame.event.get(): if event. type = = QUIT: sys.exit() elif event. type = = KEYUP: if event.key = = pygame.K_1: circle1.change_circle( 1 ) elif event.key = = pygame.K_2: circle1.change_circle( 2 ) elif event.key = = pygame.K_3: circle1.change_circle( 3 ) elif event.key = = pygame.K_4: circle1.change_circle( 4 ) screen.fill(( 0 , 0 , 100 )) circle1.circle_run() pygame.display.update() |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。