2018-10-18 22:49:01 [显示全部楼层]
15390浏览
查看: 15390|回复: 7

[入门教程] 【掌控】mpython-17…从一个点出发

[复制链接]
本周掌控开始了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]

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




安卓机器人  中级技神

发表于 2018-10-19 12:07:52

哈哈,学习了
回复

使用道具 举报

rzyzzxw  版主
 楼主|

发表于 2018-10-19 14:13:06


一起玩掌控。
回复

使用道具 举报

糖醋花生  高级技师

发表于 2022-6-10 09:37:26

宣传大使怎么获得?
回复

使用道具 举报

rzyzzxw  版主
 楼主|

发表于 2022-6-16 19:33:04

糖醋花生 发表于 2022-6-10 09:37
宣传大使怎么获得?

多多宣传推广社区
回复

使用道具 举报

糖醋花生  高级技师

发表于 2022-6-19 21:31:07

rzyzzxw 发表于 2022-6-16 19:33
多多宣传推广社区

就是让我同学登录么?
回复

使用道具 举报

rzyzzxw  版主
 楼主|

发表于 2022-6-19 21:53:58

糖醋花生 发表于 2022-6-19 21:31
就是让我同学登录么?

分享链接,宣传社区,发表帖子……
回复

使用道具 举报

糖醋花生  高级技师

发表于 2022-6-20 08:27:13

rzyzzxw 发表于 2022-6-19 21:53
分享链接,宣传社区,发表帖子……

那我就是给同学发DF的链接么,但我同学都看了呀我的宣传力也没变呀
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail