python pygame模块 打飞机游戏

settings.py用于设置屏幕的基本设置

# -*- coding: gbk -*-
__author__ = ‘HZQ‘
import  pygame
class  Settings():
    ‘‘‘
    存储所有设置
    ‘‘‘
    def  __init__(self):
        #屏幕大小设置
        self.screen_width = 600
        self.screen_height = 400
        #屏幕背景
        self.pwd=‘E:\\Python35\\images\\bg.jpg‘
        #飞船速度设置
        self.ship_speed_factor = 1.5
    def bg(self):
        background = pygame.image.load(self.pwd).convert()
        return background

Update_Screen.py设置屏幕背景

# -*- coding: gbk -*-
__author__ = ‘HZQ‘
import  pygame
class Update_Screen():
    def __init__(self):
        self.pwd=‘E:\\Python35\\images\\bg.jpg‘
    def up_sc(self):
        background = pygame.image.load(self.pwd).convert()

ship.py设置飞机机器位置属性

# -*- coding: gbk -*-
__author__ = ‘HZQ‘
import  pygame
class Ship():
    def __init__(self,ai_settings,screen):
        """初始化飞机并设置位子"""

        self.screen = screen
        self.ai_settings = ai_settings
        # 加载飞船图像并获取其外接矩形
        self.image = pygame.image.load(‘E:\\Python35\\images\\hero.gif‘)
        self.rect = self.image.get_rect()
        self.screen_rect = screen.get_rect()
        # 将每艘新飞船放在屏幕底部中央
        self.rect.centerx = self.screen_rect.centerx
        self.rect.bottom = self.screen_rect.bottom
        #在飞船的属性center中存储小数值
        self.center = float(self.rect.centerx)
        self.bottom =float(self.rect.bottom)
        #移动标志
        self.moving_right =False
        self.moving_left =False
        self.moving_up =False
        self.moving_down =False
    def update(self):
        """根据移动标志调整飞船,不得超出屏幕"""
        if self.moving_right and self.rect.right < self.screen_rect.right:
            self.center += self.ai_settings.ship_speed_factor
        if self.moving_left and self.rect.left > 0:
            self.center -= self.ai_settings.ship_speed_factor
        if self.moving_up and self.rect.top > 0:
            self.bottom -= self.ai_settings.ship_speed_factor
        if self.moving_down and self.rect.bottom < 600:
            self.bottom += self.ai_settings.ship_speed_factor
        #根据self.center/bottom跟新rect
        self.rect.centerx=self.center
        self.rect.bottom=self.bottom
    def blitme(self):
        """在指定位置绘制飞船"""
        self.screen.blit(self.image,self.rect)

game_funtions.py  游戏主功能设置

# -*- coding: gbk -*-
__author__ = ‘HZQ‘
import  sys
import pygame
def check_keydown_events(event,ship):
    if event.key == pygame.K_RIGHT:
        ship.moving_right=True
    elif event.key == pygame.K_LEFT:
        ship.moving_left=True
    elif event.key == pygame.K_UP:
        ship.moving_up=True
    elif event.key == pygame.K_DOWN:
        ship.moving_down=True

def check_keyup_events(event,ship):
    if event.key == pygame.K_RIGHT:
        ship.moving_right=False
    elif event.key == pygame.K_LEFT:
         ship.moving_left=False
    elif event.key == pygame.K_UP:
         ship.moving_up=False
    elif event.key == pygame.K_DOWN:
         ship.moving_down=False

def check_events(ship):
    """响应按键和鼠标事件"""
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
        elif event.type == pygame.KEYDOWN:
            check_keydown_events(event,ship)
        elif event.type == pygame.KEYUP:
            check_keyup_events(event,ship)

def update_screen(ai_settings,screen,ship):
    """更新屏幕上的图像,并切换到新屏幕"""
    # 每次循环时都重绘屏幕
    #screen.fill(ai_settings.bg_color)
    ship.blitme()
    #让最近绘制屏幕可见
    pygame.display.flip()
    pygame.display.update()

alien_invasion.py  游戏执行

# -*- coding: gbk -*-
__author__ = ‘HZQ‘

import sys
import pygame
from  settings import  Settings
from  ship import  Ship
import  game_functions as  gf
from  update_screen import  Update_Screen

def run_game():
# 初始化游戏并创建一个屏幕对象
    pygame.init()
    #创建实例
    ai_settings =Settings()
    screen = pygame.display.set_mode((ai_settings.screen_height, ai_settings.screen_width))
    pygame.display.set_caption("星际争霸")
    #设置背景颜色
    #bg_color =(230,230,230)
    #创建飞船
    ship=Ship(ai_settings,screen)
    #设置背景图片
    #background = pygame.image.load(ai_settings.pwd).convert()
    # 开始游戏的主循环
    while True:
        #监视键盘鼠标事件
        gf.check_events(ship)
        ship.update()
        #每次循环都重绘屏幕
        #将背景画上去
        screen.blit(ai_settings.bg(),(0,0))
        #让最近的屏幕可见
        gf.update_screen(ai_settings,screen,ship)
run_game()

当前实现屏幕绘制,飞机键盘按键控制上下左右,马克,待续

时间: 2025-01-19 00:28:09

python pygame模块 打飞机游戏的相关文章

python学习笔记(七) 类和pygame实现打飞机游戏

python中类声明如下: class Student(object): def __init__(self, name, score): self.name = name self.score = score def printinfo(self): print('name is %s, score is %d'%(self.name, self.score)) Student类有两个成员变量,name和score,类的成员函数第一个参数都为self,用来实现成员变量的赋值,__init__是

python pygame做的小游戏(贪吃蛇)

# pygame游戏库,sys操控python运行的环境 import pygame, sys, random # 这个模块包含所有pygame所使用的常亮 from pygame.locals import * # 1,定义颜色变量 # 0-255 0黑色 255白色 redColor = pygame.Color(255, 0, 0) # 背景为黑色 blackColor = pygame.Color(0, 0, 0) # 贪吃蛇为白色 whiteColor = pygame.Color(2

python实现微信打飞机游戏

环境:Ubuntu 16.04 LTS Python 2.7.11 +  Pygame + Pycharm 代码: 1 # -*- coding: UTF-8 -*- 2 import pygame, random 3 from sys import exit 4 5 6 class Plane: 7 def restart(self): 8 self.x = 200 9 self.y = 600 10 11 def __init__(self): 12 self.restart() 13 se

Python编写微信打飞机小游戏(一)

最近开始学习Python语言,发现Python有一个神奇的Pygame模块,在编写小游戏时显得非常方便,于是参照教学视频编写了一个微信打飞机的小游戏,网上有很多相关的博客,但都不是很详细,大都是直接贴代码,于是决定沉下心来把编写程序的过程记录下来,与大家分享. 首先声明一点,这篇博客完全参照了小甲鱼的<零基础入门学习Python>教学视频,为了尊重原创,特将原作者的视频地址公布如下:<零基础入门学习Python> Python编译器和Pygame模块的安装网上的教程很多,这里不再赘

pygame开发PC端微信打飞机游戏

pygame开发PC端微信打飞机游戏 一.项目简介 1. 介绍 本项目类似曾经火爆的微信打飞机游戏.游戏将使用Python语言开发,主要用到pygame的API.游戏最终将会以python源文件game.py形式完成,只需要运行python game.py就可以进入游戏. 游戏最终效果截图如下: 2. 知识点 本实验中将介绍在Linux桌面环境下使用Python及pygame快速开发小游戏的方式.可以通过这个游戏入门pygame游戏开发. 3. 参考文档 代码参考 Kill-Console写的P

python 常用模块(转载)

转载地址:http://codeweblog.com/python-%e5%b8%b8%e7%94%a8%e6%a8%a1%e5%9d%97/ adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheetahcherrypy:一个WEB frameworkctypes:用来调用动态链接库DBUtils:数据库连接池django:一个WEB frameworkdocutils:用来写文档的dpkt:数据包的解包和组包My

利用Python自制雷霆战机小游戏,娱乐编程,快乐学习!

开发工具 Python版本:3.6.4相关模块:pygame模块:以及一些Python自带的模块.环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可.先睹为快 在cmd窗口运行"Game10.py"文件即可.效果如下:原理简介 游戏规则简介: 游戏模式包括单人模式和双人模式. 单人模式中,玩家通过↑↓←→控制飞船行动,J键发射炮弹:双人模式中,玩家一通过↑↓←→控制飞船行动,J键发射炮弹,玩家二通过wsad控制飞船行动,空格键发射炮弹.每击碎一个小行星(或者说陨石

利用Python制作一个连连看小游戏,边学边玩!

导语 今天我们将制作一个连连看小游戏,让我们愉快地开始吧~ 开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 先睹为快 在cmd窗口运行"Game15.py"文件即可. 效果如下: 原理简介 游戏规则: 玩家通过鼠标交换相邻的拼图,若交换后水平/竖直方向存在连续三个相同的拼图,则这些拼图消失,玩家得分,同时生成新的拼图以补充消失的部分,否则,交换失败,玩家不

python 各模块

01 关于本书 02 代码约定 03 关于例子 04 如何联系我们 1 核心模块 11 介绍 111 内建函数和异常 112 操作系统接口模块 113 类型支持模块 114 正则表达式 115 语言支持模块 12 _ _builtin_ _ 模块 121 使用元组或字典中的参数调用函数 1211 Example 1-1 使用 apply 函数 1212 Example 1-2 使用 apply 函数传递关键字参数 1213 Example 1-3 使用 apply 函数调用基类的构造函数 122