最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

使用Python开发简单的小游戏

来源:懂视网 责编:小采 时间:2020-11-27 14:13:04
文档

使用Python开发简单的小游戏

使用Python开发简单的小游戏:这次给大家带来使用Python开发简单的小游戏,使用Python开发小游戏的注意事项有哪些,下面就是实战案例,一起来看一下。引言最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏、后台等方面,python也大放异彩,本篇博文将按照正规的项目开
推荐度:
导读使用Python开发简单的小游戏:这次给大家带来使用Python开发简单的小游戏,使用Python开发小游戏的注意事项有哪些,下面就是实战案例,一起来看一下。引言最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏、后台等方面,python也大放异彩,本篇博文将按照正规的项目开
这次给大家带来使用Python开发简单的小游戏,使用Python开发小游戏的注意事项有哪些,下面就是实战案例,一起来看一下。

引言

最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏、后台等方面,python也大放异彩,本篇博文将按照正规的项目开发流程,手把手教大家写个python小游戏,来感受下其中的有趣之处。本次开发的游戏叫做alien invasion。

安装pygame并创建能左右移动的飞船

安装pygame

本人电脑是windows 10、python3.6,pygame下载地址: 传送门

请自行下载对应python版本的pygame 运行以下命令

$ pip install wheel
$ pip install pygame?1.9.3?cp36?cp36m?win_amd64.whl

创建Pygame窗口及响应用户输入

新建一个文件夹alien_invasion,并在文件夹中新建alien_invasion.py文件,输入如下代码。

import sys
import pygame
def run_game():
 #initialize game and create a dispaly object
 pygame.init()
 screen = pygame.display.set_mode((1200,800))
 pygame.display.set_caption("Alien Invasion")
 # set backgroud color
 bg_color = (230,230,230)
 # game loop
 while True:
 # supervise keyboard and mouse item
 for event in pygame.event.get():
 if event.type == pygame.QUIT:
 sys.exit()
 # fill color
 screen.fill(bg_color)
 # visualiaze the window
 pygame.display.flip()
run_game()

运行上述代码,我们可以得到一个灰色界面的窗口:

$ python alien_invasion.py

创建设置类

为了在写游戏的过程中能便捷地创建一些新功能,下面额外编写一个settings模块,其中包含一个Settings类,用于将所有设置存储在一个地方。这样在以后项目增大时修改游戏的外观就更加容易。 我们首先将alien_invasion.py中的显示屏大小及显示屏颜色进行修改。 首先在alien_invasion文件夹下新建python文件settings.py,并向其中添加如下代码:

class Settings(object):
 """docstring for Settings"""
 def init(self):
 # initialize setting of game
 # screen setting
 self.screen_width = 1200
 self.screen_height = 800
 self.bg_color = (230,230,230)

然后再alien_invasion.py中导入Settings类,并使用相关设置,修改如下:

import sys
import pygame
from settings import Settings
def run_game():
 #initialize game and create a dispaly object
 pygame.init()
 ai_settings = Settings()
 screen = pygame.display.set_mode((ai_settings.screen_width,ai_settings.screen_height))
 pygame.display.set_caption("Alien Invasion")
 # set backgroud color
 bg_color = (230,230,230)
 # game loop
 while True:
 # supervise keyboard and mouse item
 for event in pygame.event.get():
 if event.type == pygame.QUIT:
 sys.exit()
 # fill color
 screen.fill(ai_settings.bg_color)
 # visualiaze the window
 pygame.display.flip()
run_game()

添加飞船图像

接下来,我们需要将飞船加入游戏中。为了在屏幕上绘制玩家的飞船,我们将加载一幅图像,再使用Pygame()方法blit()绘制它。 在游戏中几乎可以使用各种类型的图像文件,但是使用位图(.bmp)文件最为简单,这是因为Pygame默认加载位图。虽然其他类型的图像也能加载,但是需要安装额外的库。我们推荐去免费的图片素材网站上去找图像: 传送门 。我们在主项目文件夹(alien_invasion)中新建一个文件夹叫images,将如下bmp图片放入其中。

接下来,我们创建飞船类ship.py:

import pygame
class Ship():
 def init(self,screen):
 #initialize spaceship and its location
 self.screen = screen
 # load bmp image and get rectangle
 self.image = pygame.image.load('image/ship.bmp')
 self.rect = self.image.get_rect()
 self.screen_rect = screen.get_rect()
 #put spaceship on the bottom of window
 self.rect.centerx = self.screen_rect.centerx
 self.rect.bottom = self.screen_rect.bottom
 def blitme(self):
 #buld the spaceship at the specific location
 self.screen.blit(self.image,self.rect)

最后我们在屏幕上绘制飞船,即在alien_invasion.py文件中调用blitme方法:

import sys
import pygame
from settings import Settings
from ship import Settings
def run_game():
 #initialize game and create a dispaly object
 pygame.init()
 ai_settings = Settings()
 screen = pygame.display.set_mode((ai_settings.screen_width,ai_settings.screen_height))
 ship = Ship(screen)
 pygame.display.set_caption("Alien Invasion")
 # set backgroud color
 bg_color = (230,230,230)
 # game loop
 while True:
 # supervise keyboard and mouse item
 for event in pygame.event.get():
 if event.type == pygame.QUIT:
 sys.exit()
 # fill color
 screen.fill(ai_settings.bg_color)
 ship.blitme()
 # visualiaze the window
 pygame.display.flip()
run_game()

重构:模块game_functions

在大型项目中,经常需要在添加新代码前重构既有代码。重构的目的是为了简化代码的结构,使其更加容易扩展。我们将实现一个game_functions模块,它将存储大量让游戏Alien invasion运行的函数。通过创建模块game_functions,可避免alien_invasion.py太长,使其逻辑更容易理解。

函数check_events()

首先我们将管理事件的代码移到一个名为check_events()的函数中,目的是为了隔离事件循环

import sys
import pygame
def check_events():
 #respond to keyboard and mouse item
 for event in pygame.event.get():
 if event.type == pygame.QUIT:
 sys.exit()

然后我们修改alien_invasion.py代码,导入game_functions模块,并将事件循环替换成对函数check_events()的调用:

import sys
import pygame
from settings import Settings
from ship import Ship
import game_functions as gf
def run_game():
 #initialize game and create a dispaly object
 pygame.init()
 ai_settings = Settings()

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

python怎么逐行读写txt文件

Python调用mysql更新数据的方法

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

使用Python开发简单的小游戏

使用Python开发简单的小游戏:这次给大家带来使用Python开发简单的小游戏,使用Python开发小游戏的注意事项有哪些,下面就是实战案例,一起来看一下。引言最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏、后台等方面,python也大放异彩,本篇博文将按照正规的项目开
推荐度:
标签: 使用 游戏 简单
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top