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