2014-02-14 7 views
2

Game Maker를 사용하여 게임을 만들었지 만 C를 사용하여 간단한 게임을 만들고 싶습니다. 저는 C 프로그래머입니다. 코드를 작성할 때 출력은 항상 CMD Windows 콘솔에 있습니다. 몇 가지 단순한 게임을 만들 수 있지만 항상 콘솔에서는 매우 유연하지 않습니다 (스크롤하지 않고 움직일 수는 없습니다). 보다 복잡한 게임을 실행하면 완전한 새 화면이 만들어지고 실제로 화면과 상호 작용합니다.나는 콘솔에서 게임을 코딩하고 있습니까, 아니라고 생각하십니까?

그래서 C 언어를 사용하는 데 문제가 있습니다.이 새 화면이 어떻게로드되고 있습니까? 거기에 새로운 화면이나 뭔가를 만드는 몇 가지 Windows API가 있다고 생각합니다. 그건 그렇고, 예전에는 도스 시간을 의미 했었는데, 콘솔을 사용했는데 게임이 진행된 곳에서 새 화면을로드 할 수있었습니다. 어떻게 이것을 할 수 있습니까?

루트를 연구하기위한 몇 가지 가이드 라인이 필요합니다. 라이브러리 X를 호출하거나 SDL을 사용하고 싶지 않습니다.

도움 주셔서 감사합니다.

+0

안녕하세요! 귀하의 질문은 매우 광범위하고 다소 의견을 기반으로합니다. 그래서 일반적으로 코드 예제로 구성되어 객관적인 질문을하고 특정 질문을해야합니다. –

+0

비록 내가 처음 프로그래머가 열정을 가지고 있으며 자신의 능력을 확장하고있는 프로젝트를 수행하고 있지만, 한 가지가 있습니다. C 언어에 익숙하지 않다고 말합니다. 언어의 기초를 배우는 것이 좋습니다. 연결된 목록에 사용 된 텍스트를 구조화하는 파서를 만듭니다. 그것은 초보자에게 어려운 프로젝트입니다. 일단 스코프, 메모리 관리 및 포인터 산술의 기본 사항을 숙지하고 나면 많은 API 중 하나를 사용하여 GUI 응용 프로그램을 작성하는 방법을 배울 수 있습니다. 죄송합니다. 크롤링을하기 전에 뛰지 말고 올림픽에서 경쟁하려고하지 마십시오. –

+0

@Elias Van Ootegem '그가 묻는 것을 완전히 놓친 것을 고려하면 매우 나쁜 조언입니다. 콘솔에서 완벽하게 작동하는 게임을 만들 수 있다면 그는 C에 익숙하여 게임을위한 간단한 그래픽 창을 만들기 시작할 수 있습니다. 슈퍼 복잡하거나 정교 할 필요는 없습니다. 그들은 매우 간단 할 수 있습니다. 그는 Windows 스택에 새 창을 만들고 게임 GFX를 그리는 방법을 묻습니다. 기술 부족에 대한 두려움 때문에 당신이하지 않을 일을 넘어선 사람을 기피하지 마십시오. 코더/프로그래머 (당신이 한 사람이라면)로서 배우는 가장 좋은 방법은해야한다는 것입니다. 나쁜 조언을하지 마라. " – Yokai

답변

0

라이브러리 X를 언급 했으므로 Linux 시스템에 있다고 가정합니다. 목표를 보관하는 방법에는 여러 가지가 있습니다. 콘솔을 계속 사용하고 그래픽을 더 많이 사용하려면 라이브러리 ncurses (http://www.gnu.org/software/ncurses/)를 살펴보십시오.

더 고급 난 당신이 여기에서 살펴보고 추천 그래픽을 수행 할 경우

: 꽤 털이 (. 즉, 코드가 복잡 할 수 있으며, 읽기 어려운) 얻을 수있는 새로운 윈도우를 생성 How do you create a window in Linux with C++?

+0

라이브러리 X를 작성할 때 라이브러리 foo와 같은 일반 라이브러리를 의미했습니다. 라이브러리를 사용하는 것은 항상 필요합니까? 나는 도서관이 내가 배우고 자하는 복잡한 것들을 숨겨 준다고 생각한다. –

+0

Windows 용 API 또는 콘솔 용 API를 요구하고 있습니까? 창 API를 찾고 있다면 Michael이 질문에 대답했습니다. – MrSykkox

0

합니다. 다소 높은 수준의 개요를 제공하려고 시도하고 기본 창을로드하는 데 유용한 자습서로 연결됩니다.

당신은 유형 HWNDWNDCLASSEX의 변수의 몇 가지를 선언하고 일부 설정하고 이것 저것와 함께 창을 초기화 Windows API 함수의 무리를 호출해야합니다. 이 작업이 완료되면

, 당신은 TranslateMessage 루프 내부 DispatchMessage로 일반적으로, 모든 윈도우의 상호 작용을 처리하는 루프를 입력해야합니다.

또한 마우스 클릭, 창 닫기 등과 같은 Windows 이벤트를 처리하기위한 콜백 프로 시저를 구현해야합니다. 일반적으로 LRESULT CALLBACK WndProcedure에서 수행됩니다.

저는 이제 새로운 단어와 아이디어를 거의 설명하지 않고 던집니다. 이 튜토리얼에서 내가 방금 설명하려고했던 전체 예제를 확인하자. 이 도움이

http://www.functionx.com/win32/Lesson01c.htm

희망!

또한 Windows API (예 : windows.h)에 대한 귀하의 의견을 토대로 Windows를 사용한다고 가정합니다. Linux를 사용하는 경우 X를 사용해야합니다.

+0

그러나 80 년대에, 도스로, 당신은 게임을위한 새로운 스크린을 만들 수있었습니다. OS는 또한 약간의 API를 주었습니까? –

+0

DOS 용으로는 아니었지만 그렇다고 가정하면 API가 필요했습니다. 당신이하려는 것은 API를 사용하지 않고 윈도우를 만드는 것이라고 생각합니다. 이것은 할 수 없습니다. GPU 하드웨어를 다루기 때문에 많은 어셈블리를 작성해야합니다. 또한 이러한 방식으로 GPU에 액세스하는 것은 일반적으로 오픈 소스가 아니기 때문에 쉽지 않습니다. 사양이없는 프로그래밍 어셈블리는 엄청나게 어렵고, 극히 소수의 사람들 만이 할 수 있습니다. 노력하지 않는 것이 좋습니다. Windows는 Windows/GUI를 작성하기위한 API를 제공함으로써 이름을 얻습니다. 이것은 정확한 목적으로 사용하기위한 것입니다. –

0

C 프로그래밍은 1970 년대로 거슬러 올라갑니다. 따라서 그 시대와 비슷한 게임을 만들 수 있습니다. 창 또는 새 화면은 개발자가 이미 컴파일하고 저장 한 몇 가지 전 처리기 지시문에 의해로드됩니다. 새로운 화면이 몇 가지 명령을 제공함으로써 달성 될 수있다 :) (

#include<stdio.h> 
    #include<conio.h> 
    void main() 
    { 

    local declarations; 
    And your program for the game; 

    getch(); 
} 

이것이 기본적으로 수행하는 함수 getch입니다; (conio.h)에 저장되어있는 새 창을 열면 키보드에서 값을 가져올 때까지 출력이 으로 표시됩니다. 즉 키보드에서 아무 키나 누를 때까지 출력이 표시됩니다.

희망이 답변으로 도움이됩니다.

+0

그래픽을 지원하는 컴퓨터입니까, 아니면 누가 운영 체제입니까? –