간단한 슈팅게임 소개
안녕하세요! 이번 포스팅에서는 C언어로 만든 간단한 슈팅게임에 대해 소개해 드리겠습니다. 이 게임은 플레이어가 총알을 발사하여 목표물을 제거하는 간단한 게임입니다. 이 게임은 C언어로 구현되었으며, 소스 코드도 함께 제공될 예정입니다. 그럼 시작해볼까요?
게임의 기능
- 플레이어의 이동: 플레이어는 상하좌우로 이동할 수 있습니다. 키보드의 방향키를 사용하여 원하는 방향으로 이동할 수 있습니다.
- 총알 발사: 플레이어는 스페이스바를 눌러 총알을 발사할 수 있습니다. 총알은 일정한 속도로 직선으로 발사되며, 목표물에 닿으면 제거됩니다.
- 목표물의 생성: 게임 시작 시 일정한 시간 간격으로 목표물이 생성됩니다. 목표물은 게임 화면의 상단에서 출발하여 아래로 내려가는 형태로 이동합니다.
- 점수 계산: 목표물을 총알로 제거하면 플레이어의 점수가 증가합니다. 또한, 목표물이 게임 화면의 하단까지 도달하면 점수가 감소합니다.
게임 소스 코드
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#define SCREEN_WIDTH 80
#define SCREEN_HEIGHT 25
#define PLAYER_START_X 40
#define PLAYER_START_Y 23
#define BULLET_SPEED 5
#define ENEMY_SPEED 2
#define ENEMY_SPAWN_INTERVAL 1000
int playerX, playerY;
int bulletX, bulletY;
int enemyX, enemyY;
int score;
void gotoxy(int x, int y) {
COORD coord = {x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
void drawPlayer() {
gotoxy(playerX, playerY);
printf("A");
}
void erasePlayer() {
gotoxy(playerX, playerY);
printf(" ");
}
void drawBullet() {
gotoxy(bulletX, bulletY);
printf("|");
}
void eraseBullet() {
gotoxy(bulletX, bulletY);
printf(" ");
}
void drawEnemy() {
gotoxy(enemyX, enemyY);
printf("V");
}
void eraseEnemy() {
gotoxy(enemyX, enemyY);
printf(" ");
}
void moveBullet() {
eraseBullet();
bulletY -= BULLET_SPEED;
if (bulletY < 0) {
bulletY = -1;
}
drawBullet();
}
void moveEnemy() {
eraseEnemy();
enemyY += ENEMY_SPEED;
if (enemyY >= SCREEN_HEIGHT) {
enemyY = -1;
score--;
gotoxy(0, 0);
printf("Score: %d", score);
}
drawEnemy();
}
int collisionCheck() {
if (bulletX == enemyX && bulletY == enemyY) {
score++;
gotoxy(0, 0);
printf("Score: %d", score);
return 1;
}
return 0;
}
int main() {
playerX = PLAYER_START_X;
playerY = PLAYER_START_Y;
bulletX = playerX;
bulletY = playerY - 1;
enemyX = 0;
enemyY = -1;
score = 0;
int tick = 0;
while (1) {
if (kbhit()) {
char key = getch();
if (key == 'a' && playerX > 0) {
erasePlayer();
playerX--;
drawPlayer();
} else if (key == 'd' && playerX < SCREEN_WIDTH - 1) {
erasePlayer();
playerX++;
drawPlayer();
} else if (key == 'w' && bulletY == playerY - 1) {
bulletX = playerX;
bulletY = playerY - 1;
}
}
if (tick % ENEMY_SPAWN_INTERVAL == 0) {
enemyX = rand() % SCREEN_WIDTH;
enemyY = 0;
}
moveBullet();
moveEnemy();
if (collisionCheck()) {
eraseBullet();
bulletY = -1;
}
tick++;
Sleep(10);
}
return 0;
}
전체 내용 정리
이번 포스팅에서는 C언어로 간단한 슈팅게임을 소개하였습니다. 게임은 플레이어의 이동, 총알 발사, 목표물의 생성, 점수 계산 등의 기능을 포함하고 있습니다. 소스 코드를 통해 게임의 구현 방법을 확인하실 수 있으며, 각 함수의 역할과 게임의 룰을 쉽게 이해하실 수 있을 것입니다. 이 게임을 기반으로 보다 복잡하고 흥미로운 슈팅게임을 개발해 보시는 것을 추천드리며, 여러분의 창의력을 발휘하여 멋진 게임을 만들어 보시기 바랍니다. 즐거운 게임 개발되세요!
댓글