Hackster is hosting Hackster Holidays, Ep. 6: Livestream & Giveaway Drawing. Watch previous episodes or stream live on Monday!Stream Hackster Holidays, Ep. 6 on Monday!
gakepuchi
Published © GPL3+

M5Stack Christmas Homebrew game

We have programmed a game to give to children.

BeginnerFull instructions providedOver 2 days507
M5Stack Christmas Homebrew game

Things used in this project

Hardware components

ESP32 Basic Core IoT Development Kit
M5Stack ESP32 Basic Core IoT Development Kit
×1

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Schematics

20210102_175359_nkEWlLxArT.jpg

Code

moguratataki

Arduino
psrsonal use only
#define LOAD_FONT4
#include <M5Stack.h>
int Acount;  // Amogura ugoki
int Aattack; // kougeki
int Bcount;  // Bmogura ugoki
int Battack; // kougeki
int Ccount;  // Cmogura ugoki
int Cattack; // kougeki
int Dcount;  // Dmogura ugoki
int Dattack; // kougeki
int Ecount;  // Emogura ugoki
int Eattack; // kougeki
int Fcount;  // Fmogura ugoki
int Fattack; // kougeki
int score;  //  score
int timer;  //  timer
int placeA;  // basyo(takasa)
int placeB;  // basyo(yoko)

void setup() {
  M5.begin();
  Acount = random(-200, -10);
  Aattack = 0;
  Bcount = random(-200, -10);
  Battack = 0;
  Ccount = random(-200, -10);
  Cattack = 0;
  Dcount = random(-200, -10);
  Dattack = 0;
  Ecount = random(-200, -10);
  Eattack = 0;
  Fcount = random(-200, -10);
  Fattack = 0;
  score = 0;
  timer = 0;
  placeA = 0;  //basyo(takasa) 0.1
  placeB = 1;  //basyo(yoko) 0.1.2

  randomSeed(analogRead(0));
  HAIKEI();
  HAMMERA(145, 61);
  
   // icom----------------------------------------
  JOUGEicom();
  SAYUUicom();
  HAMMERicom();
  ANA0(10, 95);
  //HAMMERA(45, 61);
  //HAMMERB(33, 62);
  ANA0(110, 95);
  //HAMMERA(145, 61);
  //HAMMERB(133, 62);
  ANA0(210, 95);
  //HAMMERA(245, 61);
  //HAMMERB(233, 62);
  ANA0(40, 170);
  //HAMMERA(75, 136);
  //HAMMERB(63, 137);
  ANA0(140, 170);
  //HAMMERA(175, 136);
  //HAMMERB(163, 137);
  ANA0(240, 170);
  //HAMMERA(275, 136);
  //HAMMERB(263, 137);
  // score----------------------------------------
  M5.Lcd.drawCentreString("SCORE", 240, 40, 2);
  M5.Lcd.drawNumber(score, 275, 40, 2);
}

void loop() {
  // timer----------------------------------------
  if(timer == 0){
    TIMER0();
  }
  if(timer == 75){
    TIMER7();
  }
  if(timer == 150){
    TIMER15();
  }
  if(timer == 225){
    TIMER22();
  }
  if(timer == 300){
    TIMER30();
  }
  if(timer == 375){
    TIMER37();
  }
  if(timer == 450){
    TIMER45();
  }
  if(timer == 525){
    TIMER52();
  }
  if(timer == 600){
    TIMER0();
    M5.Lcd.drawCentreString("TIME UP", 160, 90, 4);
    delay(200000);  
  }

  // hummer----------------------------------------
  if(placeA == 0){
      if(placeB == 0){
      GREENBACK();
      HAMMERA(45, 61);
             if(M5.BtnC.isPressed()){
             GREENBACK();
             HAMMERB(33, 62);
             Aattack = 1;
             }
      }
      if(placeB == 1){
      GREENBACK();
      HAMMERA(145, 61);
             if(M5.BtnC.isPressed()){
             GREENBACK();
             HAMMERB(133, 62);
             Battack = 1;
             }
      }
      if(placeB == 2){
      GREENBACK();
      HAMMERA(245, 61);
             if(M5.BtnC.isPressed()){
             GREENBACK();
             HAMMERB(233, 62);
             Cattack = 1;
             }
      }
  }
  if(placeA == 1){
      if(placeB == 0){
      GREENBACK();
      HAMMERA(63, 136);
             if(M5.BtnC.isPressed()){
             GREENBACK();
             HAMMERB(63, 137);
             Dattack = 1;
             }
      }
      if(placeB == 1){
      GREENBACK();
      HAMMERA(175, 136);
             if(M5.BtnC.isPressed()){
             GREENBACK();
             HAMMERB(163, 137);
             Eattack = 1;
             }
      }
      if(placeB == 2){
      GREENBACK();
      HAMMERA(275, 136);
             if(M5.BtnC.isPressed()){
             GREENBACK();
             HAMMERB(263, 137);
             Fattack = 1;
             }
      }
  }
  if(placeA == 2){
    placeA = 0;
  }
  if(placeB == 3){
    placeB = 0;
  }
  
  // moguraのカウンタup-------------------------------------
  Acount = Acount +1;
  Bcount = Bcount +1;
  Ccount = Ccount +1;
  Dcount = Dcount +1;
  Ecount = Ecount +1;
  Fcount = Fcount +1;
   
  // ボタン操作-----------------------------------------
  if(M5.BtnA.wasPressed()){
    placeA = placeA+1;
  }
    if(M5.BtnB.wasPressed()){
    placeB = placeB+1;
  }
  
  // 穴Aの動き------------------------------------
  if(Acount == 0){
        ANA1(10, 95);
  }
  if(Acount == 50){
        ANA2(10, 95);
  }
  if((Acount >= 50)&&(Acount <= 70)&&(Aattack == 1)){
        ANA3(10, 95);
        score = score+100;
        M5.Lcd.drawNumber(score, 275, 40, 2);
  }     
  if(Acount == 70){
    ANA0(10, 95);
    Acount = random(-300, -10);
  }
 
  // 穴Bの動き------------------------------------
  if(Bcount == 0){
        ANA1(110, 95);
  }
  if(Bcount == 50){
        ANA2(110, 95);
  }
  if((Bcount >= 50)&&(Bcount <= 70)&&(Battack == 1)){
        ANA3(110, 95);
        score = score+100;
        M5.Lcd.drawNumber(score, 275, 40, 2);
  }     
  if(Bcount == 70){
    ANA0(110, 95);
    Bcount = random(-300, -10);
  }
  
  // 穴Cの動き------------------------------------
  if(Ccount == 0){
        ANA1(210, 95);
  }
  if(Ccount == 50){
        ANA2(210, 95);
  }
  if((Ccount >= 50)&&(Ccount <= 70)&&(Cattack == 1)){
        ANA3(210, 95);
        score = score+100;
        M5.Lcd.drawNumber(score, 275, 40, 2);
  }     
  if(Ccount == 70){
    ANA0(210, 95);
    Ccount = random(-300, -10);
  }
  
  // 穴Dの動き------------------------------------
  if(Dcount == 0){
        ANA1(40, 170);
  }
  if(Dcount == 50){
        ANA2(40, 170);
  }
  if((Dcount >= 50)&&(Dcount <= 70)&&(Dattack == 1)){
        ANA3(40, 170);
        score = score+100;
        M5.Lcd.drawNumber(score, 275, 40, 2);
  }     
  if(Dcount == 70){
    ANA0(40, 170);
    Dcount = random(-300, -10);
  }
  
  // 穴Eの動き-0から5まで-----------------------------------
  if(Ecount == 0){
        ANA1(140, 170);
  }
  if(Ecount == 50){
        ANA2(140, 170);
  }
  if((Ecount >= 50)&&(Ecount <= 70)&&(Eattack == 1)){
        ANA3(140, 170);
        score = score+100;
        M5.Lcd.drawNumber(score, 275, 40, 2);
  }     
  if(Ecount == 70){
    ANA0(140, 170);
    Ecount = random(-300, -10);
  }
  
  // 穴Fの動き-0から5まで-----------------------------------
  if(Fcount == 0){
        ANA1(240, 170);
  }
  if(Fcount == 50){
        ANA2(240, 170);
  }
  if((Fcount >= 50)&&(Fcount <= 70)&&(Fattack == 1)){
        ANA3(240, 170);
        score = score+100;
        M5.Lcd.drawNumber(score, 275, 40, 2);
  }     
  if(Fcount == 70){
    ANA0(240, 170);
    Fcount = random(-300, -10);
  }

  Aattack = 0; //attack reset
  Battack = 0; //attack reset
  Cattack = 0; //attack reset
  Dattack = 0; //attack reset
  Eattack = 0; //attack reset
  Fattack = 0; //attack reset

  delay(30);
  timer = timer+1;
  M5.update();
}

   // TIMER0----------------------------------------
void TIMER0() { 
  M5.lcd.fillEllipse(30, 30, 25, 25, 0x0000); //横位置 縦位置 横 縦 waku
  M5.lcd.fillEllipse(30, 30, 20, 20, 0xffff); //横位置 縦位置 横 縦 waku
  M5.lcd.fillRect(28, 14, 4, 22, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(26, 22, 8, 12, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(24, 28, 12, 4, 0x0000); //横位置 縦位置 横 縦 hari
}

   // TIMER7.5----------------------------------------
void TIMER7() { 
  //M5.lcd.fillEllipse(30, 30, 25, 25, 0x0000); //横位置 縦位置 横 縦 waku
  M5.lcd.fillEllipse(30, 30, 20, 20, 0xffff); //横位置 縦位置 横 縦 waku
  M5.lcd.fillRect(24, 28, 2, 4, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(26, 26, 2, 8, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(28, 24, 4, 12, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(32, 22, 2, 12, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(34, 22, 2, 10, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(36, 20, 2, 8, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(38, 18, 2, 6, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(40, 18, 2, 4, 0x0000); //横位置 縦位置 横 縦 hari
}
    
   // TIMER15----------------------------------------
void TIMER15() {
  //M5.lcd.fillEllipse(30, 30, 25, 25, 0x0000); //横位置 縦位置 横 縦 waku
  M5.lcd.fillEllipse(30, 30, 20, 20, 0xffff); //横位置 縦位置 横 縦 waku
  M5.lcd.fillRect(28, 24, 4, 12, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(26, 26, 12, 8, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(24, 28, 22, 4, 0x0000); //横位置 縦位置 横 縦 hari
}  

    // TIMER22.5----------------------------------------
void TIMER22() {
  //M5.lcd.fillEllipse(30, 30, 25, 25, 0x0000); //横位置 縦位置 横 縦 waku
  M5.lcd.fillEllipse(30, 30, 20, 20, 0xffff); //横位置 縦位置 横 縦 waku
  M5.lcd.fillRect(24, 28, 2, 4, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(26, 26, 2, 8, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(28, 24, 4, 12, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(32, 26, 2, 12, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(34, 28, 2, 10, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(36, 32, 2, 8, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(38, 36, 2, 6, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(40, 38, 2, 4, 0x0000); //横位置 縦位置 横 縦 hari  
}
    
   // timer30----------------------------------------
void TIMER30() {
  //M5.lcd.fillEllipse(30, 30, 25, 25, 0x0000); //横位置 縦位置 横 縦 waku
  M5.lcd.fillEllipse(30, 30, 20, 20, 0xffff); //横位置 縦位置 横 縦 waku
  M5.lcd.fillRect(28, 24, 4, 22, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(26, 26, 8, 12, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(24, 28, 12, 4, 0x0000); //横位置 縦位置 横 縦 hari
}

   // timer37.5----------------------------------------
void TIMER37() {
  //M5.lcd.fillEllipse(30, 30, 25, 25, 0x0000); //横位置 縦位置 横 縦 waku
  M5.lcd.fillEllipse(30, 30, 20, 20, 0xffff); //横位置 縦位置 横 縦 waku
  M5.lcd.fillRect(18, 38, 2, 4, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(20, 36, 2, 6, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(22, 32, 2, 8, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(24, 28, 2, 10, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(26, 26, 2, 12, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(28, 24, 4, 12, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(32, 26, 2, 8, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(34, 28, 2, 4, 0x0000); //横位置 縦位置 横 縦 hari  
}
    
   // timer45----------------------------------------
void TIMER45() {
  //M5.lcd.fillEllipse(30, 30, 25, 25, 0x0000); //横位置 縦位置 横 縦 waku
  M5.lcd.fillEllipse(30, 30, 20, 20, 0xffff); //横位置 縦位置 横 縦 waku
  M5.lcd.fillRect(28, 24, 4, 12, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(22, 26, 12, 8, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(14, 28, 22, 4, 0x0000); //横位置 縦位置 横 縦 hari
}

   // timer52.5----------------------------------------
void TIMER52() {
  //M5.lcd.fillEllipse(30, 30, 25, 25, 0x0000); //横位置 縦位置 横 縦 waku
  M5.lcd.fillEllipse(30, 30, 20, 20, 0xffff); //横位置 縦位置 横 縦 waku
  M5.lcd.fillRect(18, 18, 2, 4, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(20, 18, 2, 6, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(22, 20, 2, 8, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(24, 22, 2, 10, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(26, 22, 2, 12, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(28, 24, 4, 12, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(32, 26, 2, 8, 0x0000); //横位置 縦位置 横 縦 hari
  M5.lcd.fillRect(34, 28, 2, 4, 0x0000); //横位置 縦位置 横 縦 hari
}

   // jouge-icom---------------------------------------
void JOUGEicom() {
  M5.lcd.fillRect(67, 220, 2, 16, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(66, 221, 4, 14, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(65, 221, 6, 12, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(64, 223, 8, 1, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(63, 224, 10, 1, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(62, 225, 12, 1, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(62, 230, 12, 1, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(63, 231, 10, 1, 0xffff); //横位置 縦位置 横 縦  
  M5.lcd.fillRect(64, 232, 8, 1, 0xffff); //横位置 縦位置 横 縦
}

   // sayuu-icom---------------------------------------
void SAYUUicom() {
  M5.lcd.fillRect(159, 221, 1, 14, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(160, 222, 1, 12, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(161, 223, 1, 10, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(162, 224, 1, 8, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(152, 225, 12, 6, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(164, 226, 1, 4, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(165, 227, 1, 2, 0xffff); //横位置 縦位置 横 縦
}
 
   // hammer-icom---------------------------------------
void HAMMERicom() {
  M5.lcd.fillRect(252, 220, 2, 1, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(251, 221, 4, 1, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(250, 222, 6, 1, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(249, 223, 8, 1, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(248, 224, 9, 1, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(247, 225, 9, 1, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(246, 226, 9, 1, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(245, 227, 9, 2, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(246, 229, 6, 1, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(247, 230, 4, 1, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(248, 231, 2, 1, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(247, 222, 2, 2, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(253, 228, 2, 2, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(254, 229, 2, 2, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(255, 230, 2, 2, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(256, 231, 2, 2, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(257, 232, 2, 2, 0xffff); //横位置 縦位置 横 縦
  M5.lcd.fillRect(258, 233, 2, 2, 0xffff); //横位置 縦位置 横 縦
}

  // ANA0----------------------------------------
void ANA0(int x, int y) {
  M5.lcd.fillEllipse(35+x, 19+y, 16, 9, 0x1c43); //横位置 縦位置 横半径 haikei
  M5.lcd.fillEllipse(35+x, 30+y, 35, 13, 0x8a22); //横位置 縦位置 横半径 穴外
  M5.lcd.fillEllipse(35+x, 18+y, 7, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(21+x, 19+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(8+x, 25+y, 7, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(48+x, 19+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(55+x, 25+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(60+x, 28+y, 7, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(65+x, 25+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(35+x, 30+y, 30, 8, 0x7800); //横位置 縦位置 横半径 穴内
  M5.lcd.fillEllipse(35+x, 43+y, 7, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(21+x, 42+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(8+x, 38+y, 7, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(3+x, 29+y, 5, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(48+x, 41+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(68+x, 34+y, 5, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(65+x, 35+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(60+x, 40+y, 5, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
}

  // ANA1----------------------------------------
void ANA1(int x, int y) {
  M5.lcd.fillEllipse(35+x, 30+y, 35, 13, 0x8a22); //横位置 縦位置 横半径 穴外
  M5.lcd.fillEllipse(35+x, 18+y, 7, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(21+x, 19+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(8+x, 25+y, 7, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(48+x, 19+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(55+x, 25+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(60+x, 28+y, 7, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(65+x, 25+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(35+x, 30+y, 30, 8, 0x7800); //横位置 縦位置 横半径 穴内
  M5.lcd.fillEllipse(35+x, 37+y, 16, 7, 0x0000); //横位置 縦位置 横半径 mogura
  M5.lcd.fillEllipse(35+x, 43+y, 7, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(21+x, 42+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(8+x, 38+y, 7, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(3+x, 29+y, 5, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(48+x, 41+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(68+x, 34+y, 5, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(65+x, 35+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(60+x, 40+y, 5, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
}

  // ANA2----------------------------------------
void ANA2(int x, int y) {
  M5.lcd.fillEllipse(35+x, 30+y, 35, 13, 0x8a22); //横位置 縦位置 横半径 穴外
  M5.lcd.fillEllipse(35+x, 18+y, 7, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(21+x, 19+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(8+x, 25+y, 7, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(48+x, 19+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(55+x, 25+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(60+x, 28+y, 7, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(65+x, 25+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(35+x, 30+y, 30, 8, 0x7800); //横位置 縦位置 横半径 穴内
  M5.lcd.fillEllipse(35+x, 37+y, 16, 7, 0x0000); //横位置 縦位置 横半径 mogura
  M5.lcd.fillEllipse(35+x, 19+y, 16, 9, 0x0000); //横位置 縦位置 横半径 mogura
  M5.lcd.fillRect(19+x, 19+y, 34, 25, 0x0000); //横位置 縦位置 横 縦 mogura
  M5.lcd.fillRect(19+x, 24+y, 34, 4, 0xffff); //横位置 縦位置 横 縦 mogura me  
  M5.lcd.fillEllipse(32+x, 25+y, 6, 6, 0xffff); //横位置 縦位置 横半径 mogura me
  M5.lcd.fillEllipse(32+x, 25+y, 4, 4, 0x0000); //横位置 縦位置 横半径 mogura me
  M5.lcd.fillRect(33+x, 25+y, 2, 3, 0xffff); //横位置 縦位置 横半径 mogura me
  M5.lcd.fillEllipse(44+x, 25+y, 6, 6, 0xffff); //横位置 縦位置 横半径 mogura me
  M5.lcd.fillEllipse(44+x, 25+y, 4, 4, 0x0000); //横位置 縦位置 横半径 mogura me
  M5.lcd.fillRect(43+x, 25+y, 2, 3, 0xffff); //横位置 縦位置 横半径 mogura me
  M5.lcd.fillEllipse(35+x, 43+y, 7, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(21+x, 42+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(8+x, 38+y, 7, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(3+x, 29+y, 5, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(48+x, 41+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(68+x, 34+y, 5, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(65+x, 35+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(60+x, 40+y, 5, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
}
  // ANA3----------------------------------------
void ANA3(int x, int y) {
  M5.lcd.fillEllipse(35+x, 30+y, 35, 13, 0x8a22); //横位置 縦位置 横半径 穴外
  M5.lcd.fillEllipse(35+x, 18+y, 7, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(21+x, 19+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(8+x, 25+y, 7, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(48+x, 19+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(55+x, 25+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(60+x, 28+y, 7, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(65+x, 25+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(35+x, 30+y, 30, 8, 0x7800); //横位置 縦位置 横半径 穴内
  M5.lcd.fillEllipse(35+x, 37+y, 16, 7, 0x0000); //横位置 縦位置 横半径 mogura
  M5.lcd.fillEllipse(35+x, 19+y, 16, 9, 0x0000); //横位置 縦位置 横半径 mogura
  M5.lcd.fillRect(19+x, 19+y, 34, 25, 0x0000); //横位置 縦位置 横 縦 mogura
  M5.lcd.fillRect(19+x, 24+y, 34, 4, 0xffff); //横位置 縦位置 横 縦 mogura me
  M5.lcd.fillEllipse(32+x, 25+y, 6, 6, 0xffff); //横位置 縦位置 横半径 mogura me
  M5.lcd.fillEllipse(32+x, 25+y, 4, 4, 0x0000); //横位置 縦位置 横半径 mogura me
  M5.lcd.fillEllipse(33+x, 25+y, 1, 2, 0xffff); //横位置 縦位置 横半径 mogura me
  M5.lcd.fillRect(30+x, 30+y, 4, 10, 0xffff); //横位置 縦位置 横 縦 mogura namida
  M5.lcd.fillEllipse(44+x, 25+y, 6, 6, 0xffff); //横位置 縦位置 横半径 mogura me
  M5.lcd.fillEllipse(44+x, 25+y, 4, 4, 0x0000); //横位置 縦位置 横半径 mogura me
  M5.lcd.fillEllipse(43+x, 25+y, 1, 2, 0xffff); //横位置 縦位置 横半径 mogura me
  M5.lcd.fillRect(43+x, 30+y, 4, 10, 0xffff); //横位置 縦位置 横 縦 mogura namida
  M5.lcd.fillEllipse(35+x, 43+y, 7, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(21+x, 42+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(8+x, 38+y, 7, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(3+x, 29+y, 5, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(48+x, 41+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(68+x, 34+y, 5, 6, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(65+x, 35+y, 6, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
  M5.lcd.fillEllipse(60+x, 40+y, 5, 4, 0x8a22); //横位置 縦位置 横半径 穴isi
}
   // hammerA----------------------------------------
void HAMMERA(int x, int y) {
  M5.lcd.fillRect(21+x, 0+y, 6, 3, 0xf800); //横位置 縦位置 横 縦
  M5.lcd.fillRect(18+x, 3+y, 12, 3, 0xf800); //横位置 縦位置 横 縦
  M5.lcd.fillRect(15+x, 6+y, 18, 3, 0xf800); //横位置 縦位置 横 縦
  M5.lcd.fillRect(12+x, 9+y, 24, 3, 0xf800); //横位置 縦位置 横 縦
  M5.lcd.fillRect(9+x, 12+y, 27, 3, 0xf800); //横位置 縦位置 横 縦
  M5.lcd.fillRect(6+x, 15+y, 27, 3, 0xf800); //横位置 縦位置 横 縦
  M5.lcd.fillRect(3+x, 18+y, 27, 3, 0xf800); //横位置 縦位置 横 縦
  M5.lcd.fillRect(0+x, 21+y, 27, 6, 0xf800); //横位置 縦位置 横 縦
  M5.lcd.fillRect(3+x, 27+y, 18, 3, 0xf800); //横位置 縦位置 横 縦
  M5.lcd.fillRect(6+x, 30+y, 12, 3, 0xf800); //横位置 縦位置 横 縦
  M5.lcd.fillRect(9+x, 33+y, 6, 3, 0xf800); //横位置 縦位置 横 縦
  M5.lcd.fillRect(6+x, 6+y, 6, 6, 0xffe0); //横位置 縦位置 横 縦
  M5.lcd.fillRect(24+x, 24+y, 6, 6, 0xffe0); //横位置 縦位置 横 縦
  M5.lcd.fillRect(25+x, 25+y, 6, 6, 0xffe0); //横位置 縦位置 横 縦
  M5.lcd.fillRect(26+x, 26+y, 6, 6, 0xffe0); //横位置 縦位置 横 縦
  M5.lcd.fillRect(27+x, 27+y, 6, 6, 0xffe0); //横位置 縦位置 横 縦
  M5.lcd.fillRect(28+x, 28+y, 6, 6, 0xffe0); //横位置 縦位置 横 縦
  M5.lcd.fillRect(29+x, 29+y, 6, 6, 0xffe0); //横位置 縦位置 横 縦
  M5.lcd.fillRect(30+x, 30+y, 6, 6, 0xffe0); //横位置 縦位置 横 縦
  M5.lcd.fillRect(31+x, 31+y, 6, 6, 0xffe0); //横位置 縦位置 横 縦
  M5.lcd.fillRect(32+x, 32+y, 6, 6, 0xffe0); //横位置 縦位置 横 縦
  M5.lcd.fillRect(33+x, 33+y, 6, 6, 0xffe0); //横位置 縦位置 横 縦
  M5.lcd.fillRect(34+x, 34+y, 6, 6, 0xffe0); //横位置 縦位置 横 縦
  M5.lcd.fillRect(35+x, 35+y, 6, 6, 0xffe0); //横位置 縦位置 横 縦
  M5.lcd.fillRect(36+x, 36+y, 6, 6, 0xffe0); //横位置 縦位置 横 縦
  M5.lcd.fillRect(37+x, 37+y, 6, 6, 0xffe0); //横位置 縦位置 横 縦
  M5.lcd.fillRect(38+x, 38+y, 6, 6, 0xffe0); //横位置 縦位置 横 縦
  M5.lcd.fillRect(39+x, 39+y, 6, 6, 0xffe0); //横位置 縦位置 横 縦
}
   // hammerB----------------------------------------
void HAMMERB(int x, int y) {
  M5.lcd.fillRect(0+x, 23+y, 1, 2, 0xffe0); //横位置 縦位置 横 縦
  M5.lcd.fillRect(1+x, 21+y, 5, 6, 0xffe0); //横位置 縦位置 横 縦
  M5.lcd.fillRect(6+x, 6+y, 16, 36, 0xf800); //横位置 縦位置 横 縦
  M5.lcd.fillRect(4+x, 9+y, 20, 3, 0xf800); //横位置 縦位置 横 縦 hida
  M5.lcd.fillRect(4+x, 15+y, 20, 3, 0xf800); //横位置 縦位置 横 縦 hida
  M5.lcd.fillRect(4+x, 30+y, 20, 3, 0xf800); //横位置 縦位置 横 縦 hida
  M5.lcd.fillRect(4+x, 36+y, 20, 3, 0xf800); //横位置 縦位置 横 縦 hida
  M5.lcd.fillRect(21+x, 21+y, 24, 6, 0xffe0); //横位置 縦位置 横 縦
  M5.lcd.fillRect(45+x, 23+y, 2, 2, 0xffe0); //横位置 縦位置 横 縦
}

   // greenback----------------------------------------
void GREENBACK() {
  M5.lcd.fillRect(0, 60, 360, 46, 0x1c43); //横位置 縦位置 横 縦 ue
  M5.lcd.fillRect(0, 145, 360, 36, 0x1c43); //横位置 縦位置 横 縦 sita
  M5.lcd.fillRect(65, 140, 30, 5, 0x1c43); //横位置 縦位置 横 縦 sita
  M5.lcd.fillRect(80, 135, 25, 10, 0x1c43); //横位置 縦位置 横 縦 sita
  M5.lcd.fillRect(160, 142, 50, 5, 0x1c43); //横位置 縦位置 横 縦 sita
  M5.lcd.fillRect(184, 132, 25, 10, 0x1c43); //横位置 縦位置 横 縦 sita
  M5.lcd.fillRect(260, 142, 50, 5, 0x1c43); //横位置 縦位置 横 縦 sita
  M5.lcd.fillRect(290, 132, 25, 10, 0x1c43); //横位置 縦位置 横 縦 sita  
}

  // haikei----------------------------------------
void HAIKEI() {
  M5.lcd.fillRect(0, 0, 360, 80, 0xaf7d); //横位置 縦位置 横半径 縦半径 空
  M5.lcd.fillEllipse(120, 63, 28, 38, 0x2c4a); //横位置 縦位置 横半径 yama left
  M5.lcd.fillEllipse(120, 70, 55, 41, 0x2c4a); //横位置 縦位置 横半径 yama lelt
  M5.lcd.fillEllipse(120, 78, 65, 45, 0x2c4a); //横位置 縦位置 横半径 yama left
  M5.lcd.fillEllipse(120, 85, 75, 48, 0x2c4a); //横位置 縦位置 横半径 yama left
  M5.lcd.fillEllipse(120, 95, 100, 52, 0x2c4a); //横位置 縦位置 横半径 yama left
  M5.lcd.fillEllipse(250, 53, 28, 38, 0x2c4a); //横位置 縦位置 横半径 yama right
  M5.lcd.fillEllipse(250, 60, 55, 41, 0x2c4a); //横位置 縦位置 横半径 yama right
  M5.lcd.fillEllipse(250, 68, 65, 45, 0x2c4a); //横位置 縦位置 横半径 yama right
  M5.lcd.fillEllipse(250, 75, 75, 48, 0x2c4a); //横位置 縦位置 横半径 yama right
  M5.lcd.fillEllipse(250, 85, 100, 52, 0x2c4a); //横位置 縦位置 横半径 yama right
  M5.lcd.fillEllipse(70, 55, 3, 5, 0x0300); //横位置 縦位置 横半径 ki
  M5.lcd.fillEllipse(90, 35, 3, 5, 0x0300); //横位置 縦位置 横半径 ki
  M5.lcd.fillEllipse(100, 30, 3, 5, 0x0300); //横位置 縦位置 横半径 ki
  M5.lcd.fillEllipse(210, 38, 3, 6, 0x0300); //横位置 縦位置 横半径 ki
  M5.lcd.fillEllipse(300, 42, 3, 6, 0x0300); //横位置 縦位置 横半径 ki
  M5.lcd.fillEllipse(330, 43, 3, 4, 0x0300); //横位置 縦位置 横半径 ki
  M5.lcd.fillEllipse(315, 46, 3, 4, 0x0300); //横位置 縦位置 横半径 ki
  M5.lcd.fillRect(0, 60, 360, 240, 0x1c43); //横位置 縦位置 横半径 縦半径 地面
  M5.lcd.fillEllipse(95, 17, 19, 3, 0xf7be); //横位置 縦位置 横半径 kumo a
  M5.lcd.fillEllipse(105, 13, 14, 4, 0xf7be); //横位置 縦位置 横半径 kumo a
  M5.lcd.fillEllipse(150, 34, 19, 4, 0xf7be); //横位置 縦位置 横半径 kumo b
  M5.lcd.fillEllipse(160, 28, 13, 3, 0xf7be); //横位置 縦位置 横半径 kumo b
  M5.lcd.fillEllipse(270, 25, 12, 4, 0xf7be); //横位置 縦位置 横半径 kumo c
  M5.lcd.fillEllipse(290, 28, 16, 4, 0xf7be); //横位置 縦位置 横半径 kumo c
}

Credits

gakepuchi

gakepuchi

1 project • 0 followers

Comments