使用M5StickC绘制带有物理特性的小球(只与屏幕边框碰撞)
约莫有一年没有碰M5StickC了,最近打算用micropython制作一个生日礼物,所以特意回来熟悉熟悉一些基本操作。
不知道是多久以前写过一个Flutter版本的物理小球,写完以后感慨原来小球的物理效果是这样实现的。所以这次决定要在M5StickC上实现这个效果。(好像并没有什么直接联系,嘿嘿嘿)
分析
运动的小球具有速度(矢量)这一关键物理属性,还有颜色和大小两个次要的物理属性。在编程过程中,需将速度(矢量)分解为x轴方向速度和y轴方向速度。
过程
直接构建出小球的类
1 | class Ball: |
此时只要在主程序中创建一个Ball对象,然后循环调用Ball对象的update和render,就可以看到具有物理效果(伪)小球在屏幕中运动
下面编写游戏主循环,每当按下按钮A,就会生成一个新的球,按住则会一直生成
1 | balls = [] |
下面是固定数量的小球
1 | balls = [] |
代码头部引用的moduels
1 | from m5stack import lcd |
完整代码地址
效果
设备:M5StickC
环境: