pygame旋转图形核心原理例子_飞碟与外星人旋转与碰撞举例.py

pygame旋转图形核心原理例子_飞碟与外星人旋转与碰撞举例.py

python alien and fly saurce飞碟与外星人
python alien and fly saurce飞碟与外星人

python alien and fly saurce飞碟与外星人

以下是部分代码预览:

""" pygame旋转图形核心原理例子_飞碟与外星人旋转与碰撞举例.py """

__author__ = "李兴球"
__date__ = "2019年1月"

import pygame
import random
 
# 定义颜色常量
BLACK  = (   0,   0,   0)
WHITE  = ( 255, 255, 255)
RED    = ( 255,   0,   0)
 
# 方块类
class Block(pygame.sprite.Sprite):
 
    def __init__(self, filename):
        # 调用基类的构造方法
        super().__init__() 
 
        # 创建源图,此图不画在screen上,只是用来旋转
        self.raw_image = pygame.image.load(filename).convert_alpha()
        self.image = self.raw_image  # 这是旋转后的图形,它是最终渲染的.
 
        # 获取矩形对象,用它代表图形的坐标与宽高
        self.rect = self.image.get_rect()
         
        self.angle = 0          # 角度
        self.angle_change = 0   # 角速度
 
# 实始化pygame引擎
pygame.init()
 
# 设置屏幕宽高,然后创建屏幕
screen_width = 700
screen_height = 400
screen = pygame.display.set_mode([screen_width, screen_height])
pygame.display.set_caption("旋转核心原理_飞碟与外星人旋转_作者:李兴球")
 
# 方块“列表”,用Group类创建
block_list = pygame.sprite.Group()
    
# 创建一个红色的玩家方块
player = Block("ufo.png")
player.angle_change = 0
all_sprites_list.add(player)
 
# 当关闭窗口事件发生时,把下列变量值设为True,从而退出while
done = False
 
# 设定刷新率的时钟对象
clock = pygame.time.Clock()
 
score = 0
 
# -------- 程序主循环-----------
while not done:                       # 当没有结束时,就循环
    for event in pygame.event.get():  # 迭代每个事件
        if event.type == pygame.QUIT: # 如果单击了关闭按钮
            done = True # 这个标志就会True了
 
    # 清屏为白色
    screen.fill(RED)
 
    # 获取鼠标指针坐标 ,玩家跟随鼠标指针坐标
    player.rect.center = pygame.mouse.get_pos()
     
    all_sprites_list.update()
     
    # 设定刷新率为60
    clock.tick(60)
 
    # 显示
    pygame.display.flip()
 
pygame.quit()

 

下载完整源代码与素材,请

成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)

李兴球

李兴球的博客是Python创意编程原创博客