利用python运行界面在Windows系统上运行的游戏如何在公网上进行访问

这两天搞测试要用SSH连接若干台垺务器,一个个要输密码很烦。到网上搜了下有个python运行界面的非核心库paramiko可以进行SSH连接。不过***费了点功夫

不想用装python运行界面给的python运荇界面 (command line)设置计算机的环境变量,win7下是计算机属性-》高级系统设置-》高级选项卡-》环境变量系统变量里面的Path,把C:\python运行界面26加进去就好了以后直接用cmd就可以执行python运行界面命令了

网上copy了一份代码,可惜报错先记下来

加载中,请稍候......

小Q:今天发现的一个大宝藏快點收录一下。

这是一篇由教程团队成员发表的文章,一个12岁的python运行界面开发你可以在和上找到他。

你可曾想过如何创建视频游戏吗它不潒你想象的那么复杂!

在本教程中,您将创建一个简单的游戏叫做兔子和獾在这里作为英雄的兔子要保卫城堡反击进攻的獾群。:O

写这个遊戏你将使用python运行界面。不我指的并不是一条大蛇!:]

python运行界面是一种计算机编程语言。我们就本教程选择python运行界面python运行界面是一种噫于上手、有趣而且很容易学的语言。

如果你刚接触python运行界面开始之前先检出这本书 - ,这将使你提升速度

如果你想在Windows电脑上尝试本教程,你需要***python运行界面记住要***2.7.3版本而不是3.3.0!运行完***程序后,在开始菜单程序文件夹中会有IDLE运行IDL。

如果操作正确的话你将會看到类似输出:

注意:如果你想退出python运行界面提示窗(三个尖括号提示:>>>),你可以通过在提示窗里输入exit()或按Ctrl+D

一旦你在python运行界面提示窗叻,测试python运行界面是否正常工作的话输入print 1+1然后按回车或换行,它将输出2你已经写了你的第一个python运行界面程序。

现在你知道python运行界面工莋正常为使用python运行界面写游戏你需要***PyGame。

PyGame是一个使写游戏变简单的python运行界面库它提供如图像处理、声音回放等你可以很容易添加都遊戏中的功能。

到下载你系统适合的PyGame确认你下载的是一个python运行界面2.7版本。

要检验PyGame***是否正确的话打开IDLE或通过终端运行python运行界面,在python運行界面提示符处输入import pygame如果回车后没有输出的话你***成功了。

如果另一方面,输出了下附类似错误PyGame没有正确***。

从文件运行python运荇界面代码

虽然你可以在python运行界面提示符下运行短的python运行界面代码但如果你工作在一个大的程序(比如游戏)里,你可能想要将你的代码保存到一个文件这样你就不必一遍又一遍地键入它了。

有几种方法可以运行python运行界面程序文件一种方法是使用一个纯文本编辑器,不如記事本(Windows)或TextEdit(Mac)打开一个新的文 本文件,输入你的python运行界面代码(像print 1 + 1)然后保存它为asXXX.py(XXX可以是任何描述性的文件名称)。

使用Windows的话通过双击这个文件来运行它。在Mac上打开终端,输入python运行界面然后拖动你保存的文件到终端窗口并按Enter。

另一种方法是键入代码类到IDLE也就是你在这个教程中需要做的方式。运行IDLE - 只需在终端输入IDLE 然后选择文,然后选择File\New Window会出现一个你可以输入代码的文本编辑器窗口。你可以通过File\Save保存你更妀的代码通过运行Run\Run Module(F5)运行代码。

请注意运行菜单只在你已有一个文件在编辑器窗口打开时有效

你几乎已经可以开始创建你的游戏了。但沒有一些震撼的图像和声音效果的游戏又算什么呢我已经收集了游戏所需要的所的图形和声音效果并把它们压缩成了一个ZIP存档,你可以茬下载

下载文件后,在你的硬盘上创建一个游戏使用的文件夹将resources文件夹解压到这个文件夹中,这样你的游戏文件夹有了名为resources的子文件夾各种资源在resources文件夹里面分组显示如下:

第一步:(编写简单的)Hello Bunny(嘿,兔子)

运行IDLE开发环境向上一节提到的那样,打开一个新的文夲编辑窗在编辑窗键入以下代码:

把它保存到你的游戏目录下(即资源子目录)并命名为itgame.py。

让我们逐段分析以上代码:

1. 导入PyGame库这一步讓你在你的程序中使用来自库中的函数。

2. 初始化PyGame并设置显示窗口

3. 加载你想要给bunny使用的图片。

4. 循环执行以下缩进的代码

5. 在绘图前,将屏幕填充成黑色

6. 将之前加载进来的bunny图片以100*100的大小显示在屏幕上。

8. 检查任何新事件如果有的话否则转到退出命令,退出程序

注意:根据PyGame嘚文档,你不需要调用pygame.quit()因为解析器关闭时会自动调用它然而,至少在Mac OS上这个游戏会在退出时挂起除非pygame.quite被调用。

如果现在运行这段代码(在Idle菜单栏点击 “Run\Run Module")你应该可以看到一个如下所示的屏幕:

耶,兔子就显示在屏幕上了并准备做动作!

但是只有一只兔子显示在一个黑漆漆的屏幕上,这个游戏看起来很吓人且很孤单接下来要做的就是稍微美化一下咯。

我们首先给游戏场景添加背景图片可以通过调用┅组screen.blit()来完成背景添加。

在代码的#3 小节载入角×××像之后添加下面的代码:

这些代码载入图片然后赋给指定的变量,然后把它们画到屏幕仩但如果你检查草地的图片,你会发现它没有覆盖整个640 x 480的屏幕所以你必须平铺使草地的图片完全覆盖屏幕。 在#6小节的开始(把兔子画在屏幕上之前)添加以下代码到game.py:

正如你所见,首先把x坐标通过for循环递增在这个循环中再把y坐标循环递增,并且将草地画在使用循环生成嘚x、y坐标上紧接着的一组代码只是将城堡画在屏幕上。 你现在运行这个程序你会看到像如下的结果:

下面你需要添加一些真正的游戏え素,比如让兔子响应键盘的按键

要做到这一点,你需要实现好一个方法记录哪一个键在某一时刻被按下你可以简单的使用一个数组保存在游戏需要使用的键的按下状态。

添加如下代码到game.py的#2小节结束(在你设了屏幕高和宽度之后):

这段代码是非常明了数组keys按WASD的顺序记录咜们的状态。数组的每个元素对应一个键第一个是W,第二个是A等等。

playerpos变量定义程序开始绘制游戏角色的起始位置因为这个游戏将移动游戲角色到不同的位置,设置一个储存角色位置的变量然后便可以简单地将角色绘制到这个位置。

现在你需要修改现有的代码来绘制角色使用新的playerpos变量,将# 6的程序:

接下来基于哪些按键被按下更新键数组,PyGame通过添加event.key事件使检测按键很容易实现

首先你要检测一是否有键被按下或释放,然后你需要检测哪个键被按下或者释放如果被按下或者释放的键是你要使用的键,根据键值更新相应的键变量

最后,你需要更新playerpos变量作为键按下的响应这太简单了。

将下附代码添加到game.py的末尾(使用相同的缩进级使用和for循环相同的缩进级)

这段代码只是檢查哪个键被按下,然后添加或减去游戏角色的x或y位置(取决于按下的键)来移动游戏角色

运行这个游戏,你会得到根以前一样的角色试┅下按WASD键,哈哈起效了!

是的,你的兔子现在可以随着你的按键移动但用鼠标来旋转兔子朝向到你选择的方向岂不更酷,所以它不是所有时间都朝向一个方向使用三角函数来实现,这很简单

上图中,如果(5,3)是兔子的位置(2,4)是当前鼠标的位置,你可以通过对两点间距离嘚不同应用atan2三角函数获得旋转角度(z)当然,一旦你知道旋转角你可以轻松相应地旋转兔子。:]

如果你对这部分有点困惑不要担心,你依嘫可以继续但这就是你应该在数学课上用功的原因!:]在游戏编程时你会一直使用这个东西。

现在你需要将这个原理应用到你的游戏上為做到这一点,你可以使用PyGameSurface.rotate(度数)函数 顺便说一下,记住Z值是弧度。:[

然后将#6最后一行(player.blit这行)替换成下面的代码:

让我们梳理一下上媔代码的基本流程。首先获取鼠标和游戏角色的位置然后你对两个位置应用atan2函数,之后你将atan2返回的弧度转化成度数(将弧度乘以近似57.29或360/2π)。

因为兔子会旋转它的位置也将会改变。所以现在计算兔子的新位置并把它显示在屏幕

再次运行这个游戏。如果你只按了“WASD”键那么这个游戏应该和之前完全一样,但如果你移动你的鼠标兔子也会随之旋转酷!

第五步:射击吧,兔子!

现在你的兔子已经可以自由活動了是时候给它添加更多的动作了。让兔子可以用剑射击敌人怎么样它可不是只温顺的兔斯基!

这一步稍微有点复杂,因为你必须记錄所有射出的剑更新它们的位置、旋转并且在它们飞出屏幕后删除它们。

首先在初始化小节(#2小节)的结束添加必要的变量:

第一个变量記录玩家的射击精度,第二个变量记录所有的剑精度变量acc实际上是一个包含射击数量和命中獾 次数的列表。最后我们可以使用这些信息來计算精度的百分比        

接下来,在section #3的末尾加载弓箭图像:

现在当玩家点击鼠标弓箭就要射出。在section #8的末尾加入以下代码作为新的事件句柄(event handler):

这些代码检查是否有鼠标点击如果有它会读取鼠标位置,并根据玩家的旋转和指针的位置计算出弓箭的旋转这个旋转储存在arrows数組里。 接下来你需要真正在屏幕上画出弓箭了在section #6.1之后插入以下代码:

运用基本的三角函数可以计算出vely和velx。10是弓箭的速度if语句检查弓箭昰否飞出边界,如果是则删除该弓箭第二个for语句循环过arrows数组并画出相应旋转的弓箭。

试试运行程序你应该有一只兔兔在你点击鼠标时發射弓箭了。(☉ ⊙)

第六步:拿起武器!獾!

好的,你有了一个城堡和可以移动和射击的英雄但少了什么东西呢?***城堡的敌人!

在这个步骤中,你将创建幾只随机生成并跑向城堡的獾。随着游戏的进展会有越来越多的獾所以,让我们做一个列表看看需要做那些工作

1、把坏家伙们添加到┅个数组列表;

2、每帧每帧的更新这个数组并检查他们是否都出现在屏幕上;

首先,把下面这段代码添加到section #2后面:

上面这段代码设置了一個计时器(以及其他一些值)以便每过一段时间在游戏中增加一只新的獾你每帧每帧的减少 badtimer直到0, 然后就生成一个新的獾        

现在把下面這段代码添加到section #3后面:

上面代码的第一行类似于前面所有的图片加载代码。第二行代码设置了一个图片副本以便于这个坏家伙能更容易动起来

下一步,你必须更新并且显示这个坏家伙把下面代码添加到section #6.2之后

仔细的看下这段代码,:] 第一行检查badtimer是否为0以badtimer至今为止已经运荇的次数为基础,创建一个新的獾并再次设置badtimer第一个for循环更新獾的X坐标,并检查是否在屏幕上如果不再屏幕上就删除掉。第二个佛如循环绘制所有獾

为了在上述代码中使用随机函数,我们必须引入 random 库:

最后在 while 语句后面添加下面一行代码用来让 badtimer 值减1:

再次运行游戏来測试上述代码,现在你将看到真正的游戏你可以发射、移动、转向,而且獾也尝试跑向你

但等等,为什么不是獾炸毁这座城堡吗马仩搞定!

在#6.3小节中每一个循环前的 index += 1 之前添加如下代码:

这段代码非常简单,如果獾的x坐标值小于64则删除这家伙然后随机递减5到20點的城堡的生命值。(在后面你可以显示生命值到屏幕上)

现在你构建并运行程序你将看到一堆獾***城堡后消失。虽然你不能看到但獾确實降低了城堡的生命值

现在獾可以***你的城堡但你的箭却对它们没有任何效果!兔子该如何保护自己的家园?

是时候让箭可以杀死獾你財可以保护你的城堡赢得游戏!首先,你必须循环检查每个坏蛋在检查时以需要循环检查所有的箭是不是和獾碰撞了。如果箭碰到了獾則删除箭和獾并且递增命中值。

在#6.3.1小节后添加如下代码:

这段代码里有一个值得注意的地方if语句后是PyGame内建的检查两个矩形是否相交的函数。其他语句只是按上面解释运行

如果你现在运行程序,你会发现已经可以射击并杀死獾了

第八步:添加生命值和时钟显示

游戏现茬进展良好,有***者和守卫者现在你还需要一种方式显示分数,看看这些兔子干得怎么样

最简单的方式是添加一个HUD(平视显示器)显礻当前城堡的健康状况。也可以添加一个时钟显示城堡被保护了多久

首先添加时钟,在#7小节前添加如下代码:

上面代码简单的使用PyGame默认芓体创建字体并设置尺寸为24然后使用字体渲染时间到表面上。之后广西被定位并绘制到屏幕上

下一步添加生命条。在绘制生命条之前伱需要载入它的背景图添加如下代码到#3小节结束:

第一个是红×××用来铺满生命条。第二个绿×××显示当前生命值 现在添加如下代码箌#6.4节(你上一步添加的)之后来将生命条画到屏幕上:

上面的代码首先画出全红色的生命条,然后根据城堡的剩余的生命绘制绿色生命条 现在你构建并运行程序,你可以看到时钟和生命条

这是什么?如果你玩得足够久即使你的命令值降到了0,游戏还是继续!不仅仅洳此你也还可以继续射击獾。这应该行不通的但现在就是这样。你需要添加某种赢/输形式的场景让这个游戏值得玩

所以我们现在添加输赢条件和各自的画面。你可以退出主游戏循环并进入输赢界面的循环在输赢循环中,你可以检查用户是输了还是赢了并显示相应嘚界面。

下面是一个判断输赢的基本方法:

如果超过了时间(90000毫秒或90秒):

注:使用acc[0]*1.0 只是将acc[0]转换成float浮点类型如果你不这么转换,则除法操作將返回一个整数值比如1或2而不是1.5

将下面的代码加到game.py末尾:

这是截至目前最长的代码块,但不是最复杂的

第一个if语句检查是否到时间,第二个检查城堡是否被摧毁第三个计算你的准确率。之后一个快速的if语句检查你是胜利还是失败了,并显示正确的图像

当然,如果你想显示胜利与失败的屏幕图像那么这些图像必须先被加载。将下面的代码添加到# 3结束的地方:

running变量跟踪游戏是否结束exitcode变量跟踪玩镓是赢了还是输了。

再次运行游戏现在你可以尝试胜利或死亡!酷!:]

第10步: 免费的音乐和声音效果!

这个游戏看起来相当棒,可是有声音吗是不是×××静了点呢?增加一点点音效会让整个游戏的感觉变得更棒

PyGame 加载并播放声音的方法非常简单。首先你需要初始化混音器代碼如下:

然后加载要播放的声音,并设置音量大小:

最上代码中大多数是简单加载音频文件和配置的音频音量但要注意pygame.mixer.music.load这一行——这一荇加载游戏的背景音乐,下一行设置背景音乐一直重复

注意音频配置。:] 现在你所需要做的就是按需要播放各种声音效果。像下面每段紸释代码那样做:

多次运行游戏你会发现你现在有碰撞的背景音乐和射击的声音效果,游戏让人感觉更逼真了

你应该为自己感到自豪:你剛刚创建完成一个有趣的游戏,里面充满了音乐,音效,一个杀手兔子,神风特攻队獾和更多东西我告诉你你可以做到!:]

你可以在下载最终的游戏源代码。

这时,在游戏中随意拓展你的创造力!也许可以试着换成与你自己的绘画风格,或添加不同的武器或不同类型的怪物到游戏

在完成这个敎程中你有问题或评论吗? 如果有,请加入我们论坛的讨论中! 我很期待你的来信

 二、输入d:回车进入项目文件所茬的D盘

 三、使用cd命令切换目录到py文件夹

参考资料

 

随机推荐