python外星人入侵游戏代码大全-Python外星人入侵游戏编程完整版

这篇博客详细介绍了如何用Python的pygame库来实现一个外星人入侵的游戏。首先,它讲解了如何创建一个外星人类,包括初始化、绘制和位置更新等方法。接着,展示了游戏主程序的代码,包括设置、游戏状态、按键事件处理、游戏对象的更新和绘制等关键部分。整个游戏涉及到了飞船、子弹、外星人群的管理以及游戏循环的实现。
摘要由CSDN通过智能技术生成

PYTHON游戏编程外星人入侵的完整实现思路,具体内容如下

准备工作:下载python,比如Anaconda3(64 bit),导入pygame游戏包

201704181156515.png

201704181156516.png

201704181156517.png

201704181156518.png

201704181156529.png

1.外星人设置,alien.py,代码:

import pygame

from pygame.sprite import Sprite

class Alien(Sprite):

"""表示单个外星人的类"""

def __init__(self,ai_settings,screen):

"""初始化外星人并设置其他位置"""

super(Alien,self).__init__()

self.screen = screen

self.ai_settings = ai_settings

#加载外星人图像,并设置其rect属性

self.image = pygame.image.load('images/alien.bmp')

self.rect = self.image.get_rect()

#每个外星人最初都在屏幕左上角附近

self.rect.x = self.rect.width

self.rect.y = self.rect.height

#存储外星人的准确位置

self.x = float(self.rect.x)

def blitme(self):

"""在指定位置绘制外星人"""

self.screen.blit(self.image,self.rect)

def check_edges(self):

"""如果外星人位于屏幕边缘,就返回True"""

screen_rect = self.screen.get_rect()

if self.rect.right >= screen_rect.right:

return True

elif self.rect.left <= 0:

return True

def update(self):

"""向右移动外星人"""

self.x += (self.ai_settings.alien_speed_factor * self.ai_settings.fleet_direction)

self.rect.x = self.x

2.游戏主程序,alien_invasion.py,代码:

import pygame

from settings import Settings

from game_stats import GameStats

from button import Button

from ship import Ship

from pygame.sprite import Group

import game_functions as gf

from scoreboard import Scoreboard

def run_game():

pygame.init() # 初始化背景设置

ai_settings = Settings() # 全局设置

screen = pygame.display.set_mode( # 创建screen显示窗口

(ai_settings.screen_width,ai_settings.screen_height)

)

pygame.display.set_caption('Alien Invasion') # 标题

#新建Play按钮

play_button = Button(ai_settings,screen,"Play")

#创建一个用于存储游戏统计信息的实例,并创建记分牌

stats = GameStats(ai_settings)

sb = Scoreboard(ai_settings, screen, stats)

# 创建飞船

ship = Ship(ai_settings,screen)

# 创建子弹编组

bullets = Group()

#创建一个外星人

aliens = Group()

#创建外星人群

gf.create_fleet(ai_settings,screen,ship,aliens)

# 开始游戏主循环

while True:

# 监视键盘和鼠标事件

gf.check_events(ai_settings,screen,stats,sb,play_button,ship,aliens,bullets)

if stats.game_active:

# 移动飞船

gf.update_ship(ship)

# 更新子弹位置

gf.update_bullets(ai_settings,screen,stats,sb,ship,aliens,bullets)

#更新外星人

gf.update_aliens(ai_settings,stats,screen,sb,ship,aliens,bullets)

# 更新屏幕

gf.update_screen(ai_settings,screen,stats,sb,ship,aliens,bullets,play_button)

run_game()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值