很合适新手入门使用的Python游戏开发包pygame实例教程-01[开发环境配置与第一个界面]

我们假定你已经安装好了我们开发python程序的sublime text,如果不知道怎么安装的可以参照我前面的博文。这里只需要解决的是配置好Pygame的问题。本篇博文主要解决开发环境配置以及第一个游戏界面的显示问题。


文章原出处: https://blog.csdn.net/haigear/article/details/130173836

一、配置好pygame

没有pygame我们仅仅使用Python来编写游戏难度还是比较大的,虽然我们都说Python何等简单强大,Python之所以强大就是它背后有无所的支持库。这里我们重点看看在sumbline text中如何安装,为什么要使用sublime text呢,它轻量级,适合于企图入门的小伙伴。

1、安装pygame

如果实在以前从来没有听说过pygame的小伙伴,可以直接到其官网上看看,www.pygame.org.老办法,我们在cmd模式下输入指令pip install pygame
在这里插入图片描述
我的安装事件比较久,但记得几年前安装是很快的,也不知道问题出在哪里,难道现在玩这个东东的人多了很多吗??不得而知,我们不去管它。如果实在是嫌弃太慢了,用清华镜像:

pip install pygame -i https://pypi.mirrors.ustc.edu.cn/simple/ 

怎样叫做安装成功了呢?如果我们在我们的测试代码文件中包涵pygame的包,编译不报错就表示成功了,当然,你也可以在cmd下执行import pygame,如下:
在这里插入图片描述
两种验证方式,都说明你可以使用pygame了。

3、安装pygame遇到问题了

在这里插入图片描述
如果遇到这个问题,那就是你的Pip 需要升级了,我们可以查看一下pip

在这里插入图片描述

那我们升级一下吧,如果网络不畅,就用清华镜像:

python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip

在这里插入图片描述

3、给pygame配好代码自动补全

在这里插入图片描述
有了这个自动补全工具,可以提高我们以后的开发效率,其他的就不多说了。

扫描二维码关注公众号,回复: 15146499 查看本文章

二、开始第一个游戏窗体

1、游戏大体步骤

一个pygame游戏代码的必要的步骤如下:
1、引入pygame包,包括pygame.locals
2、初始化pygame.init,并且设置显示模式
3、开启while循环,否则你的窗口一闪即逝

import pygame
from pygame.locals import *

runing=True
pygame.init()
size=width,height=(400,600)
pygame.display.set_mode(size)
pygame.display.set_caption("firstPygame Window")


while runing:
	for event in pygame.event.get():
		if event.type==QUIT:
			runing=False

2、代码说明

from pygame.locals import * 这里包涵了后面使用到的pygame.event的类型、pygame.key,pygame.time等常用的类型常量枚举等

pygame.init()是pygame开启的初始化方法,必须首先运行,不能少
pygame.display.set_mode()设置显示模式,即屏幕大小,可以直接输入宽高即可
pygame.display.set_caption()设置标题
pygame.event.get()获取的都是各类事件类型
这里采用了,如果在获取到的事件类型中,如果有QUIT类型,那么退出while循环,游戏结束。
运行起来,我们得到了一个黑色的屏幕
在这里插入图片描述

三、让游戏动起来吧!

1、改个底色

pygame.init()
size=width,height=(400,600)
screen=pygame.display.set_mode(size)
pygame.display.set_caption("firstPygame Window")

screen.fill((200,100,0))
pygame.display.update()

注意,这里没display.update,我们对画面的任何修改和设置都显示不出来。
在这里插入图片描述

2、加载个图片

这里,我们加载个飞机的图标以及背景图片,看看效果如何;

在这里插入图片描述

代码如下:

import pygame
from pygame.locals import *
import os

# 加载图片
aircraft=pygame.transform.scale(pygame.image.load(os.path.join("assets","aircraft.png")),(80,80))
bg=pygame.transform.scale(pygame.image.load(os.path.join("assets","bg.jpg")),(width,height))

runing=True
pygame.init()
size=width,height=(400,600)
screen=pygame.display.set_mode(size)
pygame.display.set_caption("firstPygame Window")
screen.fill((200,100,0))
#游戏运行循环
while runing:
	for event in pygame.event.get():
		if event.type==QUIT:
			runing=False
	screen.blit(aircraft,(100,300))
	pygame.display.update()

这里加载图片时,我们使用了os库中的path方法,而且还是用了图片缩放方法transform.scale,缩放至我们满意的大小。

3、动起来吧

下面的代码,要达到的目的就是让我们的飞机在按下对应的键(W、S、A、D)后能够上下左右的移动,主要利用了pygame.key.get_pressed()来获取按键值。其中一个重要的方法blit,是用来绘制刷新画面的。

import pygame
from pygame.locals import *
import os


size=width,height=(400,600)
# 加载图片

aircraft=pygame.transform.scale(pygame.image.load(os.path.join("assets","aircraft.png")),(80,80))
bg=pygame.transform.scale(pygame.image.load(os.path.join("assets","bg.jpg")),(width,height))

runing=True
pygame.init()
screen=pygame.display.set_mode(size)
aircraft_local=aircraft.get_rect(x=100,y=200)
pygame.display.set_caption("firstPygame Window")
screen.fill((200,100,0))

while runing:
	for event in pygame.event.get():
		if event.type==QUIT or pygame.key.get_pressed()[pygame.K_ESCAPE]:
			runing=False

	presskey=pygame.key.get_pressed()
	if presskey[pygame.K_a]:#left
		aircraft_local.x=aircraft_local.x-1
	if presskey[pygame.K_d]:#left
		aircraft_local.x=aircraft_local.x+1
	if presskey[pygame.K_s]:#left
		aircraft_local.y=aircraft_local.y+1
	if presskey[pygame.K_w]:#left
		aircraft_local.y=aircraft_local.y-1	

	screen.blit(bg,(0,0))
	screen.blit(aircraft,aircraft_local)
	pygame.display.update()

如果你的发现上面的代码在运行的时候你按键后飞机没有动,那有可能是你的中文输入法处于打开状态,切换到英文输入状态或者索性关闭它就正常了。

运行效果如下:

在这里插入图片描述
上面的代码可能会存在很多的问题,这也正是我们后面需要继续改进的地方,这里只是让飞机动起来了。也许你会发现,这是的飞机都起来速度太快,有些不受控制的快,而且图片也需要再美化,等等一些列的问题,我们都留待后面来一一解决。
下一篇,我们继续介绍,如何让我们的飞机更灵活一些。
点击这里阅读第二节《新手使用Python开发游戏pygame入门很合适-02

文章随时可能更新,转载请注明原出处:https://blog.csdn.net/haigear/article/details/130173836

猜你喜欢

转载自blog.csdn.net/haigear/article/details/130173836