COMPLEX-B

导航

pygame小记


pygame.display.set_mode(x, y)设置显示窗口大小
pygame.sprite.Sprite方法中有image, rect, speed等参数
  其中
image 可以通过 pygame.image.load('图片路径')进行加载,rect为记录位置信息的元组(x, y, width, hight)

pygame.Rect(x, y, width, hight) # 可定义一个矩形变量,和rect一样
pygame.USEREVENT # 可自定义用户事件,常量名最好全是大写字母
pygame.time.set_timer(用户事件名, 频率) # 定义以多快的频率触发用户事件,频率为多少毫秒每次,常和pygame.USEREVENT一起使用
for event in pygame.event.get():
  if event.type == 用户事件名:
    # 捕获事件,注意一定要加type
keys_pressed = pygame.key.get_pressed()
# 判断元组中对应的按键索引值 1
if keys_pressed[pygame.K_RIGHT]:
# 捕获键盘,执行相应操作

clock = pygame.time.Clock()
clock.tick(频率) # 定义游戏循环频率,为没秒钟循环多少次

group = pygame.sprite.Group() # 设置精灵组
group.update()
group.draw(screen) # 更新显示精灵组

pygame.display.update() #更新显示屏幕

# 1. 子弹摧毁敌机,pygame自带碰撞检测
pygame.sprite.groupcollide(self.hero.bullets, self.enemy_group, True, True)

# 2. 敌机撞毁英雄
enemies = pygame.sprite.spritecollide(self.hero, self.enemy_group, True) # 返回所有与英雄所碰撞的敌机列表

# 判断列表时候有内容
if len(enemies) > 0:

# 让英雄牺牲
self.hero.kill() # 删除精灵

# 结束游戏
PlaneGame.__game_over()

class GameSprite(pygame.sprite.Sprite):
"""飞机大战游戏精灵"""

def __init__(self, image_name, speed=1):

# 调用父类的初始化方法
super().__init__()

# 定义对象的属性
self.image = pygame.image.load(image_name)
self.rect = self.image.get_rect()
self.speed = speed

def update(self): # 重写update方法可使精灵按照自定义的方式更新位置

# 在屏幕的垂直方向上移动
self.rect.y += self.speed
 
 


 

posted on 2018-11-25 19:47  COMPLEX-B  阅读(155)  评论(0编辑  收藏  举报