项目1外星人入侵源码(外星病毒入侵)
本文目录一览:
- 1、Python外星人入侵问题求助
- 2、Python从入门到实践里的《外星人入侵》 ,记分部分代码错误,帮忙解答一下?
- 3、Python从入门到实践里的《外星人入侵》
- 4、Python项目外星人入侵添加爆照效果有没有原码
- 5、《外星人入侵》的python完整代码?
- 6、用python编写外星人入侵中为什么消除第一个外星人得分100,而且最高分和当前分数不匹配?
Python外星人入侵问题求助
你好,我也遇到了同样的问题。debug可以发现其实你的程序仍然是36个外星人,但是每行外星人的位置重合导致了显示结果看起来只有一列外星人响应。这是由于每个外星人的初始位置相同。
我当初写的时候理所当然地在def create_alien中(该函数目的是生成一组外星人),对函数体中每个alien的位置都是用精灵的实际位置计算,即alien.rect.x和alien.rect.y。但你可以观察到Alien类的update函数计算对象是alien.x, 所以你可能需要在别的文件中补上这个关键的中间变量,加上这句话(图中红字):alien.x=alien.rect.x
这样才能够将真实的位置alien.rect.x和我们数学计算的变量alien.x对应起来,实现一堆外星人动起来的效果!请采纳!!!!!!
Python从入门到实践里的《外星人入侵》 ,记分部分代码错误,帮忙解答一下?
这是真的简单的不能再简单的了,只要会用就行了
类似第一题
1 print(float(100))
劝你想想以后考试,工作谁会来帮你做?还是一开始就自己来吧
Python从入门到实践里的《外星人入侵》
项目名如标题,在《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() #运行游戏
Python项目外星人入侵添加爆照效果有没有原码
很简单啊在响应外星人被击中的时候绘制爆炸位图然后删除外星人就好了。。
《外星人入侵》的python完整代码?
项目名如标题,在《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() #运行游戏
用python编写外星人入侵中为什么消除第一个外星人得分100,而且最高分和当前分数不匹配?
主要看看向右移动的地方的代码有没有问题:
# 设置向右移动flag
self.move_right = False
def listening_key_down(self, event):
"""
监听key_down事件
:param event:
"""
if event.key == pygame.K_RIGHT:
self.air_ship.move_right = True
elif event.key == pygame.K_LEFT:
self.air_ship.move_left = True
def listening_key_up(self, event):
"""
监听key_up事件
:param event:
"""
if event.key == pygame.K_RIGHT:
self.air_ship.move_right = False
elif event.key == pygame.K_LEFT:
self.air_ship.move_left = False
def move(self):
"""
更新飞船横轴位置,实现左右移动
"""
if self.move_right and self.air_ship_rect.right = self.screen_rect.right:
self.center += self.speed_factor if self.move_left and self.air_ship_rect.left = self.screen_rect.left:
self.center -= self.speed_factor
self.air_ship_rect.centerx = self.center
def listening_game_event(self):
"""
监听事件
"""
for event in pygame.event.get(): if event.type == pygame.QUIT:
pygame.quit()
sys.exit() elif event.type == pygame.KEYDOWN:
self.listening_key_down(event) elif event.type == pygame.KEYUP:
self.listening_key_up(event)
# 游戏主循环
while True: self.listening_game_event() self.air_ship.move() self.update_game_screen()