–– coding:utf-8 ––
import pygame
from pygame.locals import * # 引入pygame中的所有常量。例如:事件类型、键和视频模式等的名字
from sys import exit
import random
SCREEN_WIDTH = 480
SCREEN_HEIGHT = 800
子弹类
class Bullet(pygame.sprite.Sprite):
def init(self, bullet_img, init_pos):
pygame.sprite.Sprite.init(self)
self.image = bullet_img
self.rect = self.image.get_rect()
self.rect.midbottom = init_pos
self.speed = 10
def move(self):
self.rect.top -= self.speed
玩家类
”’
1.pygame.sprite.Sprite是可见游戏对象的一个基类,Player从父类中继承属性和方法。
self.image这个负责显示什么
self.rect负责在哪里显示
2.”sprite”,中文翻译”精灵”,在游戏动画一般是指一个独立运动的画面元素,在pygame中,
就可以是一个带有图像(Surface)和大小位置(Rect)的对象。
3.pygame.Rect用于存储直角坐标的pygame对象
4.pygame.sprite.Group用于保存和管理多个Sprite对象的容器类。
5.subsurface创建一个引用其父级的新surface
”’
class Player(pygame.sprite.Sprite):
def init(self, plane_img, player_rect, init_pos):
pygame.sprite.Sprite.init(self) # 调用父类(Sprite)构造函数
self.image = [] # 用来存储玩家飞机图片的列表
for i in range(len(player_rect)):
self.image.append(plane_img.subsurface(player_rect[i]).convert_alpha())
self.rect = player_rect[0] # 初始化图片所在的矩形
self.rect.topleft = init_pos # 初始化矩形的左上角坐标
self.speed = 8 # 初始化玩家速度,这里是一个确定的值
self.bullets = pygame.sprite.Group() # 玩家飞机所发射的子弹的集合
self.img_index = 0 # 玩家飞机图片索引
self.is_hit = False # 玩家是否被击中
发射子弹
def shoot(self, bullet_img):
bullet = Bullet(bullet_img, self.rect.midtop)
self.bullets.add(bullet)
向上移动需要判断边界
def moveUp(self):
if self.rect.top
Original: https://blog.csdn.net/weixin_42169971/article/details/114423950
Author: 空气安全讲堂
Title: python大飞机游戏设计思路_pygame开发打飞机游戏代码
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/782923/
转载文章受原作者版权保护。转载请注明原作者出处!