zoukankan      html  css  js  c++  java
  • 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
     
     


     
  • 相关阅读:
    linq获取最大ID值
    asp:MultiView选项卡控件,可以用来选择性的显示需要的部门
    TFS修改工作区映射区
    怎么解决javascript小数相减会出现一长串的小数位数?
    (转)向页面动态载入用户控件和自定义控件的方法(谨记)
    (转)工作经验到底是个什么东东?工作经验从哪里来?
    hdu 5441 travel 离线+带权并查集
    hdu 5438 Ponds dfs
    hdu 5437 Alisha’s Party 模拟 优先队列
    CF 500 B. New Year Permutation 并查集
  • 原文地址:https://www.cnblogs.com/zhz-8919/p/10016907.html
Copyright © 2011-2022 走看看