pygame 笔记-1 按键控制方块移动
背景:家里的娃慢慢长大了,准备教一些儿童入门的编程知识,研究了一阵麻省理工的scratch 2 虽然不错,但是功能有限,很多高级点的东西玩不出来。所以就有了这一系列,先提前自学一下,顺便拿来练手python ~_^
pygame虽然不是做大型游戏的最好选择,但是入门却是不错,python也易于学习,官网的文档也算齐全。
先来一个最基本的代码:
import pygame pygame.init() win = pygame.display.set_mode((320, 240)) # 画布窗口的大小
pygame.display.set_caption("first game") # 窗口标题 x, y = 50, 50 # 方块的起点
width, height = 30, 30 # 方块的宽,高
speed = 5 # 速度 run = True
while run:
# 防止cpu占用过高
pygame.time.delay(20) for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False keys = pygame.key.get_pressed() # 方向箭头响应
if keys[pygame.K_LEFT]:
x -= speed if keys[pygame.K_RIGHT]:
x += speed if keys[pygame.K_UP]:
y -= speed if keys[pygame.K_DOWN]:
y += speed # 防止跑出边界
if x > win.get_size()[0] - width:
x = win.get_size()[0] - width if x < 0:
x = 0 if y > win.get_size()[1] - height:
y = win.get_size()[1] - height if y < 0:
y = 0 # 将每一帧的底色先填充成黑色
win.fill((0, 0, 0))
# 画方块
pygame.draw.rect(win, (255, 0, 0), (x, y, width, height))
# 更新画布
pygame.display.update() pygame.quit()
效果:
参考:
https://www.youtube.com/watch?v=i6xMBig-pP4
https://nerdparadise.com/programming/pygame/part1
https://www.pygame.org/docs/ref/surface.html
pygame 笔记-1 按键控制方块移动的更多相关文章
- FPGA学习笔记之按键控制
参考: [黑金原创教程][FPGA那些事儿-驱动篇I ]实验二:按键模块① - 消抖 源码如下: key_funcmod.v module key_funcmod(clk, rst, key, led ...
- zigbee学习之路(四):按键控制(中断方式)
一.前言 通过上次的学习,我们学习了如何用按键控制led,但是在实际应用中,这种查询方式占用了cpu的时间,如果通过中断控制就可以解决这个问题,我们今天就来学习按键控制的中断方式. 二.原理分析 传统 ...
- TJI读书笔记09-访问控制权限
TJI读书笔记09-访问控制权限 包,package和import 权限修饰符 接口和实现 类的访问权限控制 首先问一个问题,为什么要有访问控制权限? 安全,这当然是一个很重要的原因. 让类库的使用者 ...
- 通过joystick遥感和按键控制机器人--11
原创博客:转载请表明出处:http://www.cnblogs.com/zxouxuewei/ 1.首先安装joystick遥控器驱动: sudo apt-get install ros-indigo ...
- Android中通过耳机按键控制音乐播放的实现
今天在研究Android中实现Android 4.2.2源码中的Music应用的源码,关于通过耳机按键控制音乐播放的实现,有点好奇,就仔细分析了一下源码, 主要由 MediaButtonIntentR ...
- input子系统学习笔记六 按键驱动实例分析下【转】
转自:http://blog.chinaunix.net/uid-20776117-id-3212095.html 本文接着input子系统学习笔记五 按键驱动实例分析上接续分析这个按键驱动实例! i ...
- 使用canvas绘制渐变色矩形和使用按键控制人物移动
使用canvas绘制渐变色矩形和使用按键控制人物移动 1.使用canvas绘制渐变色矩形 效果演示 相关代码: <!DOCTYPE html> <html lang="en ...
- 强化学习读书笔记 - 10 - on-policy控制的近似方法
强化学习读书笔记 - 10 - on-policy控制的近似方法 学习笔记: Reinforcement Learning: An Introduction, Richard S. Sutton an ...
- 51单片机 小车 L298N pwm调速 串口控制 按键控制
难点:1.串口定时器T1,和T0定时器优先级 2.pwm频率与占空比的设置 按键控制 按键1——前进 按键2——后退 按键3——加速 按键4——减速 (板子上只有四个按键) 串口控制 ‘1’——前进 ...
随机推荐
- springmvc基础使用配置
前言 本案例是在idea编辑器下,maven管理项目的前提下. 步骤 1.新建maven项目 2.配置web.xml <?xml version="1.0" encoding ...
- Spring Boot Starters 列表
Spring Boot application starters 名称 描述 Pom spring-boot-starter 核心starter,包括自动配置支持,日志和YAML Pom spring ...
- P2024 [NOI2001]食物链 并查集
题目描述 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形.A 吃 B,B 吃 C,C 吃 A. 现有 N 个动物,以 1 - N 编号.每个动物都是 A,B,C 中的一种,但是我 ...
- P1040 加分二叉树 区间dp
题目描述 设一个nn个节点的二叉树tree的中序遍历为(1,2,3,…,n1,2,3,…,n),其中数字1,2,3,…,n1,2,3,…,n为节点编号.每个节点都有一个分数(均为正整数),记第ii个节 ...
- Python线程同步
线程执行 join与setDaemon 子线程在主线程运行结束后,会继续执行完,如果给子线程设置为守护线程(setDaemon=True),主线程运行结束子线程即结束: 如果join()线程,那么主线 ...
- list set接口之间的区别
list接口它的实现类,比如arraylist里面的值有序,并且可以重复.(有序指的是插入进去的顺序) set无序,且不可重复.(这里的无序就是指不是插入进去的顺序,但其实也不是真的无序,它会按照自己 ...
- Springboot集成ES启动报错
报错内容 None of the configured nodes are available elasticsearch.yml配置 cluster.name: fans node.name: no ...
- 上海市2019年公务员录用考试笔试合格人员笔试成绩(A类)
考试类别:A类 注册编号 总成绩 注册编号 总成绩 注册编号 总成绩 注册编号 总成绩 4016574 127.4 5112479 145.9 5125732 124.3 5141074 159.9 ...
- java date HHmmss hhmmss
系统交互时,用到时间流水号的设计,出现时间流水号相同的情况,故对时间格式化各种情况做了研究 SimpleDateFormat(format) format:年月日 yyyyMMdd时分秒 HHmm ...
- mysql主从配置和galera集群
mariadb主从 主从多用于网站架构,因为主从的同步机制是异步的,数据的同步有一定延迟,也就是说有可能会造成数据的丢失,但是性能比较好,因此网站大多数用的是主从架构的数据库,读写分离必须基于主从架构 ...