本文实例为大家分享了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()
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。