背景:家里的娃慢慢长大了,准备教一些儿童入门的编程知识,研究了一阵麻省理工的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 按键控制方块移动的更多相关文章

  1. FPGA学习笔记之按键控制

    参考: [黑金原创教程][FPGA那些事儿-驱动篇I ]实验二:按键模块① - 消抖 源码如下: key_funcmod.v module key_funcmod(clk, rst, key, led ...

  2. zigbee学习之路(四):按键控制(中断方式)

    一.前言 通过上次的学习,我们学习了如何用按键控制led,但是在实际应用中,这种查询方式占用了cpu的时间,如果通过中断控制就可以解决这个问题,我们今天就来学习按键控制的中断方式. 二.原理分析 传统 ...

  3. TJI读书笔记09-访问控制权限

    TJI读书笔记09-访问控制权限 包,package和import 权限修饰符 接口和实现 类的访问权限控制 首先问一个问题,为什么要有访问控制权限? 安全,这当然是一个很重要的原因. 让类库的使用者 ...

  4. 通过joystick遥感和按键控制机器人--11

    原创博客:转载请表明出处:http://www.cnblogs.com/zxouxuewei/ 1.首先安装joystick遥控器驱动: sudo apt-get install ros-indigo ...

  5. Android中通过耳机按键控制音乐播放的实现

    今天在研究Android中实现Android 4.2.2源码中的Music应用的源码,关于通过耳机按键控制音乐播放的实现,有点好奇,就仔细分析了一下源码, 主要由 MediaButtonIntentR ...

  6. input子系统学习笔记六 按键驱动实例分析下【转】

    转自:http://blog.chinaunix.net/uid-20776117-id-3212095.html 本文接着input子系统学习笔记五 按键驱动实例分析上接续分析这个按键驱动实例! i ...

  7. 使用canvas绘制渐变色矩形和使用按键控制人物移动

    使用canvas绘制渐变色矩形和使用按键控制人物移动 1.使用canvas绘制渐变色矩形 效果演示 相关代码: <!DOCTYPE html> <html lang="en ...

  8. 强化学习读书笔记 - 10 - on-policy控制的近似方法

    强化学习读书笔记 - 10 - on-policy控制的近似方法 学习笔记: Reinforcement Learning: An Introduction, Richard S. Sutton an ...

  9. 51单片机 小车 L298N pwm调速 串口控制 按键控制

    难点:1.串口定时器T1,和T0定时器优先级 2.pwm频率与占空比的设置 按键控制 按键1——前进 按键2——后退 按键3——加速 按键4——减速 (板子上只有四个按键) 串口控制 ‘1’——前进 ...

随机推荐

  1. Codeforces 765F Souvenirs 线段树 + 主席树 (看题解)

    Souvenirs 我们将询问离线, 我们从左往右加元素, 如果当前的位置为 i ,用一棵线段树保存区间[x, i]的答案, 每次更新完, 遍历R位于 i 的询问更新答案. 我们先考虑最暴力的做法, ...

  2. k8s 相关命令

    kompose convert -f docker-compose-pro.yml k8s数据卷挂载: https://blog.csdn.net/wlhdo71920145/article/deta ...

  3. php5.6安装redis各个版本地址集合

    igbinary扩展 http://windows.php.net/downloads/pecl/releases/igbinary/2.0.1/ redis扩展 http://windows.php ...

  4. C#基础:委托之Action<T>和Func<T>的用法

  5. List接口相对于Collection接口的特有方法

    [添加功能] 1 void add(int index,Object element); // 在指定位置添加一个元素. [获取功能] 1 Object get(int index); // 获取指定 ...

  6. ibatis的queyrForList和queryForMap区别

    https://blog.csdn.net/z69183787/article/details/47360825 https://blog.csdn.net/zyq527758142/article/ ...

  7. Python图表数据可视化Seaborn:3. 线性关系数据| 时间线图表| 热图

    1. 线性关系数据可视化 lmplot( ) import numpy as np import pandas as pd import matplotlib.pyplot as plt import ...

  8. 010 pandas的DataFrame

    一:创建 1.通过二维数组进行创建 2.取值 取列,取位置的值 3.切片取值 这个和上面的有些不同,这里先取行,再取列 4.设定列索引 这里使用的行索引与上面不同. 5.通过字典的方式创建 6.索引 ...

  9. KMP算法2

    给定一个主串s,一个子串sub,将主串中的所有子串替换成replaceStr,并将最终结果输出来. #include<stdio.h> #include<string.h> # ...

  10. POJ 1470 Closest Common Ancestors (模板题)(Tarjan离线)【LCA】

    <题目链接> 题目大意:给你一棵树,然后进行q次询问,然后要你统计这q次询问中指定的两个节点最近公共祖先出现的次数. 解题分析:LCA模板题,下面用的是离线Tarjan来解决.并且为了代码 ...