创建一个窗口,用来显示内容
self.screen = pygame.display.set_mode((240, 400), 0, 32)
#set_mode((元组),flags,depth) 元组是窗口大小 0 32默认值
创建一个和窗口大小的图片,用来充当背景( pygame.image.load插入的图片)
self.background = pygame.image.load("./feiji/background.png")
while ture(贴图片与更新窗口要一直执行才会显示)
把背景图片贴到窗口上
self.screen.blit(self.background, (0, 0)) self.background要插入的图片(0,0)要插入的位置
更新窗口重新绘制(更新窗口图片才能让图片显示,让图片运动)
pygame.display.update()
让cpu休息一会(睡眠一会)让while ture放慢速度减少内存占用
time.sleep(0.01)
from pygame.locals import * 导入键盘常量
监听键盘的代码 for event in pygame.event.get():
判断是否点击了退出按钮 if event.type == quit
判断是否按下了键 if event.type == keydown:
键盘按键:左 k_left 右k_right 上 k_up 下k_down 空格k_space 字母键k_+小写字母
避免边遍历边删除,把要删除的元素放在列表中
pygame飞机大战完整代码
#coding=utf-8
import pygame
from pygame.locals import *
import time
import random
#全局变量
bomb_flag = 0#0没有爆炸,1爆炸
#敌机和英雄飞机的公共类
class plane(object):
def __init__(self,screen,image_path,x,y):
self.screen = screen
self.image = pygame.image.load(image_path)
self.x = x
self.y = y
#子弹列表
self.bullet_list = []
# 显示英雄和敌机飞机
def display(self):
self.screen.blit(self.image, (self.x, self.y))
# 装越界的子弹
bullet_list_remove = []
# 显示子弹
for bullet in self.bullet_list:
# 显示和移动子弹
bullet.display()
bullet.move()
# 判断那些子弹越界了
if bullet.jud