void CheckedInputKey()
{
for(int i = 0; i < random_sequence_images.Length;)
{
if(random_sequence_images[i].sprite == random_sequence_sprite[currentSpriteIndex])
{
if(Input.GetKeyDown(directionKeys[currentSpriteIndex]))
{
RemoveCurrentImage();
currentSpriteIndex = 0;
i++;
}
}
else
{
currentSpriteIndex ++;
}
}
}
이게 원래 코드인데
내 생각에는
여기서 잘보면 i가 증강하지 않는 부분이 있음.
current Index만 증가하니까 i는 계속 같은값을 가지는거지
void CheckedInputKey()
{
for (int i = 0; i < random_sequence_images.Length;)
{
if (random_sequence_images[i].sprite == random_sequence_sprite[currentSpriteIndex])
{
if (Input.GetKeyDown(directionKeys[currentSpriteIndex]))
{
RemoveCurrentImage();
currentSpriteIndex = 0;
i++; // 이미지를 성공적으로 맞췄을 때 i를 증가시킴
}
}
else
{
currentSpriteIndex++;
if (currentSpriteIndex >= random_sequence_sprite.Length)
{
// currentSpriteIndex가 배열의 범위를 넘어가지 않도록 초기화
currentSpriteIndex = 0;
// i를 증가시켜 다음 이미지로 넘어가게 함
i++;
}
}
}
}
currentSpriteIndex가 배열의 길이를 넘어설때 값 0으로 초기화 했는데
일단 뭐 어떤 값을 원하는지 모르니까.
일단 무한루프는 막아봄
무한루프 구조가 아니게되면 GetKeyDown위치가 요상한데
그건 GPT 쓰면 해주겠지. 지금 GPT가 안되니까 이런 쉬운 문제도 못풀게되네 쩝ㅋㅋㅋ내가 잘못쓴거 같기도
GPT안쓰면 진짜 뇌가 안돌아가는것도 아니고 어떻게 이런소리를
나보단 GPT가 코드 더 잘 쓰잖아
원래 글은 부끄사했네ㅋㅋㅋ
해결됐으면 다행인거지 뭐
너무 욕 먹어서 부끄사하뮤 근데 저렇게 해도 계속 무한루프 떠.. 그래가지고 그냥 처음부터 다시 짜보려구
미안허이 내 예상이 틀렸나봐.
ㅇㅇ 임마도 코드 잘 쓴거 아님 if(GetKeyDown~을 가장 바깥에 두고 나머지 연산을 안쪽에 해보셈
바깥에다가도 해봤는데 똑같아... 코딩 너무 어려버
프로그래밍 기본기를 먼저 배우는게 결과적으로 더 효율적일거야 디버깅 하듯이 코드 한줄한줄 내려가면서 컴퓨터가 어떻게 작동할지 생각해봐 for문에서 i 값이 증가하지 않으면 계속 벗어나지 못하고 반복될 꺼잖아. i++ 줄까지 코드가 오지 않으면 그렇게 되겠지? i++를 for문 안에다 넣지 않으면 if문 안에 한번이라도 안들어갔을때 무조건 무한루프로 들어가게 될거야
오 말 들어보니깐 뭐가 문제인지 알듯말듯하니 집가서 함 해볼겡
for (int i = 0; i < random_sequence_images.Length; i++) 이렇게 하라는 말