• 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
     
     


     
  • 相关阅读:
    bzoj3832
    bzoj2117
    bzoj1095
    BZOJ 4247: 挂饰 题解
    1296: [SCOI2009]粉刷匠
    3163: [Heoi2013]Eden的新背包问题
    2287: 【POJ Challenge】消失之物
    1334: [Baltic2008]Elect
    2748: [HAOI2012]音量调节
    1606: [Usaco2008 Dec]Hay For Sale 购买干草
  • 原文地址:https://www.cnblogs.com/zhz-8919/p/10016907.html
Copyright © 2020-2023  润新知