zoukankan      html  css  js  c++  java
  • pygame 浅解

     1 import pygame
     2 from first_pygame.plane_spirit import *                         # 调用重载的精灵类
     3 
     4 # 初始化
     5 pygame.init()                                                                   # 初始化所有所需游戏模块
     6 screen = pygame.display.set_mode((700, 700))                                    # 设置游戏窗口大小
     7 pygame.display.set_caption("打飞机")                                            # 这是窗口名字
     8 bg = pygame.image.load("./image/bg.jpg")                                        # 加载背景图片
     9 player = pygame.image.load("./image/player/player.png")                         # 加载英雄图片
    10 
    11 screen.blit(bg, (0, 0))                                                         # 设置背景图片,窗口对象调用blit方法 参数一:背景对象 参数二:图片的绘制位置
    12 pygame.display.update()                                                         # 更新输出
    13 
    14 player_rest = pygame.Rect(200, 500, 402, 257)                                   # 记录英雄初始位置 和大小
    15 
    16 clock = pygame.time.Clock()                                                     # 实例绘制时钟
    17 
    18 # 精灵初始化敌机
    19 diji_jinglin = Game_Jinglin("./image/computer/diji1.png")              # 实例精灵
    20 diji_jinglin1 = Game_Jinglin("./image/computer/diji1.png",speed=2)
    21 jingling_group = pygame.sprite.Group(diji_jinglin,diji_jinglin1)          # 加入精灵组
    22 
    23 while True:
    24     clock.tick(60)                                                              # 每秒绘制60次
    25     player_rest.y -= 1                                                          # 设置动画 每次向Y轴负方向运动-1
    26     if player_rest.y <= -257:
    27         player_rest.y = 900
    28     screen.blit(bg, (0, 0))                                                     # 背景覆盖
    29     screen.blit(player, player_rest)                                            # 英雄闪现
    30 
    31     # 让精灵组调用两个方法
    32     # update 更新所有精灵位置
    33     jingling_group.update()
    34     # 让精灵绘制到窗口
    35     jingling_group.draw(screen)
    36 
    37     pygame.display.update()                                                      # 更新显示
    38 
    39     for event_list in pygame.event.get():                                        # 事件监听  pygame.event.get()返回事件列表
    40         if event_list.type == pygame.QUIT:
    41             print("游戏退出...")
    42             pygame.quit()
    43             exit()                                                                # 把当前程序退出
    first_pygame/plane_spirit.py/Game_jinglin类
    class Game_Jinglin(pygame.sprite.Sprite):
        """
        精灵类
        继承:pygame.sprite.Sprite
        重载:update
        """
    
        def __init__(self, image_name, speed=1):
            super(Game_Jinglin, self).__init__()
            self.image = pygame.image.load(image_name)
            self.rect = self.image.get_rect()
            self.speed = speed
    
        def update(self, *args):
            self.rect.y += self.speed      # 竖直方向自加
    注:浅谈pygame sprite(精灵)
     1 Sprite模块、sprite对象
     2 
     3 在pygame.sprite模块里面包含了一个名为Sprite类,
     4 他是pygame本身自带的一个精灵。但是这个类的功能比较少,
     5 因此我们新建一个类对其继承,在sprite类的基础上丰富,以方便我们的使用。
     6 rect (位置)
     7 draw(绘制)
     8 update(更新画面)
     9 碰撞检测(groupcollide(组) spritecollide(对象))
    10 精灵类参考:https://www.cnblogs.com/msxh/p/5013555.html
     
  • 相关阅读:
    【NOIP2015四校联训Day7】 题 题解(Tarjan缩点+DFS)
    【NOIP2013】火柴排队 题解(贪心+归并排序)
    【AHOI2009】中国象棋 题解(线性DP+数学)
    【HDU5869】 Different GCD Subarray Query 题解 (线段树维护区间GCD)
    【FZYZOJ】愚人节礼物 题解(状压DP)
    JavaSE 基础 第12节 基本算术运算符与模运算符
    JavaSE 基础 第11节 深入理解字符串
    JavaSE 基础 第09节 赋值与初始化
    JavaSE 基础 第08节 数据类型转换
    JavaSE 基础 第07节 变量和常量
  • 原文地址:https://www.cnblogs.com/jum-bolg/p/11116957.html
Copyright © 2011-2022 走看看