【掌控】mpython-17…从一个点出发

2018-10-182万
AI 快速预览详细 收起
本文介绍了如何使用掌控板mPython进行编程,从画一个点开始,逐步实现点的左右移动、文字滚动显示以及随机运动的小星星。通过这些简单的代码示例,帮助初学者快速上手编程,激发孩子对编程的兴趣。适合STEM教育和少儿编程入门。
本周掌控开始了56人团队的公测,好多高手加入进来,软件也快速迭代,到今天(周4)已经更新了三次。

网易的郞咸蒙老师贡献了好多精彩案例。
感谢郞帮主,从他那儿学到了新知识。
这个帖子将从一个点开始……
【掌控】mpython-17…从一个点出发图1

【画一个点】
[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]

感谢郞老师为完善掌控生态做出的贡献。




创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(2)
糖醋花生
糖醋花生
宣传大使怎么获得?
糖醋花生
糖醋花生回复rzyzzxw
那我就是给同学发DF的链接么,但我同学都看了呀我的宣传力也没变呀
rzyzzxw
rzyzzxw
作者
回复糖醋花生
分享链接,宣传社区,发表帖子……
共4条回复,已加载2条,点击查看更多共4条回复,已加载全部
许培享
许培享
哈哈,学习了
rzyzzxw
rzyzzxw
作者
回复许培享
一起玩掌控。
- 没有更多了 -