Python从入门到实践里的《外星人入侵》 10

Python从入门到实践里的《外星人入侵》写到外星人的代码的时候,跑程序的时候,发现程序跑的很慢。请问是什么原因?... Python从入门到实践里的《外星人入侵》写到外星人的代码的时候,跑程序的时候,发现程序跑的很慢。请问是什么原因? 展开
 我来答
从空去听8
2017-12-29 · TA获得超过7442个赞
知道大有可为答主
回答量:6907
采纳率:93%
帮助的人:5770万
展开全部

项目名如标题,在《python编程:从入门到实践》里有完整详细的说明,网上也能查到源码,这里只是在重复这种程序

不过学编程,借鉴模仿很重要,即使抄轮子也得抄个像模像样才行,抄到即是学到。

进入正题:

游戏很简单,就是一个打飞机类型的游戏,以下代码将实现游戏的主程序,飞船的基本操作等。

注:这里提醒新上手的萌新,python的代码不要随便复制粘贴!

不要随便复制粘贴!

不要随便复制粘贴!

python的缩进很严格,复制粘贴后一定要注意格式是否正确,否则会报出异常:

IndentationError: unexpected indent

未知的缩进错误

当出现此提示时,要检查一下哪里的缩进出现了问题,小段的代码还好,大段的代码就呵呵了

注意下载好的文件后缀名为.whl

然后新建一个文件夹,名字叫alien_invasion,将下载好的模块放在此文件夹下,

然后你要新建以下文件:

1.     alien_invasion.py 游戏主程序

2.     game_functions.py 存放游戏函数

3.     bullet.py 子弹模块

4.     settings.py 游戏设置模块

5.     ship.py 飞船模块

然后新建images文件夹存放飞船素材。

这些会让我们实现启动游戏,飞船的显示与移动,以及开火功能。

为避免文章冗~长,这里贴一段主程序代码,其它代码下周见(偷懒)。

alien_invasion.py

#!usr/bin/env python3
#_*_ coding:utf-8 _*_

#此模块是游戏的主程序

import sys

import game_functions as gf #导入game_functions文件,并指定了别名gf

import pygame

from settings import Settings
from ship import Ship
from pygame.sprite import Group

def run_game():

# 初始化游戏并创建一个屏幕对象

pygame.init() #pygame的init函数,用于创建一个游戏对象

#把Setting类实例化
ai_settings = Settings()

#显示游戏窗口并设置其大小
screen = pygame.display.set_mode(
(ai_settings.screen_width,ai_settings.screen_height))

#设置窗口标题
pygame.display.set_caption("Alien Invasion") 

# 把Ship类实例化,用于创建飞船
ship = Ship(ai_settings,screen)
#存储子弹的编组
bullets = Group()

#开始游戏的主循环
while True:
#用于响应鼠标,键盘事件
gf.check_events(ai_settings,screen,ship,bullets)
#更新飞船在屏幕的位置
ship.update()
#更新子弹位置并删除消失的子弹
gf.update_bullets(bullets)
#用于更新屏幕背景色,更新飞船,子弹等
gf.update_screen(ai_settings,screen,ship,bullets)


run_game() #运行游戏



推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式