最近在带NCT2级的课程,孩子们开始学习比较大的项目,今天记录一个小飞机游戏的模板代码:
完成功能:五颜六色的陨石下落,五颜六色的子弹飞出去,小飞机左右移动。
成果图,如下

废话不多说,上代码:

import pygame
import random#定义屏幕宽,高
WIDTH = 480
HEIGHT = 600
#创建颜色
COLOR_GREEN = (0, 255, 0)
COLOR_BLACK = (0, 0, 0)
COLOR_RED = (255, 0, 0)
COLOR_YELLOW = (255, 255, 0)
#刷新频率
FPS = 60
#初始化
pygame.init()#定义精灵区域# 1. 定义飞机精灵
class Player(pygame.sprite.Sprite):def __init__(self):# 完成精灵初始化pygame.sprite.Sprite.__init__(self)# 初始化精灵图像self.image = pygame.Surface((50,50))self.image.fill(COLOR_GREEN)self.rect = self.image.get_rect()#设置长方形中心的X,Y值self.rect.centerx = WIDTH / 2self.rect.centery = HEIGHT - 10def update(self):self.speedx = 0keys = pygame.key.get_pressed()if keys[pygame.K_LEFT]:self.speedx = -8if keys[pygame.K_RIGHT]:self.speedy = 8self.rect.x += self.speedxif self.rect.right > WIDTH:self.rect.right = WIDTHif self.rect.left < 0:self.rect.left = 0#2. 定义陨石精灵
class Meteorite(pygame.sprite.Sprite):def __init__(self):pygame.sprite.Sprite.__init__(self)#定义陨石的图形self.image = pygame.Surface((30, 40))# 五颜六色的陨石self.image.fill((random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)))self.rect = self.image.get_rect()self.rect.x = random.randrange(WIDTH - self.rect.width)self.rect.y = random.randrange(-100, 40)#设定运行速度self.speedy = random.randrange(1, 8)self.speedx = random.randrange(-3, 3)def update(self):self.rect.x += self.speedxself.rect.y += self.speedy# 检查是否出边界if self.rect.top > HEIGHT + 10 or self.rect.left < -30 or self.rect.right > WIDTH + 30:self.rect.x = random.randrange(WIDTH - self.rect.width)self.rect.y = random.randrange(-100, -40)class Bullet(pygame.sprite.Sprite):def __init__(self,x,y):pygame.sprite.Sprite.__init__(self)self.image = pygame.Surface((10,20))self.image.fill((random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)))self.rect = self.image.get_rect()# 设置出现的位置self.rect.y = yself.rect.centerx = xself.speedy = -10def update(self):self.rect.y += self.speedy# 子弹超出屏幕检测if self.rect.bottom < 0:self.kill()# 设置屏幕
screen = pygame.display.set_mode((WIDTH,HEIGHT))
clock = pygame.time.Clock()
# 定义一个飞机对象
player = Player()all_sprites = pygame.sprite.Group()
all_sprites.add(player)for i in range(10):met = Meteorite()all_sprites.add(met)
running = True
while running:clock.tick(FPS)screen.fill(COLOR_BLACK)all_sprites.update()all_sprites.draw(screen)pygame.display.flip()for event in pygame.event.get():if event.type == pygame.QUIT:running = Falseelif event.type == pygame.KEYDOWN:if event.key == pygame.K_SPACE:player.shoot()if event.key == pygame.K_ESCAPE:running = False
pygame.quit()

高新区万达(大连)编程猫学院(二)相关推荐

  1. 高新区万达(大连)编程猫学院(一)

    编程猫海龟编辑器(画一条直线)初学者 使用海龟编辑器,非常简单,而且有积木模式转换,对于学习过图形化编程的人,学习起来非常方便,易懂. import turtle # 拿到turgle里面的Pen工具 ...

  2. 【网络工程】8、实操-万达酒店综合项目(二)

    接上篇<7.实操-万达酒店综合项目(一)> 之前我们讲解了酒店网络项目的整体需求文档,包括项目背景.总体架构设计以及网络功能域划分.配置标准.路由规划等.本篇我们就来按照项目要求进行模拟拓 ...

  3. 万达VS万科:从局部对峙,到互联网全面开火

    一个埋头于贸易地产,一个因住屋建造而口碑极高--万达和万科,跟着房地家当务的转型而越来越暴露"短兵相接"的角逐态势.所以题目也随之而来:万科涉足商业地产后,会在商业地产方面赶超万达 ...

  4. 万达网络科技的DevOps平台架构解析

    转载本文需注明出处:微信公众号EAWorld,违者必究. 目录: 一.万达DevOps平台建设历程 二.平台架构解析 三.建设过程中的难点分享 四.总结 一.万达DevOps平台建设历程 我们从201 ...

  5. 合肥天鹅湖万达广场机器人_合肥租房价位及租房地理位置推荐

    首先我们来看一张合肥的区域分布地图 下面将从如下几个区域开始细说[列举租金区域仅供参考哟~] 庐阳区 庐阳区是合肥市老城区,位于中国中部,属北亚热带季风湿润气候区,气候温和,四季分明.截至2017年底 ...

  6. 「万达董事会大换血」背后 | 一点财经

    大连万达集团股份有限公司变更了董事信息.国家企业信用信息公示系统显示,8月13日,万达集团董事会成员两退四进,由7人变更为9人.原董事尹海.林宁退出董事会,取而代之的是高茜.肖广瑞.董建岳.曲德君四名 ...

  7. 编程猫平台 python-编程猫发布高中新课标产品 助力中小学python教育

    新浪教育新闻8月18日,孙悦,Codingmao公司的共同创始人兼首席技术官(深圳市Dotmao科技有限公司),正式宣布Codingmao教学的最新系列产品可以转换的科学教育国际会议上中国青少年科技辅 ...

  8. 【中文】【吴恩达课后编程作业】Course 2 - 改善深层神经网络 - 第三周作业

    [中文][吴恩达课后编程作业]Course 2 - 改善深层神经网络 - 第三周作业 - TensorFlow入门 上一篇: [课程2 - 第三周测验]※※※※※ [回到目录]※※※※※下一篇: [课 ...

  9. 「编程猫」融资13亿破记录 编程是如何风靡到小学生课程的?

    新生代父母注重孩子的全面发展,育儿观念也更加国际化,而编程作为"全球性语言"也被家长放进了孩子必学的兴趣课清单中. 近日,编程猫宣布完成13亿元D轮融资,打破了国内少儿编程最高融资 ...

最新文章

  1. Flutter基础—手势处理
  2. U811.1接口EAI系列之三--采购订单生成--VB语言
  3. php[6491]: segfault at * rip * rsp * error 6
  4. 精细化运营的用户分层方法论——RFM
  5. sql分组排序, 分页查询
  6. ckeditor带公式编辑器
  7. 期货反向跟单—日内交易是否合适
  8. 转本计算机知识普及软件,江苏专转本新政策的解读
  9. android 虚拟按键root,(免root)虚拟按键手动修改方法
  10. Java数组知识点概述
  11. ie浏览器rgba不能显示的一种情况
  12. ​微信小程序开发难?资深大V教您微信小程序制作步骤和方法​
  13. Idea在项目中新建项目
  14. 数字信号处理专业术语翻译
  15. 关于spring IoC 学习
  16. Adobe Flash Player 本地播放器
  17. electron 实现文件下载管理器
  18. 开源openstack
  19. python弹幕点歌_IT之家学院:使用树莓派搭建 B 站直播点歌台
  20. 中国联通物联网连接服务能力介绍

热门文章

  1. java正则校验的坑正则校验公式正确性
  2. 亚马逊工具选品Jungle Scout正版插件和破解版的区别
  3. TensorFlow编写relu函数
  4. java 工具类-去除字符串中特殊字符、全角转为半脚、获取字符串中姓名/电话、姓名重复后追加a.b.c...aa,ab..
  5. 实战演练 | 如何在数据库中创建模型
  6. 【小程序源码】强大的多功能图片处理图片画框合成
  7. 成员函数指针与高性能的C++委托 (Member Function Pointers and the Fastest Possible C++ Delegates)...
  8. 信息学特长生是计算机几级,快看!信息学特长生中考加分!
  9. slf4j如何进行logback配置呢?
  10. 微软与中国小冰合作,用本地化AI打开行业数字化增值空间