我们假定你已经安装好了我们开发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配好代码自动补全
有了这个自动补全工具,可以提高我们以后的开发效率,其他的就不多说了。
二、开始第一个游戏窗体
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://www.toymoban.com/news/detail-823365.html
文章随时可能更新,转载请注明原出处:https://blog.csdn.net/haigear/article/details/130173836文章来源地址https://www.toymoban.com/news/detail-823365.html
到了这里,关于很合适新手入门使用的Python游戏开发包pygame实例教程-01[开发环境配置与第一个界面]的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!