15390| 7
|
[入门教程] 【掌控】mpython-17…从一个点出发 |
本周掌控开始了56人团队的公测,好多高手加入进来,软件也快速迭代,到今天(周4)已经更新了三次。 网易的郞咸蒙老师贡献了好多精彩案例。 感谢郞帮主,从他那儿学到了新知识。 这个帖子将从一个点开始…… ![]() 【画一个点】 [mw_shl_code=python,true]# 画一个点 from mpython import * display.fill(0) display.pixel(10,10,1) # 做一个点在10,10 display.show() [/mw_shl_code] 【让这个点向右动起来】 [mw_shl_code=python,true]from mpython import * # 导入掌控库 from time import sleep_ms # 导入时间库,代码要用到延时 # 左右运动要改变X坐标的值 x = 0 # 初始化X为0 vx = 1 # 速度变量 while True: x += vx # 这句等于 x = x + vx display.fill(0) # 清屏 display.pixel(x,10,1) # 画一点在 x,10,点亮 因为x = x + vx,所以向右运动 if x > 128: # 如果x>128,归零,从头开始 x = 0 display.show() # 刷新 sleep_ms(10) #延时,改变它也可以调节运动速度 [/mw_shl_code] 【练习1】让这个点从右向左走 【让一行字滚动向左显示】 效果: [mw_shl_code=python,true]from mpython import * from time import sleep_ms x = 128 vx = -4 while True: x = x + vx display.fill(0) display.DispChar("爱上掌控板", x, 10) if x < -50: x = 128 display.show() sleep_ms(1)[/mw_shl_code] 【练习】让一行字向上滚动 效果: 参考代码: [mw_shl_code=python,true]from mpython import * from time import sleep_ms y = 64 vy = -2 while True: y = y + vy display.fill(0) display.DispChar("爱上掌控板", 10, y) if y < 0: y = 64 display.show() sleep_ms(1)[/mw_shl_code] 【向右运动的小星星】郞帮主代码 [mw_shl_code=python,true]from mpython import * from time import sleep_ms x = 0 vx = 1 while True: x += vx display.fill(0) display.pixel(x,10,1) display.pixel(x,9,1) display.pixel(x,11,1) display.pixel(x+1,10,1) display.pixel(x-1,10,1) if x > 128: x = 0 display.show() sleep_ms(10) [/mw_shl_code] 【随机运动的小星星】 我改了下郞老师代码,加上随机数。 [mw_shl_code=python,true]from mpython import * from time import sleep_ms import random x = 0 vx = 5 y = 0 while True: x += vx y = random.randint(6, 58) display.fill(0) display.pixel(x, y + 1, 1) display.pixel(x, y, 1) display.pixel(x, y + 2, 1) display.pixel(x+1, y + 1, 1) display.pixel(x-1, y + 1, 1) if x > 128: x = 0 display.show() sleep_ms(1) [/mw_shl_code] 【拓展练习】1、一条水平或者垂线的移动 2、一个方形的上下左右移动 3、其它移动的创意并想办法用代码实现 【郞帮主代码欣赏】 我的心下雪了 你会听见吗 美丽的阿伽拉 你还在想着他 [mw_shl_code=python,true]# 本代码作者网易郞咸蒙老师 from mpython import * from time import sleep_ms from random import randint from collections import deque class Ball(): def __init__(self): self.x = randint(0,128) self.y = 0 self.vx = 0 self.vy = randint(1,5) def run(self): self.update() self.display() def update(self): self.x += self.vx self.y += self.vy if self.x > 128 or self.x < 0: self.x = randint(0,128) if self.y > 64 or self.y < 0: self.y = 0 def display(self): display.pixel(self.x,self.y,1) balls = [] for x in range(50): balls.append(Ball()) while True: sleep_ms(10) display.fill(0) for b in balls: b.run() display.show() [/mw_shl_code] 感谢郞老师为完善掌控生态做出的贡献。 |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed