目录

  • 前言
  • 一、alien_invasion.py
  • 二、game_function.py
  • 三、settings.py
  • 四、bullet.py
  • 五、alien_bullet.py
  • 六、ship.py
  • 七、alien.py
  • 八、button.py
  • 九、socrebroad.py
  • 十、game_stats.py
  • 总结

前言

某一天,一个想法从我的大脑诞生了:我想学一下python,于是以为年轻的大学生开始掉入了这个大坑之中,有时津津乐道,有时为之焦头烂额的。
其实我是想实现一些大脑中的简单想法才进的python的门,专注于某件事的时候,你会发现自己隐藏的力量,慢慢引导出来,你将会得到改变,正所谓:你的能量超乎你想象(信则有不信则无)。

本程序的不同之处:外星人入侵的制作结束后,我进行了一些改善,本篇改善的是飞船可以前后左右的进行移动(原来的程序只能左右,虽说改进很简单的,不过还请支持一下创作,谢谢!);我还正在尝试加入外星人释放子弹,但是还未成功,本文会有少些这个的代码,但是不影响程序执行(我把外星人的子弹数目调成了0,怎么可能见到子弹放出来)。

好的,开始我们的正题吧。
(友情提示:如果不熟悉的人建议购买《python编程:从入门到实践》进行学习,而且尽量自己打代码)

一、alien_invasion.py

大家学了都知道的,这就是这个游戏的主程序,不得不说语法简单,不过建议写代码还是加上空行和注释吧(如果我不会的时候去看别人的代码是一团没有注释的字母,我根本就看不懂那些写的是什么东西,而且本人英语不好,感觉就是天书)。
一起看一下这个伪天书的代码吧:

import pygame
from pygame.sprite import Groupfrom settings import Settings
from ship import Ship
from alien import Alien
from game_stats import GameStats
from button import Button
from scorebroad import Scoreboardimport game_function as gfdef run_game():# 初始化pygame、设置和屏幕对象pygame.init()ai_settings = Settings()screen = pygame.display.set_mode((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()al_bullets = Group()# 创建一个用于存储外星人的编组aliens = Group()# 创建外星人群gf.create_fleet(ai_settings, screen, ship, aliens)# 创建一个外星人alien = Alien(ai_settings, screen)# 开始游戏的主循环while True:gf.check_events(ai_settings, screen, stats, sb, play_button, ship,aliens, bullets)if stats.game_active:ship.update()gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens,bullets,al_bullets,alien)gf.update_aliens(ai_settings, screen, stats, sb, ship, aliens,bullets)gf.update_screen(ai_settings, screen, stats, sb, ship, aliens,bullets, play_button,al_bullets)run_game()

二、game_function.py

功能实在有点多(我读的书少),我们直接上程序:

import sysimport pygame
import random
from time import sleepfrom bullet import Bullet
from alien import Alien
from alien_bullet import Alien_Bulletdef check_events(ai_settings, screen, stats, sb, play_button, ship, aliens, bullets):"""响应按键和鼠标事件"""for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()elif event.type == pygame.KEYDOWN:check_keydown_events(event, ai_settings, screen, ship, bullets)elif event.type == pygame.KEYUP:check_keyup_events(event, ship)elif event.type == pygame.MOUSEBUTTONDOWN:mouse_x, mouse_y = pygame.mouse.get_pos()check_play_button(ai_settings, screen, stats, sb, play_button,ship, aliens, bullets, mouse_x, mouse_y)def check_play_button(ai_settings, screen, stats, sb, play_button, ship, aliens,bullets, mouse_x, mouse_y):"""玩家在单击Play的时候开始游戏"""button_clicked = play_button.rect.collidepoint(mouse_x, mouse_y)if button_clicked and not stats.game_active:# 重置游戏设置ai_settings.initialize_dynamic_settings()# 隐藏光标pygame.mouse.set_visible(False)# 重置游戏统计信息stats.reset_stats()stats.game_active = True# 重置记分牌图像sb.prep_score()sb.prep_high_score()sb.prep_level()sb.prep_ships()# 清空外星人列表和子弹列表aliens.empty()bullets.empty()# 创建一群新的外星人,并将飞船放到屏幕底端中央create_fleet(ai_settings, screen, ship, aliens)ship.center_ship()def update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets, play_button,al_bullets):"""更新屏幕上的图像,并切换到新屏幕"""# 每次循环时都重绘屏幕screen.fill(ai_settings.bg_color)# 在飞船和外星人后面重绘所有子弹for bullet in bullets.sprites():bullet.draw_bullet()for alien_bullet in al_bullets.sprites():alien_bullet.draw_bullet()ship.blitme()aliens.draw(screen)# 显示得分sb.show_score()# 如果游戏处于非活动状态,就绘制Play按钮if not stats.game_active:play_button.draw_button()# 让最近绘制的屏幕可见pygame.display.flip()def update_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets,al_bullets,alien):"""更新子弹的位置,并删除已消失的子弹"""# 外星人开火random_num = random.randint(1, 300)if random_num == 8:fire_al_bullet(ai_settings, screen, alien, al_bullets)# 更新子弹的位置bullets.update()al_bullets.update()# 删除已消失的子弹for bullet in bullets.copy():if bullet.rect.bottom <= 0:bullets.remove(bullet)for alien_bullet in al_bullets.copy():if alien_bullet.rect.bottom >= ship.screen_rect.bottom:al_bullets.remove(alien_bullet)check_bullet_alien_collisions(ai_settings, screen, stats, sb, ship, aliens, bullets)def check_bullet_alien_collisions(ai_settings, screen, stats, sb,ship, aliens, bullets):"""响应子弹和外星人的碰撞"""# 检查是否有子弹击中了外星人# 如果是,就删除对应的子弹和外星人collisions = pygame.sprite.groupcollide(bullets, aliens, True, True)if collisions:for aliens in collisions.values():stats.score += ai_settings.alien_points* len(aliens)sb.prep_score()check_high_score(stats, sb)if len(aliens) == 0:# 删除现有的子弹并创建一群外星人bullets.empty()ai_settings.increase_speed()# 提高等级stats.level += 1sb.prep_level()create_fleet(ai_settings, screen, ship, aliens)def check_keydown_events(event, ai_settings, screen, ship, bullets):"""响应按键"""if event.key == pygame.K_RIGHT:# 向右向左移动飞船ship.moving_right = Trueelif event.key == pygame.K_LEFT:ship.moving_left = Trueelif event.key == pygame.K_SPACE:fire_bullet(ai_settings, screen, ship, bullets)elif event.key == pygame.K_q:sys.exit()#向上向下移动飞船elif event.key == pygame.K_UP:ship.moving_up = Trueelif event.key == pygame.K_DOWN:ship.moving_down = Truedef check_keyup_events(event, ship):"""响应松开"""if event.key == pygame.K_RIGHT:# 松开右键或左键时不移动飞船ship.moving_right = Falseelif event.key == pygame.K_LEFT:ship.moving_left = Falseelif event.key == pygame.K_UP:ship.moving_up = Falseelif event.key == pygame.K_DOWN:ship.moving_down = Falsedef fire_bullet(ai_settings, screen, ship, bullets):"""如果还没有到达限制,就发射一颗子弹"""# 创建新子弹,并将其加入到编组bullet中if len(bullets) < ai_settings.bullet_allowed:# 创建一颗子弹,并将其加入到编组bullets中new_bullet = Bullet(ai_settings, screen, ship)bullets.add(new_bullet)#创建外星人的子弹
def fire_al_bullet(ai_settings,screen,alien,al_bullets):"""如果还没有到达限制,就发射一颗子弹"""# 创建新子弹,并将其加入到编组al_bullet中if len(al_bullets) < ai_settings.al_bullet_allowed:new_al_bullet = Alien_Bullet(ai_settings,screen,alien)al_bullets.add(new_al_bullet)def check_high_score(stats, sb):"""检查是否诞生了最高得分"""if stats.score > stats.high_score:stats.high_score = stats.scoresb.prep_high_score()###############################aliens#####################################def create_fleet(ai_settings, screen, ship, aliens):"""创建一个外星人群"""# 创建一个外星人,并计算一行可以容纳多少个外星人# 外星人间距为外星人宽度alien = Alien(ai_settings, screen)number_aliens_x = get_number_aliens_x(ai_settings, alien.rect.width)number_rows = get_number_rows(ai_settings, ship.rect.height,alien.rect.height)# 创建外星人群for row_number in range(number_rows):# 创建第一行外星人for alien_number in range(number_aliens_x):# 创建一个外星人并加入当前行create_alien(ai_settings, screen, aliens, alien_number,row_number)def get_number_aliens_x(ai_settings, alien_width):"""计算每行可以容纳多少个外星人"""available_space_x = ai_settings.screen_width - 2 * alien_widthnumber_aliens_x = int(available_space_x / (2 * alien_width))return number_aliens_xdef create_alien(ai_settings, screen, aliens, alien_number, row_number):"""创建一个外星人并将其放在当前行"""alien = Alien(ai_settings, screen)alien_width = alien.rect.widthalien.x = alien_width + 2 * alien_width * alien_numberalien.rect.x = alien.xalien.rect.y = alien.rect.height + 2 * alien.rect.height * row_numberaliens.add(alien)def get_number_rows(ai_settings, ship_height, alien_height):"""计算屏幕可以容纳多少行外星人"""available_space_y = (ai_settings.screen_height -(3 * alien_height) - ship_height)number_rows = int(available_space_y / (2 * alien_height))return 1def check_fleet_edges(ai_settings, aliens):"""有外星人到达边缘时采取相应的措施"""for alien in aliens.sprites():if alien.check_edges():change_fleet_direction(ai_settings, aliens)breakdef change_fleet_direction(ai_settings, aliens):"""将整个外星人下移,并改变它们的方向"""for alien in aliens.sprites():alien.rect.y += ai_settings.fleet_drop_speedai_settings.fleet_direction *= -1def update_aliens(ai_settings, screen, stats, sb, ship, aliens, bullets):"""检查是否有外星人位于屏幕边缘,并更新整群外星人的位置"""check_fleet_edges(ai_settings, aliens)aliens.update()# 检查外星人和飞船之间的碰撞if pygame.sprite.spritecollideany(ship, aliens):ship_hit(ai_settings, screen, stats, sb, ship, aliens, bullets)# 检查是否有外星人到达屏幕底部check_aliens_bottom(ai_settings, screen, stats, sb, ship, aliens, bullets)def ship_hit(ai_settings, screen, stats, sb, ship, aliens, bullets):"""响应被外星人撞到的飞船"""if stats.ships_left > 0:# 将ships_left减1stats.ships_left -= 1# 更新记分牌sb.prep_ships()else:stats.game_active = Falsepygame.mouse.set_visible(True)# 清空外星人列表和子弹列表aliens.empty()bullets.empty()# 创建一群新的外星人,并将飞船放到屏幕底端中央create_fleet(ai_settings, screen, ship, aliens)ship.center_ship()# 暂停sleep(2)def check_aliens_bottom(ai_settings, screen, stats, sb, ship, aliens, bullets):"""检查是否有外星人到达了屏幕底端"""screen_rect = screen.get_rect()for alien in aliens.sprites():if alien.rect.bottom >= screen_rect.bottom:# 像飞船被撞到一样进行处理ship_hit(ai_settings, screen, stats, sb, ship, aliens, bullets)break

三、settings.py

创建游戏设置模块,看书,我觉得我说的肯定比不上书里的,代码看这里:

class Settings():"""存储《外星人入侵》的所有设置的类"""def __init__(self):"""初始化游戏的设置"""# 屏幕设置self.screen_width = 1200self.screen_height = 800self.bg_color = (230, 230, 230)# 飞船的位置self.ship_speed_factor = 1.5self.ship_limit = 3# 子弹设置self.bullet_speed_factor = 10  # 子弹速度self.bullet_width = 3  # 子弹宽度self.bullet_height = 15  # 子弹高度self.bullet_color = (60, 60, 60)  # 子弹颜色self.bullet_allowed = 8  # 允许子弹最大数量# 外星人设置self.alien_speed_factor = 1self.fleet_drop_speed = 10# fleet_direction为1表示向右移动,为-1表示向左移动self.fleet_direction = 1#外星人的子弹self.al_bullet_speed_factor = 1  # 子弹速度self.al_bullet_width = 3  # 子弹宽度self.al_bullet_height = 15  # 子弹高度self.al_bullet_color = (255, 0, 0 )  # 子弹颜色self.al_bullet_allowed = 0 # 允许子弹最大数量# 以什么样的速度加快游戏节奏self.speedup_scale = 1.1# 外星人点数的提高速度self.score_scale = 1.5self.initialize_dynamic_settings()def initialize_dynamic_settings(self):"""初始化随游戏进行而变化的设置"""self.ship_speed_factor = 1self.bullet_speed_factor = 3self.alien_speed_factor = 1# fleet_direction为1表示向右,为-1表示向左self.fleet_direction = 1# 计分self.alien_points = 50def increase_speed(self):"""提高速度设置"""self.ship_speed_factor *= self.speedup_scaleself.bullet_speed_factor *= self.speedup_scaleself.alien_speed_factor *= self.speedup_scaleself.alien_points = int(self.alien_points * self.score_scale)

四、bullet.py

创建飞船子弹模块,看书,我觉得我说的肯定比不上书里的,代码看这里:

class Bullet(Sprite):"""对飞船发射的子弹进行管理的类"""def __init__(self, ai_settings, screen, ship):"""在飞船所处的位置创建一个子弹对象"""super(Bullet, self).__init__()self.screen = screen# 在(0,0)处创建一个表示子弹的矩形,在设置正确的位置self.rect = pygame.Rect(0, 0, ai_settings.bullet_width,ai_settings.bullet_height)self.rect.centerx = ship.rect.centerxself.rect.top = ship.rect.top# 存储用小数表示的子弹位置self.y = float(self.rect.y)self.color = ai_settings.bullet_colorself.speed_factor = ai_settings.bullet_speed_factordef update(self):"""向上移动子弹"""# 更新表示子弹位置的小数值self.y -= self.speed_factor# 更新表示子弹的rect位置self.rect.y = self.ydef draw_bullet(self):"""在屏幕上绘制子弹"""pygame.draw.rect(self.screen, self.color, self.rect)

五、alien_bullet.py

创建外星人的子弹模块,改进中,虽然不正确,但也不是错的,看代码:

import pygame
from pygame.sprite import Spriteclass Alien_Bullet(Sprite):"""对飞船发射的子弹进行管理的类"""def __init__(self, ai_settings, screen, alien):"""在飞船所处的位置创建一个子弹对象"""super(Alien_Bullet, self).__init__()self.screen = screen# 在(0,0)处创建一个表示子弹的矩形,在设置正确的位置self.rect = pygame.Rect(0, 0, ai_settings.al_bullet_width,ai_settings.al_bullet_height)self.rect.centerx = alien.rect.xself.rect.centery = alien.rect.y# 存储用小数表示的子弹位置self.y = float(self.rect.y)self.color = ai_settings.al_bullet_colorself.speed_factor = ai_settings.al_bullet_speed_factordef update(self):"""向上移动子弹"""# 更新表示子弹位置的小数值self.y += self.speed_factor# 更新表示子弹的rect位置self.rect.y = self.ydef draw_bullet(self):"""在屏幕上绘制子弹"""pygame.draw.rect(self.screen, self.color, self.rect)

六、ship.py

创建飞船模块,看书,我觉得我说的肯定比不上书里的,代码看这里:

import pygame
from pygame.sprite import Spriteclass Ship(Sprite):def __init__(self, ai_settings, screen):"""初始化飞船并设置其初始位置"""super(Ship, self).__init__()self.screen = screenself.ai_settings = ai_settings# 加载宇宙飞船图像并获取其外接矩形self.image0 = pygame.image.load('pic1.jpg')self.image = pygame.transform.scale(self.image0, (100, 80))self.rect = self.image.get_rect()self.screen_rect = screen.get_rect()# 将每搜新飞船放在屏幕底部中央self.rect.centerx = self.screen_rect.centerxself.rect.bottom = self.screen_rect.bottomself.rect.centery = self.screen_rect.centery# 在飞船的属性center中存储最小值self.centerx = float(self.rect.centerx)self.centery = float(self.rect.centery)# 移动标志self.moving_right = Falseself.moving_left = Falseself.moving_up = Falseself.moving_down = Falsedef update(self):"""根据移动标志调整飞船的位置"""# 更新飞船center值,而不是rectif self.moving_right and self.rect.right < self.screen_rect.right:self.centerx += self.ai_settings.ship_speed_factorif self.moving_left and self.rect.left > 0:self.centerx -= self.ai_settings.ship_speed_factorif self.moving_up and self.rect.top > 0:self.centery -= self.ai_settings.ship_speed_factorif self.moving_down and self.rect.bottom < self.screen_rect.bottom:self.centery += self.ai_settings.ship_speed_factor# 根据self.center更新rect对象self.rect.centerx = self.centerxself.rect.centery = self.centerydef blitme(self):"""在指定位置绘制飞船"""self.screen.blit(self.image, self.rect)def center_ship(self):"""让飞船在屏幕居中"""self.center = self.screen_rect.centerx

七、alien.py

创建外星人模块,看书,我觉得我说的肯定比不上书里的,代码看这里:

import pygame
from pygame.sprite import Spriteclass Alien(Sprite):"""表示单个外星人的类"""def __init__(self, ai_settings, screen):"""初始化外星人并设置其起始位置"""super(Alien, self).__init__()self.screen = screenself.ai_settings = ai_settings# 加载外星人图像,并设置其rect属性self.image0 = pygame.image.load('pic2.jpg')self.image = pygame.transform.scale(self.image0, (100, 80))self.rect = self.image.get_rect()# 每个外星人最初都在屏幕左上角附近self.rect.x = self.rect.widthself.rect.y = self.rect.height# 存储外星人的准确位置self.x = float(self.rect.x)self.y = float(self.rect.y)def blitme(self):"""在指定位置绘制外星人"""self.screen.blit(self.image, self.rect)def update(self):"""向左或向右移动外星人"""self.x += (self.ai_settings.alien_speed_factor *self.ai_settings.fleet_direction)self.rect.x = self.xdef check_edges(self):"""如果外星人位于屏幕边缘,就返回True"""screen_rect = self.screen.get_rect()if self.rect.right >= screen_rect.right:return Trueelif self.rect.left <= 0:return True

八、button.py

这里有一个开始的按钮,开始后就会进入游戏的界面:

import pygame.fontclass Button():def __init__(self, ai_settings, screen, msg):"""初始化按钮的属性"""self.screen = screenself.screen_rect = screen.get_rect()# 设置按钮的尺寸和其他属性self.width, self.height = 200, 50self.button_color = (0, 255, 0)self.text_color = (255, 255, 255)self.font = pygame.font.SysFont("arial", 40)# 创建按钮的rect对象,并使其居中self.rect = pygame.Rect(0, 0, self.width, self.height)self.rect.center = self.screen_rect.center# 按钮的标签只需要创建一次self.prep_msg(msg)def prep_msg(self, msg):"""将msg渲染为图像,并使其在按钮上居中"""self.msg_image = self.font.render(msg, True, self.text_color,self.button_color)self.msg_image_rect = self.msg_image.get_rect()self.msg_image_rect.center = self.rect.centerdef draw_button(self):# 绘制一个用颜色填充的按钮,在绘制文本self.screen.fill(self.button_color, self.rect)self.screen.blit(self.msg_image, self.msg_image_rect)

九、socrebroad.py

计分板,一个计分板也有点讲究的,像小时候玩的坦克大战的计分板我就觉得很有意思,也再尝试可不可以做成那样,当然了,这里的不是。
这里的代码有一点需要注意,原文的字体引用的是:None,而我则是用了系统自带的字体:arial,这两者之间可能没什么区别,但有时也可能是导致黑屏的原因之一。(第八条里面的字体也改了,由于是后面开始编辑的,就懒得改了)
引入一段其他的代码(pygame获取系统里有哪些字体):

import pygamefonts = pygame.font.get_fonts()with open('font.txt', 'w', encoding = 'utf-8') as file:for font in fonts:file.write(font)file.write('\n')

计分板的代码如下:

import pygame.font
from pygame.sprite import Groupfrom ship import Shipclass Scoreboard():"""显示得分信息的分类"""def __init__(self, ai_settings, screen, stats):"""初始化显示得分涉及的属性"""self.screen = screenself.screen_rect = screen.get_rect()self.ai_settings = ai_settingsself.stats = stats# 显示得分信息时使用的字体设置self.text_color = (30, 30, 30)self.font = pygame.font.SysFont("arial", 30)# 准备初始得分图像self.prep_score()# 准备包含最高得分图像self.prep_high_score()# 显示当前等级self.prep_level()# 显示飞船编组self.prep_ships()def prep_score(self):"""将得分转换为一幅渲染的图像"""rounded_score = int(round(self.stats.score, -1))score_str = "{:,}".format(rounded_score)self.score_image = self.font.render(score_str, True, self.text_color,self.ai_settings.bg_color)# 将得分放在右上角self.score_rect = self.score_image.get_rect()self.score_rect.right = self.screen_rect.right - 20self.score_rect.top = 20def prep_high_score(self):"""将最高得分转换为一幅渲染的图像"""high_score = int(round(self.stats.high_score, -1))high_score_str = "{:,}".format(high_score)self.high_score_image = self.font.render(high_score_str, True,self.text_color, self.ai_settings.bg_color)# 将最高得分放在屏幕顶部中央self.high_score_rect = self.high_score_image.get_rect()self.high_score_rect.centerx = self.screen_rect.centerxself.high_score_rect.top = self.score_rect.topdef prep_level(self):"""将等级转换为一幅渲染的图像"""self.level_image = self.font.render(str(self.stats.level), True,self.text_color, self.ai_settings.bg_color)# 将等级放在得分下方self.level_rect = self.level_image.get_rect()self.level_rect.right = self.score_rect.rightself.level_rect.top = self.score_rect.bottom + 10def prep_ships(self):"""显示还剩下多少艘飞船"""self.ships = Group()for ship_number in range(self.stats.ships_left):ship = Ship(self.ai_settings, self.screen)ship.rect.x = 10 + ship_number * ship.rect.widthship.rect.y = 10self.ships.add(ship)def show_score(self):"""在屏幕上显示得分"""self.screen.blit(self.score_image, self.score_rect)# 在屏幕上显示最高得分self.screen.blit(self.high_score_image, self.high_score_rect)# 显示等级self.screen.blit(self.level_image, self.level_rect)# 绘制飞船self.ships.draw(self.screen)

十、game_stats.py

游戏开始,这个好像没啥难的,见代码:

class GameStats():"""跟踪游戏的统计信息"""def __init__(self, ai_settings):"""初始化统计信息"""self.ai_settings = ai_settingsself.reset_stats()# 游戏启动时处于非活动状态self.game_active = False# 在任何情况下都不应该重置最高得分self.high_score = 0def reset_stats(self):"""初始化在游戏运行期间可能变化的统计信息"""self.ships_left = self.ai_settings.ship_limitself.score = 0self.level = 1

总结

到这里相信读者会问一句:图片呢?作者就知道我们有图片吗?不给图片的话就不点赞、不收藏了!
大哥莫急,图片这就来了:


如果发现了错误麻烦及时联系进行删改,还有,如果有哪位大神会加入外星人的子弹不妨赐教的话就麻烦留言赐教,非常感谢!

python实现外星人入侵小游戏相关推荐

  1. 记录第一个 python项目 外星人入侵小游戏

    学习目标:提升自己的编程能力## 标题 *> 可谓是一波三折 ,刚开始看的一本电子书 里面是python2.0的内容,我敲着在3系列的编译器试着2.0的代码可谓好不酸爽 那报错 绝了 学习内容: ...

  2. python 外星人游戏下载大全_【Python】Python制作外星人入侵小游戏

    开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 相关文件 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 原理介绍 ...

  3. python外星人入侵小游戏

    python外星人入侵小游戏 python外星人入侵小游戏 项目结构如图所示: (1)alien.py中的代码: (2)alien_invasion.py中的代码: (3)bullet.py中的代码: ...

  4. 手把手教你用Python改造一款外星人入侵小游戏

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 为学应须毕生力,攀高贵在少年时. ...

  5. 用python做一个简单的游戏,用python写一个小游戏

    大家好,本文将围绕如何用python做一个简单的小游戏展开说明,python编写的入门简单小游戏是一个很多人都想弄明白的事情,想搞清楚用python做一个简单的游戏需要先了解以下几个事情. 1.Pyt ...

  6. Python游戏开发,Python实现童年小游戏推箱子 附带源码

    开发工具 Python版本: 3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 上效果图 原理简 ...

  7. python经典小游戏五子棋,适合python编程的小游戏

    python入门可以做的小游戏 1.Python入门拼图小游戏简单介绍:将图像分为m×n个矩形块,并将图像右下角的矩形块替换为空白块后,将这些矩形块随机摆放成原图像的形状. 2.Python入门推箱子 ...

  8. python手机版做小游戏代码大全-python简单小游戏代码 怎么用Python制作简单小游戏...

    1.Python猜拳小游戏代码: 2.import random #导入随机模块 3. 4.num = 1 5.yin_num = 0 6.shu_num = 0 7.while num <= ...

  9. python写游戏脚本-使用Python写一个小游戏

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

最新文章

  1. mxnet makeloss
  2. 数据仓库经验小结(转)
  3. c++ 动态规划(数塔)
  4. Linux档案属性与目录配置
  5. 邓迎春绘画201702作品08
  6. oracle ora06576,创建oracle发邮件job导致的故障
  7. HDU.6761.Minimum Index(Lyndon分解)
  8. linux.命令格式,【Linux基础知识】Linux命令格式介绍
  9. born to be wild---Bangkok篇
  10. 腾讯云服务器如何开启虚拟化,腾讯云服务器虚拟化驱动是什么
  11. 高通WLAN稳定和功耗分析--目前高通项目支持的功耗策略
  12. 德国:认真是一种可怕的力量
  13. 如何从AD中彻底删除Skype For Business(下篇)
  14. Go-Proxy-Checker,一款基于Go编写的高性能代理服务器验证工具
  15. Vue 中常见的面试题/知识点整理
  16. Python科研数据分析专题之正态性检验
  17. 洋酒销售系统的设计与实现
  18. 免费沙箱软件模拟支付_小游戏虚拟支付沙箱测试报错
  19. 基于Kinect体感器控制的机械臂项目记录
  20. 小米誓将乐视闭上绝路

热门文章

  1. 电流电压转换器,频率电压转换器
  2. Linux shell代码 开启脚本 此坦克可是会跑的
  3. 绘制天线的心得、(无线传输的433项目的总结)
  4. 【3D实践】3D曲率原理及计算(3D-Mesh)
  5. java 买票_java 多线程之synchronized wait/notify解决买票问题
  6. Console Utilities API reference
  7. 脉脉发布的人才流动数据,警醒各位2022下半年一定不要裸辞,特别是互联网从业者
  8. Netapp AutoSupport日志收集方式
  9. java字符串根据分隔符取值_java中解析含分隔符的字符串
  10. animation(动画)