분류 전체보기 93

[유니티] Jumping Rabbit #5 모바일 UI와 하드모드 구현

※ 구현목표 모바일 조작 버튼 UI와 하드모드 구현 1. 모바일 UI 1) 조작 버튼 모바일 UI는 이벤트 트리거를 사용하여 버튼 클릭시 Player 객체에서 함수에 값을 넣어주는 형식을 사용하였다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 public void ButtonDown(string type) { switch (type) { case "J": Jump_Down = true; isClick = true; break; case "L": Left_Down = true; break; case "R": Right_Down = true; break; } } public void ButtonU..

[유니티] Jumping Rabbit #4 일시정지 메뉴, 게임오버 메뉴 만들기

※ 구현목표 일시정지 메뉴, 게임오버 및 게임 클리어 UI 구현 1. 메뉴 스크립트 메뉴는 자주 사용되고 상황에 따라 다른 동작을 하게 되므로 메뉴 스크립트와 버튼 타입 스크립트 두가지로 나누어 작성하였다. 1) 메뉴 스크립트 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 using System.Collections; using System.Collections.Generic; using UnityEngine; public enum BTNType { Main, Continue, Retry, Quit } public class MenuUI : MonoBehaviour { public GameObje..

[백준] 1149 RGB거리 (python 파이썬)

문제링크:https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 작성코드 풀이 2차원 dp 문제이다. 우선 문제를 분석해보면 이전 집과의 색이 동일하면 안되는 규칙을 가지고 가장 작은 비용으로 집을 칠해야한다. 즉, 이전 집의 색과 다른 두 색 중 작은 값이 채택된다. 이게 계속 반복되는데 dp 방식으로 저장해줄 값은 해당 색을 선택했을때 이전까지 최소 도달 값 + 현재값이 된다. 이를 코드로 구현하면 이와 같이 나온다. for문..

백준/Python 2022.11.16

[백준] 1904 01타일 (python 파이썬)

문제링크: https://www.acmicpc.net/problem/1904 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net 작성코드 풀이 규칙을 알아보기 위해 우선 4까지 직접 작성해보자. # dp[N] dp[1] = 1 dp[2] = 00, 11 dp[3] = 001, 111, 100 dp[4] = 0011, 1111, 1001, 0000, 1100 일부러 규칙이 보이는 순서로 dp[4]를 작성하였다. 기존의 수열에서 다른 수를 뒤에 붙혀주면 서로 다름을 유지하면서 새로운 수가 완벽하게 생성된다. 1을 추가하는..

백준/Python 2022.11.14

[유니티] Jumping Rabbit #3 레벨 디자인, 스테이지 테마, 음악 및 BGM

1. 레벨 디자인 초반 : 기본적인 발판으로 게이지 점프 만으로도 쉽게 통과 할 수 있도록 구성 중반 : 연속 점프를 사용하지 않으면 돌아가야하는 길, 세밀한 점프 조정 필요 후반 : 좁은 발판, 가시, 연속 점프 혹은 파워점프 (연속점프 게이지 1회 누적 후 게이지 점프)를 사용하지 않으면 통과 불가능 하게 구성 2. 스테이지 테마 1스테이지 : SunnyLand https://assetstore.unity.com/packages/2d/characters/sunny-land-103349 Sunny Land | 2D 캐릭터 | Unity Asset Store Elevate your workflow with the Sunny Land asset from Ansimuz. Find this & more 캐릭터..

[유니티] Jumping Rabbit #3 벽 탄성 부여 및 충돌, 연속 점프 구현, 버그 수정

※ 구현목표 벽 탄성 부여와 충돌판정, 연속 점프 구현 1. 벽 탄성 부여 벽 탄성 부여는 Physics Material 2D을 사용하여 벽에 탄성(Bounciness) 값을 주어 적용한다. Friction(마찰력) : 콜라이더의 마찰력 계수 (0에 가까울 수록 미끄러워진다. 1에 가까워지면 거칠어진다.(미끄러짐이 없다.) Bounciness(탄성) : 충돌이 표면에 다시 바운스 되는 정도(0이면 바운스가 없고 1이면 에너지 손실 없이 완전히 튕겨낸다) 만들어둔 Physics Material 2D를 벽의 Collider 2D의 Material에 넣어주면 된다. 2. 연속 점프 구현 1) 설계 점프 후 착지 시 바로 점프를 시행하면 점프력이 증가 지상이 아닐 때 점프 입력, 벽에 부딧혔을 때는 연속 점프 ..

[백준] 9184 신나는 함수 실행 (python 파이썬)

문제링크:https://www.acmicpc.net/problem/9184 9184번: 신나는 함수 실행 입력은 세 정수 a, b, c로 이루어져 있으며, 한 줄에 하나씩 주어진다. 입력의 마지막은 -1 -1 -1로 나타내며, 세 정수가 모두 -1인 경우는 입력의 마지막을 제외하면 없다. www.acmicpc.net 작성코드 풀이 우선 문제의 의사 코드를 재귀함수로 풀어보았다. 주어진 의사코드를 바로 python으로 작성하면 위와 같이 나온다. 하지만 이와 같은 방식은 같은 w(a,b,c) 값이 나오더라도 저장을 하지 않고 매번 새로 계산 하므로서 계산 부하가 심하다 DP(동적 프로그래밍, dynamic programming) 최적화 기법으로서 하나의 문제를 작은 여러개의 문제로 분할한 뒤 작은 문제의 ..

백준/Python 2022.11.09

[백준] 24039 2021은 무엇이 특별할까? (python 파이썬)

문제링크 : https://www.acmicpc.net/problem/24039 24039번: 2021은 무엇이 특별할까? 백준 온라인 저지의 송년대회 Good Bye BOJ, 2021!의 개최일은 2021년 12월 31일이다. 원이는 대회가 개최된다는 사실이 기뻐 제목을 뚫어져라 보다가 2021이 무언가 특별하다는 사실을 깨달았다. 그렇 www.acmicpc.net 작성코드 풀이 1) 소수 리스트 만들기 ※ 소수의 특징 : 나누는 수가 해당 숫자의 √N 이상일 경우 나누어 떨어질 수 없다. 이때문에 for 문을 √N 까지 반복하도록 하였다. 2) 인접소수와의 곱 중 N보다 큰 최소값 출력 리스트 인덱스 1부터 시작하여 이전 인덱스와의 곱이 N보다 큰 경우 rare 변수에 넣어주고 break 하므로서 가..

백준/Python 2022.11.07

[백준] 25707 팔찌 만들기 (python 파이썬)

문제링크 : https://www.acmicpc.net/problem/25707 25707번: 팔찌 만들기 N개의 구슬을 모두 사용하여 조건에 맞게 팔찌를 만들 때 사용하는 줄의 길이의 최솟값을 출력한다. www.acmicpc.net 작성코드 풀이 1) 리스트 정렬 숫자 사이의 거리 값의 합이 최소가 되게 하는 가장 쉬운 방법은 순차적으로 배치를 하는 것이다. 2) 인접한 숫자의 차 구하기 숫자 사이의 거리를 계산하기 위해 인접한 숫자의 차를 구한다. 배열을 역순으로 배치하거나 for문을 역순으로 처리해도 되지만 직관적인 이해를 위해 abs()를 사용하여 인접 숫자와의 차이를 구하여 count에 누적한다. count가 문제의 답인 줄의 최소 길이가 된다.

백준/Python 2022.11.07

[유니티] Jumping Rabbit #2 Platform Effector 2D, 점프 세분화 및 확장

※ 구현 목표 Platform Effector 2D 를 사용한 발판 제작, 애니메이션 세분화, 점프 중에만 방향 조절 가능 1. Platform Effector 2D 플랫폼 이펙터는 단방향 충돌, 측면 마찰, 바운스 제거 등 플랫폼 게임에서 자주 사용되는 기능을 유니티에서 컴포넌트로 제공해주는 것이다. 이번에는 여기서 단방향 충돌로 올라갈 때는 충돌하지 않고 캐릭터가 딛고 있을 때만 충돌 작용을 적용하려 한다. Use Collider Mask : 특정 콜라이더만 충돌판정을 할지 여부, 비활성화시 모든 콜라이더와 충돌 ㄴ Collider Mask : 충돌 판정을 할 콜라이더 지정 Rotational Offset : 충돌 판정의 방향 지정 (ex. 단방향 충돌일 경우 0이면 위쪽만 충돌, 180이면 아랫쪽만..