Micropython学习交流群 学习QQ群:786510434 提供多种固件下载和学习交流。

Micropython-扇贝物联 QQ群:31324057 扇贝物联是一个让你与智能设备沟通更方便的物联网云平台

Micropython学习交流群 学习QQ群:468985481 学习交流ESP8266、ESP32、ESP8285、wifi模块开发交流、物联网。

Micropython老哥俩的IT农场分享QQ群:929132891 为喜欢科创制作的小白们分享一些自制的计算机软硬件免费公益课程,由两位多年从事IT研发的中年大叔发起。

Micropython ESP频道

ESP32(MicroPthon) SSD1306 动画:方块反弹


ESP32(MicroPthon) 动画:方块反弹

本程序生成方块后滚动显示,使方块斜向移动,并记录方块当前坐标和上一个坐标。根据当前坐标判断方块移动到屏幕边缘后根据上一个坐标与当前坐标的差得出方块的移动方向,并据此改变方块移动方向以实现方块反弹效果。


代码如下


'''

接线:OLED(IIC)

       SCL-->(18)

       SDA-->(23)         

'''

 

#导入Pin模块

from machine import Pin

import time

from machine import SoftI2C

from ssd1306 import SSD1306_I2C  #I2C的oled选该方法

import random

 

#创建硬件I2C对象

#i2c=I2C(0,sda=Pin(19), scl=Pin(18), freq=400000)

 

#创建软件I2C对象

i2c = SoftI2C(sda=Pin(2), scl=Pin(15))

#创建OLED对象,OLED分辨率、I2C接口

oled = SSD1306_I2C(128, 64, i2c)

 

 

#程序入口

if __name__=="__main__":

    x=20 #记录坐标

    y=1

    fx=20 #记录上一个坐标

    fy=1

    flag=0    

    oled.rect(20,1,9,9,1)  #画矩形

    oled.fill_rect(23,4,3,3,1)

    oled.show()  #执行显示    

    while True:

        if flag==0:

            oled.scroll(1,1) #向右下方移动 

            oled.show()  #执行显示 

            fx=x

            fy=y

            x+=1

            y+=1

        if flag==1:

            oled.scroll(1,-1) #向右上方移动 

            oled.show()  #执行显示

            fx=x

            fy=y

            x+=1

            y-=1

        if flag==2:

            oled.scroll(-1,-1) #向左上方移动 

            oled.show()  #执行显示

            fx=x

            fy=y

            x-=1

            y-=1       

        if flag==3:

            oled.scroll(-1,1) #向左下方移动 

            oled.show()  #执行显示

            fx=x

            fy=y

            x-=1

            y+=1

        if y==53 and x-fx==1 : 

            flag=1

        if y==53 and x-fx==-1 :

            flag=2

        if x==117 and y-fy==1 :

            flag=2

        if x==117 and y-fy==-1 :

            flag=3

        if y==1 and x-fx==1 :

            flag=0

        if y==1 and x-fx==-1 :

            flag=3

        if x==1 and y-fy==1 :

            flag=0

        if x==1 and y-fy==-1 :

            flag=1

        if x==1 and y==1:

            flag=0

        if x==117 and y==53:

            flag=2

        if x==117 and y==1:

            flag=3

        if x==1 and y==53:

            flag=1    


————————————————

版权声明:本文为CSDN博主「路易斯720」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_74155302/article/details/131316415



推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 ESP56.com All Rights Reserved

执行时间: 0.007544994354248 seconds