飞机大战-代码提取面向对象(4)

简介: 用Python语言编写飞机大战,部分代码用面向对象方式编写。

用Python语言编写飞机大战,部分代码用面向对象方式编写。
import pygame
from pygame.locals import *

创建类,描述我机

class HeroPlane:

def __init__(self, scree):
    self.x = 190
    self.y = 576
    self.scree = scree
    self.image = pygame.image.load("./feiji/hero1.png")

# 用于显示飞机
def display(self):
    self.scree.blit(self.image, (self.x, self.y))  # 显示我机

# 飞机左移
def move_left(self):
    self.x -= 5

# 飞机右移
def move_right(self):
    self.x += 5

def key_control(hero):

# 获取事件,比如按键等
for event in pygame.event.get():

    # 判断是否是点击了退出按钮
    if event.type == QUIT:
        print("exit")
        exit()
    # 判断是否是按下了键
    elif event.type == KEYDOWN:
        # 检测按键是否是a或者left
        if event.key == K_a or event.key == K_LEFT:
            print('left')
            hero.move_left()

        # 检测按键是否是d或者right
        elif event.key == K_d or event.key == K_RIGHT:
            print('right')
            hero.move_right()

        # 检测按键是否是空格键
        elif event.key == K_SPACE:
            print('space')

def main():

# 1.创建一个窗口,用来显示内容,窗口宽480,高852
scree = pygame.display.set_mode((480, 700), 0, 32)

# 2.创建一个和窗口大小的图片,用来当背景图
background = pygame.image.load("./feiji/background.png")
# 创建我机
hero = HeroPlane(scree)  # 创建对象

# 3.把背景图放到窗口中显示
while True:
    # 设定需要显示的背景图
    scree.blit(background, (0, 0))  # 背景图的左上角,和窗口左上角重合
    # 显示我机
    hero.display()  # 对象调用方法
    key_control(hero)

    # 更新需要显示的内容
    pygame.display.update()

if name == 'main':
main()

相关文章
|
7月前
|
Python
80 python - 打飞机案例(代码优化-抽象出基类)
80 python - 打飞机案例(代码优化-抽象出基类)
27 0
|
14天前
|
Python 索引
【Python字符串攻略】:玩转文字,编织程序的叙事艺术
【Python字符串攻略】:玩转文字,编织程序的叙事艺术
|
23天前
|
算法 搜索推荐 程序员
探索代码的诗意——编程中的美学思考
【6月更文挑战第4天】在数字世界的编织中,我们不仅是逻辑的建筑师,也是美感的追寻者。本文将带你领略编程之美,从算法的严谨到界面的和谐,探讨如何将技术与艺术融合,创造出既高效又令人愉悦的软件作品。
20 5
|
1月前
|
人工智能 算法 物联网
代码之禅:从功能实现到艺术表达
在数字世界的无限编织中,技术并非僵化的工具,而是承载创造力与哲思的容器。本文将探讨编程不仅仅是逻辑与算法的堆砌,更是一场思维与美学的交响。我们将透过编程语言的框架,捕捉那些在字符间跳跃的灵感火花,从而揭示编程艺术的深层价值。
13 0
|
1月前
|
机器学习/深度学习 算法 索引
Python函数、类和对象、流程控制语句if-else while的讲解及演示(图文解释 附源码)
Python函数、类和对象、流程控制语句if-else while的讲解及演示(图文解释 附源码)
45 0
|
10月前
|
存储 安全 Java
Java-反射(有图有例子,清晰易懂)
反射:框架设计的灵魂 1、概念 Java反射就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;并且能改变它的属性。
Java-反射(有图有例子,清晰易懂)
|
10月前
|
Python
Python版飞机大战游戏的设计(四)-----碰撞检测
Python版飞机大战游戏的设计(四)-----碰撞检测
|
10月前
|
数据库 Python
【100天精通python】Day13:面向对象编程_多态和封装,实战模拟电影院的自动售票机选票页面
【100天精通python】Day13:面向对象编程_多态和封装,实战模拟电影院的自动售票机选票页面
247 0
|
Python
教你如何用python画出4种风格不一的树
教你如何用python画出4种风格不一的树
100 0
教你如何用python画出4种风格不一的树
|
网络协议 Java
Java面向对象程序设计|二人间对话示例
Java面向对象程序设计|二人间对话示例
143 0
Java面向对象程序设计|二人间对话示例