python 打飞机项目 (实战一)
第一步定义 main 函数:
# -*- coding=utf-8 -*-
import pygame,time
from Plane import Plane
from pygame.locals import * def key_control(plane_temp):
# 获取事件,比如按键等
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')
plane_temp.move_left()
# 检测按键是否是d或者right
elif event.key == K_d or event.key == K_RIGHT:
print('right')
plane_temp.move_right()
# 检测按键是否是空格键
elif event.key == K_SPACE:
print('space')
plane_temp.fire() def main():
screen = pygame.display.set_mode((480, 852), 0, 32)
background = pygame.image.load("./resource/background.png") # 创建一个飞机对象
plane = Plane(screen, 210, 700) while True:
screen.blit(background, (0, 0))
plane.display()
key_control(plane)
pygame.display.update()
time.sleep(0.01) if __name__ == '__main__':
main()
创建飞机类
import pygame
from Bullet import Bullet class Plane(object): image = None bullet_list = [] def __init__(self, screen_temp, x, y):
self.screen = screen_temp
self.x = x
self.y = y
self.img_load() def img_load(self):
self.image = pygame.image.load("./resource/hero1.png") def display(self):
self.screen.blit(self.image, (self.x, self.y))
for bullet in self.bullet_list:
print(bullet)
bullet.display()
bullet.move() def move_left(self):
self.x -= 10 def move_right(self):
self.x += 10 def fire(self):
self.bullet_list.append(Bullet(self.screen, self.x, self.y))
创建子弹类:
import pygame class Bullet(object):
def __init__ (self, screen_temp, x, y):
self.x = x + 40
self.y = y - 20
self.screen = screen_temp
self.img_load() def img_load(self):
self.image = pygame.image.load("./resource/bullet.png") def display(self):
self.screen.blit(self.image, (self.x, self.y)) def move(self):
self.y -= 20
如果有问题可加群:887934385 可分享相关资料
python 打飞机项目 (实战一)的更多相关文章
- Python Django CMDB项目实战之-3创建form表单,并在前端页面上展示
基于之前的项目代码 Python Django CMDB项目实战之-1如何开启一个Django-并设置base页.index页.文章页面 Python Django CMDB项目实战之-2创建APP. ...
- Python Django CMDB项目实战之-2创建APP、建模(models.py)、数据库同步、高级URL、前端页面展示数据库中数据
基于之前的项目代码来编写 Python Django CMDB项目实战之-1如何开启一个Django-并设置base页index页文章页面 现在我们修改一个文章列表是从数据库中获取数据, 下面我们就需 ...
- Python Django CMDB项目实战之-1如何开启一个Django-并设置base页、index页、文章页面
1.环境 win10 python 2.7.14 django 1.8.2 需要用到的依赖包:MySQLdb(数据库的接口包).PIL/pillow(处理图片的包) 安装命令: pip install ...
- Python NLP完整项目实战教程(1)
一.前言 打算写一个系列的关于自然语言处理技术的文章<Python NLP完整项目实战>,本文算是系列文章的起始篇,为了能够有效集合实际应用场景,避免为了学习而学习,考虑结合一个具体的项目 ...
- Python+Flask+Gunicorn 项目实战(一) 从零开始,写一个Markdown解析器 —— 初体验
(一)前言 在开始学习之前,你需要确保你对Python, JavaScript, HTML, Markdown语法有非常基础的了解.项目的源码你可以在 https://github.com/zhu-y ...
- Python框架 Flask 项目实战教程
本文目的是为了完成一个项目用到的flask基本知识,例子会逐渐加深.最好对着源码,一步一步走.下载源码,运行pip install -r requirements.txt 建立环境python db_ ...
- python 打飞机项目 ( 基类封装 )
项目代码 | plane # -*- coding:utf-8 -*- import pygame, time from Plane import Plane from HeroPlane impor ...
- python爬虫小项目实战
- 给缺少Python项目实战经验的人
我们在学习过程中最容易犯的一个错误就是:看的多动手的少,特别是对于一些项目的开发学习就更少了! 没有一个完整的项目开发过程,是不会对整个开发流程以及理论知识有牢固的认知的,对于怎样将所学的理论知识应用 ...
随机推荐
- 实战webpack系列04
04. 一切皆模块 Webpack有一个不可不说的优点,它把所有的文件都都当做模块处理,JavaScript代码,CSS和fonts以及图片等等通过合适的loader都可以被处理. 一.CSS 继续上 ...
- 【Android - 自定义View】之View的事件分发机制
参考资料: View事件分发:http://blog.csdn.net/pi9nc/article/details/9281829 ViewGroup事件分发:http://blog.csdn.net ...
- js中this的使用及代表意义
我们在js中经常看到this这个关键字,那么他是什么呢?它可以是全局对象.当前对象,也可以是任意对象,函数的调用方式决定了 this 的值. 1. 方法中的this. 在对象方法中, this 指向调 ...
- Java继承、构造、重写
Music mu=new Music(); Musc m=mu;//地址一样 继承:Java只支持单继承,不支持多继承. Java支持多层(重)继承(继承体系). 如果类之间存在着:is a 的关 ...
- 《手把手教你》系列进阶篇之1-python+ selenium自动化测试 - python基础扫盲(详细教程)
1. 简介 如果你从一开始就跟着宏哥看博客文章到这里,基础篇和练习篇的文章.如果你认真看过,并且手动去敲过每一篇的脚本代码,那边恭喜你,至少说你算真正会利用Python+Selenium编写自动化脚本 ...
- luogu P3939 数颜色 |vector
题目描述 小 C 的兔子不是雪白的,而是五彩缤纷的.每只兔子都有一种颜色,不同的兔子可能有 相同的颜色.小 C 把她标号从 1 到 n 的 n 只兔子排成长长的一排,来给他们喂胡萝卜吃. 排列完成后, ...
- IO 单个文件的多线程拷贝
package FileCopyThread; //自建的包,根据个人调整 import java.io.File; import java.io.FileNotFoundException; imp ...
- Light oj 1140 How Many Zeroes?
Jimmy writes down the decimal representations of all natural numbers between and including m and n, ...
- 洛谷 题解 P2312 【解方程】
Problem P2312 [解方程] >>> record 用时: 1166ms 空间: 780KB(0.76MB) 代码长度: 2.95KB 提交记录: R9909587 > ...
- iOS和webppy图片的爱恨情仇
如果iOS是个好哥哥,webppy一定是一个持家能干的漂亮姑娘