python快速编程入门第二版飞机大战(python怎么编飞机大战)

http://www.itjxue.com  2023-03-29 18:15  来源:未知  点击次数: 

哪位大神推荐一本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 游戏 结束方法:

当检测到碰撞事件的发生,判断是否需要调用该方法来退出 游戏

鼓励大家亲自动手实现一下这个小 游戏 ,还是挺有趣的。代码注释较为详细,在实践过程中,可以仔细阅读以便于加深理解。

(责任编辑:IT教学网)

更多