首页 > 编程 > Python > 正文

pygame实现弹力球及其变速效果

2020-01-04 16:55:59
字体:
来源:转载
供稿:网友

本文实例为大家分享了pygame实现弹力球及其变速效果的具体代码,供大家参考,具体内容如下

期望:

1.球体接触到框体后反弹

2.设置速度按键,按下后改变球体速度、颜色状态

具体实现:

import pygamefrom pygame.locals import *import sys, randomclass 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()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VEVB武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表