Игровой кубик на M5Stack

25 декабря 2019
Для настольных игр требуется кубик. Они бывают очень разные, у некоторых шесть сторон, у некоторых больше, у одних на гранях изображены цифры, у других символы, но у всех из них есть проблема - они теряются!

Untitled Document.md

Сегодня мы сделаем Цифровой кубик. Для того, что бы его сделать понадобится только M5Stack.

У нас будет самый обычный кубик с 6 гранями, на которых написаны цифры от 1 до 6.

Каждая сторона кубика - это изображение, поэтому нам необходимо подготовить и загрузить на карту памяти 6 изображений в формате .jpg назвав их 1.jpg,2.jpg и так далее.

Теперь пора определиться с тем, как будет работать наш кубик. Просто демонстрировать случайную картинку - не интересно и не так зрелищно, поэтому при “виртуальном броске” будут в случайном порядке показываться разные стороны кубика, замирая на последнем.

void randomise()
{
  
  int times = random(20, 40);
  char myStr1[20];
  M5.Lcd.setCursor(100,100 );
  for (int i=0;i<times;i+=1)
  {

    String s = "/Dice/" + String(random(1, 7)) +".jpg";
    s.toCharArray(myStr1, s.length()+1);
      M5.Lcd.drawJpgFile(SD,myStr1,60,20);
    delay(10);
  }
}

Итак, что делает функция randomise() - она случайное число раз показывает случайное изображение одной из сторон. Последнее показанное число - и есть результат броска.


Для того, что бы мы могли бросать кубик постоянно, будем запускать эту функцию каждый раз, когда была нажата средняя кнопка.

void setup() {
  M5.begin();

  M5.Power.begin();
}

void loop(){

  M5.update();

  if (M5.BtnB.wasReleased()) {
      randomise();
  }
}

Поздравляю, теперь вы можете сделать свои собственные кубики для ваших любимых игр!


Данная статья является собственностью Amperkot.ru. При перепечатке данного материала активная ссылка на первоисточник, не закрытая для индексации поисковыми системами, обязательна.


Поделиться: