pygame實現(xiàn)彈力球及其變速效果
更新時間:2017年07月03日 11:33:45 作者:魚丸粗面丶
這篇文章主要為大家詳細(xì)介紹了pygame實現(xiàn)彈力球及其變速效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了pygame實現(xiàn)彈力球及其變速效果的具體代碼,供大家參考,具體內(nèi)容如下
期望:
1.球體接觸到框體后反彈
2.設(shè)置速度按鍵,按下后改變球體速度、顏色狀態(tài)
具體實現(xiàn):
import pygame
from pygame.locals import *
import sys, random
class Circle(object):
# 設(shè)置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)
# 防止球體速度方向發(fā)生改變
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 如果僅此句,速度方向會發(fā)生改變
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()
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python selenium 執(zhí)行完畢關(guān)閉chromedriver進程示例
今天小編就為大家分享一篇python selenium 執(zhí)行完畢關(guān)閉chromedriver進程示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
解決Python plt.savefig 保存圖片時一片空白的問題
今天小編就為大家分享一篇解決Python plt.savefig 保存圖片時一片空白的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01

