rzyzzxw 发表于 2018-10-18 22:49:01

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

本周掌控开始了56人团队的公测,好多高手加入进来,软件也快速迭代,到今天(周4)已经更新了三次。

网易的郞咸蒙老师贡献了好多精彩案例。
感谢郞帮主,从他那儿学到了新知识。
这个帖子将从一个点开始……


【画一个点】
# 画一个点
from mpython import *

display.fill(0)
display.pixel(10,10,1) # 做一个点在10,10
display.show()
   

【让这个点向右动起来】
http://v.youku.com/v_show/id_XMzg3NjQ1NDE2NA==.html?spm=a2h3j.8428770.3416059.1

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)    #延时,改变它也可以调节运动速度


【练习1】让这个点从右向左走

【让一行字滚动向左显示】

效果:
http://v.youku.com/v_show/id_XMzg3NjA3OTg4OA==.html?spm=a2h3j.8428770.3416059.1

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)

【练习】让一行字向上滚动

效果:
http://v.youku.com/v_show/id_XMzg3NjA4MDcyNA==.html?spm=a2h3j.8428770.3416059.1

参考代码:
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)

【向右运动的小星星】郞帮主代码
http://v.youku.com/v_show/id_XMzg3NjQ1NDU1Ng==.html?spm=a2h3j.8428770.3416059.1

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)
   
【随机运动的小星星】
我改了下郞老师代码,加上随机数。
http://v.youku.com/v_show/id_XMzg3NjQ1NTA2OA==.html?spm=a2h3j.8428770.3416059.1

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)
   

【拓展练习】1、一条水平或者垂线的移动
2、一个方形的上下左右移动
3、其它移动的创意并想办法用代码实现

【郞帮主代码欣赏】

我的心下雪了

你会听见吗美丽的阿伽拉你还在想着他
http://v.youku.com/v_show/id_XMzg3NjA4MjIxMg==.html?spm=a2h3j.8428770.3416059.1
# 本代码作者网易郞咸蒙老师
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()
   
   

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




安卓机器人 发表于 2018-10-19 12:07:52

{:5_125:}哈哈,学习了

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

安卓机器人 发表于 2018-10-19 12:07
哈哈,学习了

{:5_185:}一起玩掌控。

糖醋花生 发表于 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的链接么,但我同学都看了呀我的宣传力也没变呀
页: [1]
查看完整版本: 【掌控】mpython-17…从一个点出发