第一步定义 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 可分享相关资料

最新文章

  1. Qt5中的信号槽
  2. springMVC学习笔记(一)-----springMVC原理
  3. Android-Lopper类的介绍(Handler背后的类)
  4. java for 的用法总结
  5. c#中执行多条sql语句【ORA-00911: 无效字符】
  6. dom4j解析XML的CURD操作
  7. Android Camera Api的心得
  8. 学习笔记-----《Pattern Recognition and Machine Learning》Christopher M. Bishop
  9. Swagger2 header 添加token
  10. ARC101E - Ribbons on Tree
  11. python(61):str 和 bytes 转换
  12. 【iCore4 双核心板_uC/OS-II】例程四:软件定时器
  13. HTML中调用JavaScript的几种情况和规范写法
  14. 基于Grafana的监控数据钻取功能应用实践
  15. 华硕200系主板完美兼容M.2安装Win7系统
  16. EasyUI学习总结(四)——parser源码分析
  17. java学习笔记27(File类)
  18. Tower Defense Toolkit 学习
  19. golang 切片和数组在for...range中的区别
  20. Linux 内核编译步骤及配置详解

热门文章

  1. mysql 基础知识整理
  2. 区块链学习笔记:DAY01 区块链的技术原理
  3. 每个开发人员都应该知道的11个Linux命令
  4. 17.JAVA-Dom、Sax解析XML详解
  5. 什么是渐进式框架 (vue.js)
  6. EditText 无法失焦与失焦后键盘不收缩解决方案
  7. Python字符串学习
  8. [TimLinux] JavaScript 阻止父节点接收子节点事件的方法
  9. POJ 1651 Mulitiplication Puzzle
  10. 关于直线,V形线,Z形线,M形线分割平面的总结