BASIC4MCU | 질문게시판 | 도트 매트릭스를 통한 장애물 피하기 게임 질문
페이지 정보
작성자 끼룩 작성일2022-06-14 02:32 조회994회 댓글3건본문
안녕하십니까! 혼자서 아두이노 공부하고 있는 학생입니다.
도트 매트릭스와 두 개의 스위치를 이용하여 장애물 피하기 게임을 만들고 있는 중에 어려움에 봉착하여 질문 남깁니다.
아래와 같이 코딩을 진행하여 장애물이 도트 매트릭스 윗부분에서 내려오도록 설정하는 것은 성공하였습니다.
하지만, 장애물을 피하는 LED를 첫번째 행에서 좌우로 조절을 하려고 하니 장애물의 LED와 섞이면서 제대로 표현이 되지 않습니다.
이처럼 장애물의 LED와 제가 조절하려고 하는 하나의 LED를 섞이지 않고 별개로 하는 방법이 있는지 궁금하여 이 부분에 대해 여쭙고 싶습니다.
const int yPins[] = { 2, 3, 4, 5, 6, 7, 8, 9};
// C8, C7, C6, C5, C4, C3, C2, C1
const int xPins[] = { 10,11,12,13,14,15,16,17};
// R8, R7, R6, R5, R4, R3, R2, R1
const int inputPinL1 = 0;
const int inputPinR1 = 1;
const int inputPinU1 = 18;
const int inputPinD1 = 19;
const int inputPinF1 = 20;
long randNumber1;
long randNumber2;
long randNumber3;
long randNumber4;
int X1 = 0;
int Y1 = 0;
void setup() {
pinMode(inputPinL1, INPUT_PULLUP);
pinMode(inputPinR1, INPUT_PULLUP);
for (int i = 0; i < 8; i++)
{
pinMode(yPins[i], OUTPUT);
pinMode(xPins[i], OUTPUT);
digitalWrite(yPins[i],HIGH);
digitalWrite(xPins[i],LOW);
}
}
void loop() {
int swInputL1 = digitalRead(inputPinL1);
int swInputR1 = digitalRead(inputPinR1);
randNumber1 = random(0, 8);
randNumber2 = random(0, 8);
randNumber3 = random(0, 8);
randNumber4 = random(0, 8);
for(int i=7; i>-1; i--)
{
digitalWrite(xPins[randNumber1],HIGH);
digitalWrite(xPins[randNumber2],HIGH);
digitalWrite(xPins[randNumber3],HIGH);
digitalWrite(xPins[randNumber4],HIGH);
digitalWrite(yPins[i],LOW);
delay(400);
digitalWrite(yPins[i],HIGH);
digitalWrite(xPins[i],LOW);
delay(400);
}
for (int i = 0; i < 8; i++)
{
digitalWrite(yPins[i],HIGH);
digitalWrite(xPins[i],LOW);
}
if(swInputR1==LOW) {
X1++;
expression1out(X1-1,Y1);
expression1(X1,Y1);
}
if (X1==8) {
X1=0;
}
if(swInputL1==LOW) {
X1--;
expression1out(X1+1,Y1);
expression1(X1,Y1);
}
if (X1==-1) {
X1=7;
}
}
void expression1(int X1,int Y1)
{
digitalWrite(yPins[Y1],LOW);
digitalWrite(xPins[X1],HIGH);
delay(100);
}
void expression1out(int X1,int Y1)
{
digitalWrite(yPins[Y1],HIGH);
digitalWrite(xPins[X1],LOW);
delay(100);
}
댓글 3
조회수 994master님의 댓글
master 작성일2칼라 이상의 도트매트릭스를 사용하면 쉽게 구분이 가겠죠?
끼룩님의 댓글
끼룩
https://www.youtube.com/watch?v=oufoESNP4WQ&list=LL&index=3
위 영상처럼 만들고 싶은데 방법이 없을까요?
master님의 댓글
master
링크의 도트매트릭스는 칼라가 다릅니다.