2014-02-14 2 views
2

Я делал некоторые игры, используя Game Maker, но я хотел бы сделать простые игры с помощью C. Я программист newb C. Когда я кодирую вывод, всегда находится в консоли CMD Windows. Я мог бы создавать простые игры, но всегда на консоли, которая не очень гибкая (вы не можете анимировать без прокрутки). Когда вы запускаете более сложную игру, создается новый новый экран, и я фактически взаимодействую с этим экраном.Я кодирую игру в C. Консоль или нет?

Итак, вопрос, который я использую на языке C, заключается в следующем: как загружается этот новый экран? Я думаю, что есть несколько API окон для создания нового экрана или чего-то еще. Кстати, в старые времена, я имею в виду время DOS, вы просто использовали консоль, но вы могли загрузить новый экран, на котором игра была сыграна. Как вы можете достичь этого?

Я хотел бы получить руководство по исследованию корня. Я просто не хочу звонить в библиотеку X или использовать SDL.

Спасибо, что вам нужна помощь.

+0

Добро пожаловать в SO! Ваш вопрос очень широк и несколько основан на мнениях. Итак, вы должны попытаться задать объективные вопросы, которые обычно состоят из примеров кода, задавая конкретные вопросы. –

+0

Хотя я все для начинающих программистов, которые в восторге, и беря проекты, которые растягивают свои возможности, есть линия. Вы говорите, что вы новичок в C. Рассмотрим изучение языка: создайте парсер, который структурирует потребленный текст в связанном списке. Это сложный проект для новичка. Как только вы освоите основы областей, управления памятью и арифметики указателей, вы можете научиться писать графические приложения с использованием одного из многих API. Извините, скажите это: не бегите, прежде чем вы сможете ползать, и, конечно же, не пытайтесь конкурировать на Олимпийских играх. –

+0

@Elias Van Ootegem 'Это очень плохой совет, учитывая, что вы полностью пропустили то, что он просил. Если он может создать полностью функционирующую игру в консоли, он много знаком с C, чтобы начать создавать простые графические окна для своих игр. Они не должны быть супер сложными или сложными. Они могут быть очень простыми. Он спрашивает, как создавать новые окна в стеке стека и рисовать его игру 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

Итак, вы просите API для Windows или для консоли? Если вы ищете окно api, Майкл ответил на ваш вопрос. – MrSykkox

0

Создание новых окон можно получить довольно волосатые (т. Е код может быть сложным и трудным для чтения). Я попытаюсь дать несколько высокоуровневый обзор, а затем свяжу вас с хорошим учебным пособием по загрузке основного окна.

Вы должны объявить несколько переменных типов HWND и WNDCLASSEX и вызвать кучу функций Windows API, чтобы инициализировать окно с некоторыми настройками и этажерки.

Как только это будет сделано, вы должны ввести цикл, который обрабатывает все окна взаимодействия, как правило, с TranslateMessage и DispatchMessage внутри цикла.

Вам также необходимо реализовать процедуру обратного вызова для обработки событий Windows, таких как щелчки мышью, закрытие окна и т. Д. Это обычно делается в LRESULT CALLBACK WndProcedure.

Я сейчас бросил кучу новых слов и идей с небольшим объяснением; ознакомьтесь с этим руководством для полного примера того, что я только что пытался объяснить.

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

Надеется, что это помогает!

Кроме того - это все предполагается, что вы работаете в Windows на основе ваших комментариев о Windows API (например, windows.h). Если вы работаете в Linux, вам нужно будет использовать X.

+0

Но в 80-е годы, с DOS, вы могли бы создать новый экран для игры. ОС также предоставила некоторый API. –

+0

Я не был для DOS, но я предполагаю, что да, нужен API. Я думаю, что вы пытаетесь создать окно без использования каких-либо API и просто C. Это невозможно сделать; вам нужно написать много сборки, так как вы имеете дело с оборудованием GPU. Кроме того, доступ к GPU таким образом непрост, так как обычно они не являются открытым исходным кодом. Программирование сборки без спецификаций невероятно сложно, и очень немногие люди могут это сделать. Я бы не рекомендовал попробовать. Windows получает свое имя по причине, предоставляя API для создания окон/графических интерфейсов. Он предназначен для этой цели. –

0

Программирование C относится к 1970-м годам, поэтому вы можете думать о создании игр, подобных той эпохе. Окно или новый экран загружается несколькими предпроцессорными директивами, которые уже скомпилированы и сохранены разработчиками. новый экран может быть достигнуто путем предоставления несколько команд:

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

    local declarations; 
    And your program for the game; 

    getch(); 
} 

что это в основном сделать, это функция Геч(); который хранится в (conio.h), откроет новое окно, и он отобразит выход, пока он не получит значение с клавиатуры, т.е. отображает вывод до нажатия любой клавиши с клавиатуры.

надеюсь, что этот ответ поможет вам.

+0

Это компьютер, который поддерживает графику или ОС, который это делает? –

Смежные вопросы