python快速编程入门第二版飞机大战(python怎么编飞机大战)
哪位大神推荐一本Python入门书籍,自学?
1.《Python编程:从入门到实践》
这本书算是比较全面系统的入门Python教程。基本的概念解释得算是比较不错的,我们知道,对于零基础学习编程的人来说,基础的概念是最关键也是最重要的一部分,谁能把基本的概念讲得通俗易懂,那么谁也就自然受欢迎了。
2.《像计算机科学家一样思考Python》
本书更多的是想培养读者以计算机科学家一样的思维方式来理解Python语言编程。贯穿全书的主体是如何思考、设计、开发的方法。从基本的编程概念开始,一步步引导读者了解Python语言,再逐渐掌握函数、递归、数据结构和面向对象设计等高阶概念。
3.《Python编程:从入门到实践》
2016年出版的书,基于 Python3.5 同时也兼顾 Python2.7 ,书中涵盖的内容是比较精简的,没有艰深晦涩的概念,每个小结都附带练习题,它可以帮助你更快的上手编写程序,解决实际编程问题,上到有编程基础的程序员,下到10岁少年,想入门Python并达到可以开发实际项目的水平,这本书都是个不错的选择。
4.《Python核心编程第三版(中文版)》
该书向读者介绍了这种语言的核心内容,并展示了Python语言可以完成哪些任务。其主要内容包括:语法和编程风格、Python语言的对象、Web程序设计、执行环境等。该书条理清晰、通俗易懂,是学习Python语言的最好教材及参考手册。所附光盘包括Python语言最新的三个版本及书中示例代码。
5.《Python算法教程》
Python算法教程用Python语言来讲解算法的分析和设计。本书主要关注经典的算法,但同时会为读者理解基本算法问题和解决问题打下很好的基础。全书共11章。分别介绍了树、图、计数问题、归纳递归、遍历、分解合并、贪心算法、复杂依赖、Dijkstra算法、匹配切割问题以及困难问题及其稀释等内容。本书在每一章结束的时候均有练习题和参考资料,这为读者的自我检查以及进一步学习提供了较多的便利。在全书的结尾,给出了练习题的提示,方便读者进行查漏补缺。
如何用用python写飞机大战?
import pygame
from settings import Settings
from ship import Ship
import game_functions as gf
from pygame.sprite import Group
def run_game():
# 初始化游戏并创建一个屏幕对象
pygame.init()
ai_settings = Settings()
screen = pygame.display.set_mode((ai_settings.screen_width, ai_settings.screen_height))
pygame.display.set_caption("Alien Invasion")
# 创建一艘飞船
ship = Ship(ai_settings, screen)
# 创建一个用于存储子弹的编组
bullets = Group()
# 开始游戏主循环
while True:
gf.check_events(ai_settings, screen, ship, bullets)
ship.update()
bullets.update()
gf.update_bullets(ship, bullets)
gf.update_screen(ai_settings, screen, ship, bullets)
run_game()
怎么用python学飞机大战?
1、我方飞机模块
import pygame
class MyPlane(pygame.sprite.Sprite):
def __init__(self,bg_size):
pygame.sprite.Sprite.__init__(self)
self.image1 = pygame.image.load(r'E:\learn pygame\image\me1.png').convert_alpha()
self.image2 = pygame.image.load(r'E:\learn pygame\image\me2.png').convert_alpha()
self.image3 = pygame.image.load(r'E:\learn pygame\image\me_protect.png').convert_alpha()
self.destroy_images = []
self.destroy_images.extend([\
pygame.image.load(r'E:\learn pygame\image\me_destroy_1.png').convert_alpha(), \
pygame.image.load(r'E:\learn pygame\image\me_destroy_2.png').convert_alpha(), \
pygame.image.load(r'E:\learn pygame\image\me_destroy_3.png').convert_alpha(), \
pygame.image.load(r'E:\learn pygame\image\me_destroy_4.png').convert_alpha() \
])
self.rect = self.image1.get_rect()
self.width,self.height = bg_size[0],bg_size[1]
self.rect.left,self.rect.top = (self.width - self.rect.width) // 2,self.height - self.rect.height - 60
self.speed = 10
self.active = True
self.invincible = False
self.mask = pygame.mask.from_surface(self.image1)
def moveUp(self):
if self.rect.top 0:
self.rect.top -= self.speed
else:
self.rect.top = 0
def moveDown(self):
if self.rect.bottom self.height - 30:
self.rect.top += self.speed
else:
self.rect.bottom = self.height - 30
def moveLeft(self):
if self.rect.left 0:
self.rect.left -= self.speed
else:
self.rect.left = 0
def moveRight(self):
if self.rect.right self.width:
self.rect.left += self.speed
else:
self.rect.right = self.width
def reset(self):
self.rect.left,self.rect.top = (self.width - self.rect.width) // 2,self.height - self.rect.height - 30
self.active = True
self.invincible = True
2、敌机与背景动图模块
import pygame
from random import *
class SmallEnemy(pygame.sprite.Sprite):
energy = 1
def __init__(self,bg_size):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.image.load(r'E:\learn pygame\image\enemy1.png').convert_alpha()
self.destroy_images = []
self.destroy_images.extend([\
pygame.image.load(r'E:\learn pygame\image\enemy1_down1.png').convert_alpha(), \
pygame.image.load(r'E:\learn pygame\image\enemy1_down2.png').convert_alpha(), \
pygame.image.load(r'E:\learn pygame\image\enemy1_down3.png').convert_alpha(), \
pygame.image.load(r'E:\learn pygame\image\enemy1_down4.png').convert_alpha() \
])
self.rect = self.image.get_rect()
self.width,self.height = bg_size[0],bg_size[1]
self.speed = 2
self.active = True
self.rect.left,self.rect.top = \
randint(0,self.width - self.rect.width), \
randint(-5 * self.height, 0)
self.mask = pygame.mask.from_surface(self.image)
self.energy = SmallEnemy.energy
self.hit = False
def move(self):
if self.rect.top self.height:
self.rect.top += self.speed
else:
self.reset()
def reset(self):
self.active = True
self.energy = SmallEnemy.energy
self.rect.left,self.rect.top = \
randint(0,self.width - self.rect.width), \
randint(-5 * self.height, 0)
class MidEnemy(pygame.sprite.Sprite):
energy = 4
300行代码,用Python写个飞机大战
春节这些天,闲赋在家,甚是无聊,便萌发了研究经典小 游戏 :飞机大战的念头,想必大家可能玩过微信的这款小 游戏 ,给我的感觉是这款 游戏 怎么可以做得这么好呢,操作简单,容易上手,简直是“老少皆宜”啊~
既然这款 游戏 这么棒,能否自己动手用 Python 来实现呢?事实证明是可以的。
先来看下飞机大战 游戏 最终实现的动态效果图。
在导入pygame之前,需要先使用命令:
进行包模块的安装
(1). __init__初始化方法:
进行 游戏 开始的初始化操作,包含:创建 游戏 窗口,创建 游戏 的敌机,背景等精灵
(2). __create_sprites创建精灵方法:
负责创建不同角色的精灵,并将其添加至精灵组
(3). start_game 游戏 开始方法:
负责播放背景音乐,使用while循环来设置刷新帧率、事件监听、碰撞检测、更新绘制精灵组、更新显示屏幕图像
(4). __event_handler事件监听方法:
负责监听用户在 游戏 界面的操作,例如:关闭 游戏 窗口,左右方向键的移动等
(5). __check_collide碰撞检测方法:
负责检测子弹是否碰撞到敌机,敌机是否碰撞到英雄飞机,然后做出相应的操作
(6). __update_sprites更新精灵方法:
负责各个角色精灵的更新并绘制到屏幕,展示给用户
(7). __game_over 游戏 结束方法:
当检测到碰撞事件的发生,判断是否需要调用该方法来退出 游戏
鼓励大家亲自动手实现一下这个小 游戏 ,还是挺有趣的。代码注释较为详细,在实践过程中,可以仔细阅读以便于加深理解。