pygame制作飞机大战2——pygame基础知识

如果使用过scratch的话,相信对于pygame制作游戏的内在逻辑就很容易理解了。

pygame是一个python3自带的库,能够帮我们非常简便的制作各类2D游戏或者3D(嗯哼),它包含了游戏化涉及到的基本操作,例如:键盘控制、鼠标控制、窗口设置、图像移动、帧......

而要制作一个简单的游戏,就需要知道pygame实现一个游戏的最简程序,python的最简程序包括以下部分:

(1)导入函数

(2)参数初始化

  • 背景图
  • 被控制的控件图

(3)加载并转化图像

(4)窗口参数设定

(5)初始化pygame

(6)游戏主循环

 

下面分别说下几个部分:

(1)导入函数

import pygame
from pygame.locals import *
from sys import exit
  • 导入pygame模块
  • pygame.local,python中常用的常量
  • exit,退出python程序

(2)参数初始化

background_image_filename = 'sea.jpg'
mouse_image_filename = 'nemo.png'

初始化需要用到的背景图片、操作的控件图片

(3)加载并转化图像/(4)创建窗口及标题

#加载并转换图像
background = pygame.image.load(background_image_filename)
mouse_cursor = pygame.image.load(mouse_image_filename)

#创建窗口及标题
screen = pygame.display.set_mode((500, 375), 0, 32)
pygame.display.set_caption("hello world")

和第五步不冲突,建好窗口,加载好后续需要的图片资源,功能参数具体设定参考文末附页

(5)初始化pygame

pygame.init()

为硬件使用作准备

(6)游戏主循环

#游戏主循环
while True:
    # 检测退出事件,判断是否执行退出
    for event in pygame.event.get():
        if event.type == QUIT:
            exit()

    #将背景画上去
    screen.blit(background, (0, 0))

    #获取按键状态
    press = pygame.key.get_pressed()

    if press[K_LEFT] == True:
        x1 = x1 - 2
    elif press[K_RIGHT] == True:
        x1 = x1 + 2
    elif press[K_UP] == True:
        y1 = y1 - 2
    elif press[K_DOWN] == True:
        y1 = y1 + 2
    # 获取鼠标位置
    #x, y = pygame.mouse.get_pos()
    #计算光标在左上角的位置
    #x -= mouse_cursor.get_width() / 2
    #y -= mouse_cursor.get_height() / 2

    #将光标画上去
    screen.blit(mouse_cursor, (x1, y1))
    # 在新的位置上画图
    pygame.display.update()

包括:

  1. 检测退出事件:例如:当关闭窗口时,event.type关键字变为QUIT,此时退出程序
  2. 将加载好的背景图画到窗口中去
  3. 获取按键状态,并根据每按一次对应的键,控件(nemo)移动两步(PS:这里也可以改成鼠标控制,替换成下面的注释内容即可)
  4. 将更新后的光标位置画到指定的坐标(以此实现不断更新控件位置)
  5. 承接上一步,将绘制的东西画到屏幕(窗口)上

完整代码:

#参数初始化
background_image_filename = 'sea.jpg'
mouse_image_filename = 'nemo.png'
x1 = 0
y1 = 0

#导入函数
import pygame
from pygame.locals import *
from sys import exit

#加载并转换图像
background = pygame.image.load(background_image_filename)
mouse_cursor = pygame.image.load(mouse_image_filename)

#创建窗口及标题
screen = pygame.display.set_mode((500, 375), 0, 32)
pygame.display.set_caption("hello world")

#初始化pygame,为硬件使用作准备
pygame.init()

#游戏主循环
while True:
    # 检测退出事件,判断是否执行退出
    for event in pygame.event.get():
        if event.type == QUIT:
            exit()

    #将背景画上去
    screen.blit(background, (0, 0))

    #获取按键状态
    press = pygame.key.get_pressed()

    if press[K_LEFT] == True:
        x1 = x1 - 2
    elif press[K_RIGHT] == True:
        x1 = x1 + 2
    elif press[K_UP] == True:
        y1 = y1 - 2
    elif press[K_DOWN] == True:
        y1 = y1 + 2
    # 获取鼠标位置
    #x, y = pygame.mouse.get_pos()
    #计算光标在左上角的位置
    #x -= mouse_cursor.get_width() / 2
    #y -= mouse_cursor.get_height() / 2

    #将光标画上去
    screen.blit(mouse_cursor, (x1, y1))
    # 在新的位置上画图
    pygame.display.update()

附页(相关功能):

pygame.display:https://blog.csdn.net/qq_41556318/article/details/85952413

pygame.key:https://blog.csdn.net/qq_41556318/article/details/86304649

pygame.mouse:https://blog.csdn.net/qq_41556318/article/details/86304810

参考网站:

pygame官网:https://www.pygame.org/docs/

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值