Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from m5stack import *
- from m5ui import *
- from uiflow import *
- setScreenColor(0x222222)
- rect = M5Rect(155, 115, 10, 10, 0x0000FF, 0x0000FF)
- joystick = unit.get(unit.JOYSTICK, unit.PORTA)
- x,y = 155,115
- while True:
- # Смещаем координаты джойстика на 120 влево и 120 вниз, чтобы состояние покоя
- # (когда стик ровно в центре) соответствовало коорднатам [0;0]
- jx = joystick.X - 120
- jy = joystick.Y - 120
- # при отклонении стика более, чем на 40 пунктов,
- # относительно центра. Прибаляется к координате прошлого положения
- # результат целочисленного деления на 30, нормализировнной координаты JX,
- # что позволяет нам при бОльшем отклонении от центра,
- #увеличивать скорость движения квадрата
- if -40 < jx < 40:
- x+= jx // 30
- # те же действия, только для координаты Y. Так как Y в верхнем положении равен
- # -120, (то есть изменяется сверху вниз), ставим перед знаком равно минус,
- # чтобы инвертировать показания, для правильности перемещений
- if -40 < jy < 40:
- y-= jy // 30
- # при нажатии на кнопку джойстика, помещаем квадрат обратно в центр экрана.
- if joystick.Press: x,y = 155,115
- rect.setPosition(x,y)
- wait(0.1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement