본문 바로가기

전체 글110

[C# Window Form] 윈도우 폼으로 슈팅게임 구현하기 4 : 갤러그 의의 그동안 3편까지는 콘솔로 했었다면, 이번에는 Window Form형태로 도전해 볼 것이다. Window Form을 사용하면서 좀 더 2차원적인 그래픽 표현 능력이 향상되다보니 더 게임다운 모습을 하게 된다. 콘솔로 그래픽을 문자로 표현하면서 노가다 적인 부분들이 있는데, 그 부분들이 많이 개선되겠지만, 윈폼을 쓰면서 오히려 더 신경써야할 부분들도 생기는 것 같다. 리소스는 캐릭터는 유니티 에셋스토어를 활용하였고, >> Pixel Art Starships Package - Terran Fleet | 2D Textures & Materials | Unity Asset Store Pixel Art Starships Package - Terran Fleet | 2D 텍스처 및 소재 | Unity Asset.. 2022. 7. 2.
[C#] 콘솔로 슈팅게임 구현하기 3 : 갤러그 개선점 2편에서는 10프레임 단위로 화면을 갱신하며 1편에 비해 매우 정상적인 플레이가 가능하였다. 하지만, 높은 프레임으로 올라갈수록 콘솔을 지우고 쓰는 속도가 빨라져, 화면 깜빡임이 매우 심해졌다. 따라서 이를 해결함과 동시에, 총알이 세 갈래로 나아가는 것도 구현했다. 또한 메인화면, 게임 종료 시 화면도 구현하였다. 전체 코드 는 생략. 코드를 다양한 스크립트로 분할하면서 여러 스크립트가 되었기에 전체코드는 생략한다. 크게 변경된 부분 코드만 적어보겠다. 로비구현 MainGame.cs const int waitTick = 1000 / 60; // 60 프레임(60FPS) static void Main(string[] args) { int lastTick = 0; // 마지막 틱 int curren.. 2022. 7. 2.
[C#] 콘솔로 슈팅게임 구현하기 2 : 갤러그 의의 콘솔로만 구현하는 C#기반 슈팅게임 구현 개선점 1. 1편의 문제점은 키 입력이 존재하지 않으면, 화면이 갱신되지 않는다는 것이었다. 이 부분은 키의 입력이 존재하지 않더라도 실행이 가능하도록 Console.KeyAvailable 을 활용하여 해결하였다. if (Console.KeyAvailable == true) // 키입력이 존재한다면 2. 키 입력 문제가 해결되었으니, 적의 움직임, 총알의 움직임, 플레이어의 움직임을 매 프레임마다 계산하여 동시에 표현할 수 있게 되었다. 프레임을 구하는 원리는 다음을 사용하였다. const int waitTick = 1000 / 10; int currentTick; int lastTick = 0; while (true)// 반복 { // 현재 시간 curre.. 2022. 7. 1.
[C#] 콘솔 창으로 슈팅게임 구현하기 1 : 갤러그 의의 콘솔 앱을 제작하여, 콘솔 창으로만 동작하는 간단한 슈팅게임을 만들어보고자 한다. 조건 1. 플레이어는 키보드 방향키를 입력받아 좌, 우로 움직일 수 있다. 2. 적 플레이어는 임의로 지정한 방식에 따라 좌, 우로 움직인다. 3. 스페이스 바를 입력하여 총알을 발사할 수 있다. 4. 총알과 적 플레이어가 충돌 시 총알은 사라진다. 5. 총알은 시야에서 벗어나도 사라진다. 6. 총알이 적에게 명중하면 100점을 획득하며 화면에 좌측 상단에 출력한다. 구현 전체 코드 Program.cs using System; using System.Runtime.InteropServices; using System.Windows.Input; using System.Threading.Tasks; using System.. 2022. 6. 30.
[C++] 문자열 반복 / 단어 재조합하기 : 2675번 문제 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다. QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./: 이다. 풀이 입력 받은 문자열 S 를 재구성해서 출력하는 문제다. 재구성 방법은 3 ABC 를 받으면 3만큼 반복하여 AAABBBCCC 를 출력하면 된다. 전체 코드는 다음과 같다. #include using namespace std; int main() { string* s; // 문자열 int test.. 2022. 6. 28.
[Unreal 5, C++] 적 AI 생성하기 : 2 / 적이 나를 조준하게 하기 이번 글에서는 적 캐릭터가 내 캐릭터를 조준하도록 만드는 방법을 알려줄 것이다. 적이 나를 조준하기 위해선 플레이어를 인식하고, 플레이어의 위치를 바라보도록 적의 몸을 회전시켜 주어야 할 것이다. STEP 1 : // EnemyAIController.h class PISTOL_API AEnemyAIController : public AAIController { GENERATED_BODY() protected: // 2022. 6. 28.