본문 바로가기

전체보기

스네이크 게임 - 게임 오버 판정 스네이크 머리가 벽에 닿이거나 꼬리에 닿인 경우, 게임 오버 판정이 되도록 코드를 추가하였다. 게임 오버가 되었을 경우, 게임을 재시작하거나 메인 메뉴로 돌아갈 수 있도록 구성하였고 그에 대한 코드를 GameManager에 작성하여 관리하였다. "재시도" 버튼을 클릭하면 게임이 초기화된 상태로 다시 시작하고 "메인으로" 버튼을 클릭하면 메인 화면으로 이동한다. using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.SceneManagement; public class GameManager : MonoBehaviour { // for Setting p.. 더보기
스네이크 게임 - 메인 메뉴와 일시 정지 메인 메뉴 화면을 새로 만들어서 게임 시작 버튼을 클릭하였을 때 게임 화면으로 넘어가는 시스템을 추가하였다. 메인 메뉴에 사용되는 버튼들 추가 방법은 유튜버 "골드메탈"님의 영상을 참고하였다. https://www.youtube.com/watch?v=qXa7y1Que6s&t=810s 또한 게임 화면에 일시정지 버튼을 추가하여 게임을 하는 도중에 일시정지를 할 수 있도록 해주었다. "시작하기" 버튼을 클릭하면 게임 실행 화면으로 "설정" 버튼을 클릭하면 아래 화면으로 이동한다. 설정 항목들은 아직 추가하지 않은 상태이고 "뒤로가기" 버튼을 누르면 위 화면으로 되돌아간다. "일시정지" 버튼을 클릭하면 음식 생성과 스네이크의 이동이 정지하고 "다시시작" 버튼을 클릭하면 다시 게임이 진행된다. using Sys.. 더보기
스네이크 게임 - 점수 카운트 스네이크가 음식을 먹었을 때 점수를 카운트하고 점수를 화면에 띄우는 코드와 설정은 유튜버 "골드메탈"님의 영상을 참고하였다. https://www.youtube.com/watch?v=qXa7y1Que6s&t=810s 추가적으로 기존에 음식 종류가 하나이었던 것을 총 3종류로 만들고 각자 다른 점수를 배부하는 추가 작업을 진행하였다. 이 역시 유튜버 "골드메탈"님의 영상을 참고하였다. https://www.youtube.com/watch?v=lKFka1regy8&t=601s using System.Collections; using System.Collections.Generic; using UnityEngine; public class Food : MonoBehaviour { // Point Var pub.. 더보기
스네이크 게임 - 스네이크 길이 증가 스네이크 이미지와 기본적인 코드는 아래 링크를 참고하여 작성하였다. https://noobtuts.com/unity/2d-snake-game 위 링크에 있는 코드를 토대로 작성하였더니 스네이크 머리가 음식과 만나더라도 스네이크 길이가 증가하지 않는 문제가 발생하였다. 이는 약간의 구글링과 개인적인 코드 분석을 통해 해결하였다. 또한 스네이크가 벽에 닿았을 경우 반대 방향으로 돌아가는 코드와 스네이크가 현재 이동하는 방향의 반대 방향으로 입력이 들어올 경우 이동 방향이 바뀌지 않는 코드도 개인적으로 추가해보았다. using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEngine; public clas.. 더보기
C언어 - 타입캐스팅 typecasting 타입 캐스팅이란 쉽게 말해서 형 변환을 하는 것이다. 6일차에서 다루었던 자료형을 살펴보자. 예를 들어서 형 확장은 정수형이 실수형이 되는 것이기 때문에 표현 범위가 넓어진다. 하지만 예를들어 형 축소는 실수형이 정수형이 되는 과정에서는 값이 손실되어 형이 축소된다. (ex. 4.3333333333 ------> 4) 그렇다면 왜 형 변환을 하는 것일까? 가장 쉬운 예시로는 정수형과 실수형을 연산할 때이다. #include int main() { int a = 16; int b = 7; float c; c = a / b; printf("%f", c); } 정수형끼리 나누어서 실수형으로 출력해본다면 어떤 값이 나올까? 2가 아닌 소수점이 생긴 2.0000... 이 나온 것을 확인할 수 있다. 하지만 2.0.. 더보기
스네이크 게임 - 음식 랜덤 생성 음식 이미지와 기본적인 코드는 아래 링크를 참고하여 작성하였다. https://noobtuts.com/unity/2d-snake-game 위 링크에 있는 코드를 토대로 작성하였더니 시간이 지날수록 음식의 개수가 무작위로 생성되는 문제가 발생하였다. 이는 유튜버 "고박사의 유니티 노트"님의 영상을 참고하여 Instantiate() 함수를 이해하고 Object 추가 작업을 함으로써 해결하였다. https://www.youtube.com/watch?v=IlQ1vLT2tPA&t=145s using System.Collections; using System.Collections.Generic; using UnityEngine; public class SpawnFood : MonoBehaviour { // Food.. 더보기
C언어 - 사용자 정의 함수 (최종) 아래의 코드를 살펴보고 문제점을 찾아보자. #include void add(int a, int b) { int c; c = a + b; printf("%d", c); } int main() { int a; int b; a = 2; b = 3; add(a, b); } 코드를 실행했을 때 컴파일 오류가 발생했을 것이다. 코드를 고치면서 차근차근 오류를 수정해보자. 우선 출력함수를 main() 에서 시도해보자. #include void add(int a, int b) { int c; c = a + b; } int main() { int a; int b; a = 2; b = 3; add(a, b); print("%d", c); } 더하기 결과 출력을 함수 밖에서 하여도 컴파일 오류가 난다. main에 c가 선언.. 더보기
스네이크 게임 - 조작키 코드 보완 유튜버 "골드메탈"님의 영상을 참고하여 모바일 게임용 조작키를 추가하였고 조작키에 대한 코드를 보완하였다. https://www.youtube.com/watch?v=IJxc-ANxO-w&t=1204s 모바일용 컨트롤러를 추가한 후 해당 컨트롤러용 조작 코드를 작성하였다. 기존의 키보드를 통한 조작도 가능하도록 되어 있다. using System.Collections; using System.Collections.Generic; using UnityEngine; public class SnakeMove : MonoBehaviour { // Snake Movement Var Vector2 dir = 1 * Vector2.right; private float size = 1; // Snake Direction.. 더보기