Результаты поиска
| |
Saitei | Дата: Четверг, 14 Июня 2012, 16:23 | Сообщение # 1401 | Тема: Вопрос-Ответ (C++) |
старожил
Сейчас нет на сайте
| switch умеет работать с текстовыми условиями? Ну... Я хотел сделать так: Code #include <iostream> using namespace std; char a[255]; int main() { switch(a) { case olololo { cout << Yep!<<endl; }
} }
|
|
| |
Saitei | Дата: Четверг, 14 Июня 2012, 15:53 | Сообщение # 1402 | Тема: Locked World |
старожил
Сейчас нет на сайте
| Большое спасибо тебе, imperator12. Буду переписывать Добавлено (14.06.2012, 15:53) ---------------------------------------------
Quote (Saitei) Мне очень нужен человек, который будет исполнять роль генератора идей, и геймдизайнера (я не кусаюсь, не бойтесь. Обещаю быть не очень скучным). Всё ещё актуально
|
|
| |
Saitei | Дата: Четверг, 14 Июня 2012, 15:38 | Сообщение # 1403 | Тема: Кубик 2 "большое путешествие" |
старожил
Сейчас нет на сайте
| Quote (mobipak) Игро-елы Такой професии не существует Quote (XsmileX) Сообщение отредактировал XsmileX - Среда, 13.06.2012, 14:19 Насчет "Игро-елы" - тонкий юмор. Но в принципе да, понятие "игроделы" очень обширное
|
|
| |
Saitei | Дата: Четверг, 14 Июня 2012, 14:06 | Сообщение # 1404 | Тема: Locked World |
старожил
Сейчас нет на сайте
| Quote (imperator12) Skype or ICQ нет могу зарегаться но учти сразу по русски я почти не говорю если поймеш украинский напиши в ЛС тогда зарегестрируюсь и все обясню. А так если будут какието вопросы пишы в ЛС.
Еще могу посоветовать книгу лафоре «объектно-ориентированное программирование в c++» сам по ней учился Хорошо. Украинский знаю
|
|
| |
Saitei | Дата: Четверг, 14 Июня 2012, 13:39 | Сообщение # 1405 | Тема: Locked World |
старожил
Сейчас нет на сайте
| Quote (imperator12) класс для работы Я ещё учусь)) Если объяснишь - попробую (Skype or ICQ есть?)
|
|
| |
Saitei | Дата: Четверг, 14 Июня 2012, 13:20 | Сообщение # 1406 | Тема: Locked World |
старожил
Сейчас нет на сайте
| Quote (ЙаСаня) Хм... Это я могу, как раз мне летом делать нечего, да и есть опыт :\ (кроме чтения книг) Сейчас напишу в ЛС Можно попробовать. Жду.
|
|
| |
Saitei | Дата: Четверг, 14 Июня 2012, 13:12 | Сообщение # 1407 | Тема: Locked World |
старожил
Сейчас нет на сайте
| Quote (ЙаСаня) Думаю стоит изучить C++ По какой литературе учишься? C++ Без страха, смотрю в справку, вычитываю отдельные функции и применяю на практике Для начала: Quote (Saitei) Мне очень нужен человек, который будет исполнять роль генератора идей, и геймдизайнера
|
|
| |
Saitei | Дата: Четверг, 14 Июня 2012, 11:06 | Сообщение # 1408 | Тема: стоит ли новичку писать движок с нуля на C++? |
старожил
Сейчас нет на сайте
| Только нужно учитывать, что на HGE и BASS две разные лицензии. Bass платен (звуковая часть движка) Ну а покопаться - запросто!Добавлено (14.06.2012, 11:06) ---------------------------------------------
Quote (Saitei) Bass платен (звуковая часть движка) P.S. Но порыться можно. +эту часть можно заменить
|
|
| |
Saitei | Дата: Четверг, 14 Июня 2012, 10:57 | Сообщение # 1409 | Тема: Locked World |
старожил
Сейчас нет на сайте
| Bassel, поговорил со знакомыми, подумал. Действия врага будут зависеть от действий игрока. +иногда подключается рандом для внезапности Грубо говоря: множество моделей поведения для врага будут осуществлены. Но самому все эти идеи тягать сложновато...Добавлено (14.06.2012, 10:57) --------------------------------------------- команда build кстати недописанная Quote (Saitei) cout<<"База "<<Base<<"-го уровня"<<endl; а тут ошибочку нашел: cout<<"База "<<Base-1<<"-го уровня"<<endl; //Ввиду того, что "1" - сооружение не построено, а "2" - сооружение 1-го уровня
|
|
| |
Saitei | Дата: Среда, 13 Июня 2012, 23:18 | Сообщение # 1410 | Тема: Locked World |
старожил
Сейчас нет на сайте
| Quote (Bassel) Saitei, ты же вроде HGE изучаешь? на нем бы и делал стратегию ))) Ну раз с текстовой начал, то удачи HGE - движок, а я хочу сделать игру без движка
|
|
| |
Saitei | Дата: Среда, 13 Июня 2012, 22:39 | Сообщение # 1411 | Тема: Locked World |
старожил
Сейчас нет на сайте
| Quote (XsmileX) Saitei, Не плохо. Мне пока что ни холодно, ни жарко от таких слов. Но спасибо
|
|
| |
Saitei | Дата: Среда, 13 Июня 2012, 20:42 | Сообщение # 1412 | Тема: Locked World |
старожил
Сейчас нет на сайте
| Quote (BASS) Я в С++ не силён.... Можно скриншоты? Да Господи)) Поверхностно начал писать команды и решил-таки людей поискать Там куча скринов надо делать, мне лень (как и писал выше - я самый чистокровный лентяй))) Вот так выглядит окошко при старте: При вводе "help": ну и т.д.
|
|
| |
Saitei | Дата: Среда, 13 Июня 2012, 20:12 | Сообщение # 1413 | Тема: Locked World |
старожил
Сейчас нет на сайте
| Привет всем! Я вот совсем недавно начал разрабатывать свою первую игру на С++. Что она из себя будет представлять и вообще что это за "консольная стратегия", спросите вы? Всё на самом деле просто - я самый настоящий лентяй из лентяев, который не захотел учить всякие DirectX, OpenGL, WinAPI. Поэтому я решил сделать игру без графики (гениальный ход, как для лентяя, верно? ). То есть процесс игры - сущие команды, очень много текста. В принципе ничего сложного, но часто у меня возникают в голове разногласия и нужна помощь со стороны. Мне очень нужен человек, который будет исполнять роль генератора идей, и геймдизайнера (я не кусаюсь, не бойтесь. Обещаю быть не очень скучным). По сути дела нужен люд, который просто сможет меня поддержать, "доразвить" (если так можно выразиться) мою идею, указать на недостатки и вообще полакомить меня новыми идеями. С меня - код, с вас - идеи Среда разработки: С++ Жанр: Стратегия Открытый код: Да, любой желающий потом сможет взять и использовать в своих целях исходный код игры Пока напишу то, что у меня есть (работал ну совсеееееееееем мало (я же самый настоящий лентяй (: ): Code #include <iostream> #include <conio.h> //Чтобы работала команда "getch()" #include <Windows.h> #include <string> using namespace std; int main() { setlocale( LC_ALL, "Russian" ); //Для корректной работы русских символов int UserBase = 1000; //Прочность базы игрока (её хп). Не регенирируется int EnemyBase = 1000; //Прочность базы проитвника int choose = 1; //1 - ход игрока, 2 - ход противника
///////////////////////////////////////////////// ///////Ресурсы игрока/////////////////////////// //////////////////////////////////////////////// int wood=500; int gold=200; int food=10; //////////////////////////////////////////////// ////////////////////////////////////////////////
///////////////////////////////////////////////// ///////Постройки игрока////////////////////////// //////////////////////////////////////////////// //(1 - сооружение не построено, 2 - сооружение 1 уровня, 3 - сооружение 2 уровня и так далее <img src="http://s12.ucoz.net/sm/1/smile.gif" border="0" align="absmiddle" alt="smile" /> int Base = 2; //Наша база. Если её уничтожит противник - нам крышка <img src="http://s12.ucoz.net/sm/1/sad.gif" border="0" align="absmiddle" alt="sad" /> int Tower = 1; //Башня, которая защищает базу от недругов //////////////////////////////////////////////// ////////////////////////////////////////////////
string command; //Первый ход - ход игрока. С каждым ходом высвечивается информационное табло с еткущим состоянием (постройки, ресурсы и т.п.) cout<< "Наберите в консоли 'help', чтобы узнать о всех командах игры"<<endl; if (choose = 1) { Start1: cin>>command; //Игроку дана возможность командовать. То есть предпринимать какие-либо действия (его ход) if (command=="help") //Если набрали команду "help", то выскакивает помощь (все доступные команды игры) { system("cls"); cout<<"'res' - количество ресурсов на данный момент"<<endl; cout<<"'build' - построить или улучшить строение"<<endl; cout<<"'attack' - если у Вас построены бараки и есть в наличии хотя бы один юнит,"<<endl<<"то вы можете послать свою армию в атаку!"<<endl; goto Start1; } if (command=="res") //Команда res { system("cls"); cout<<"Золото:"<<gold<<endl; cout<<"Дерево:"<<wood<<endl; cout<<"Еда:"<<food<<endl; goto Start1; } if (command=="build") //Команда build { system("cls"); cout<<"Построенные сооружения:"<<endl; if (Base > 1) { cout<<"База "<<Base<<"-го уровня"<<endl; } }
} Sleep(8000000); } Вы только учтите - С++ учу не так давно. Я просто учусь))
Сообщение отредактировал Saitei - Среда, 13 Июня 2012, 20:15 |
|
| |
Saitei | Дата: Вторник, 12 Июня 2012, 22:54 | Сообщение # 1414 | Тема: Кубик 2 "большое путешествие" |
старожил
Сейчас нет на сайте
| XsmileX, атмосфера уже чуть не та...
|
|
| |
Saitei | Дата: Вторник, 12 Июня 2012, 22:29 | Сообщение # 1415 | Тема: Кубик 2 "большое путешествие" |
старожил
Сейчас нет на сайте
| Сам знаешь моё отношение к проекту Мне вот как-то не очень понравились облачка и сама платформа главного героя
|
|
| |
Saitei | Дата: Суббота, 09 Июня 2012, 23:56 | Сообщение # 1416 | Тема: Вопрос-Ответ (C++) |
старожил
Сейчас нет на сайте
| Почему я не могу юзать getline()? Подчеркивает красным сразу же... Подключал вот что: Code #include <stdio.h> #include <iostream> #include <conio.h> using namespace std;
|
|
| |
Saitei | Дата: Суббота, 09 Июня 2012, 23:09 | Сообщение # 1417 | Тема: Помогите пожалуйста новичку. Есть вопросы |
старожил
Сейчас нет на сайте
| Quote (Нохчи) Я вот что не пойму, оно реально компилируется? Выложи всю папку с проектом, я хочу поглядеть на это чудо. Okay... Вот оно: Ссылка на файлДобавлено (09.06.2012, 19:07) --------------------------------------------- Ещё фиг его знает что за фигня с форматами: Quote HGE::Music_Load
Загружает музыку из памяти, архива ресурсов или диска.
HMUSIC Music_Load( const char *filename, DWORD size = 0 ); Параметры filename Имя файла с музыкой. size Если этот параметр не равен 0, то он означает количество блоков памяти, содержащих музыку в одном из известных форматов и параметр filename рассматривается как указатель на блок памяти. Возвращаемое значение В случае успеха, возвращается идентификатор музыки, который можно использовать в функции Music_Play. Otherwise returns 0.
Примечания Поддерживаются форматы MO3, IT, XM, S3M, MTM, MOD and UMX.
Если filename определяет относительный путь, музыкальный файл сначала ищется во всех присоедененных с помощью функции Resource_AttachPack архивах ресурсов, затем в директории приложения. Если filename определяет абсолютный путь, музыкальный файл загружается напрямую с диска.
Если функция завершается аварийно, вы можете получить сообщение об ошибке при помощи функции System_GetErrorMessage. Если установлена переменная системы HGE_LOGFILE, сообщение об ошибке будет записано в файл протокола.
Если музыка больше не нужна, ее необходимо удали с помощью вызова функуии Music_Free.
Требования Заголовок: hge.h Библиотека импорта: hge.lib
Смотрите также Music_Free, Music_Play Добавлено (09.06.2012, 23:07) --------------------------------------------- С проигрыванием музыки вопрос актуален. И кстати... Что такое getchar()? Добавлено (09.06.2012, 23:09) ---------------------------------------------
Неактуально. Quote (Saitei) С проигрыванием музыки вопрос актуален. Вопрос актуален
|
|
| |
Saitei | Дата: Суббота, 09 Июня 2012, 18:06 | Сообщение # 1418 | Тема: Помогите пожалуйста новичку. Есть вопросы |
старожил
Сейчас нет на сайте
| Quote (Нохчи) Положи bass.dll рядом с hge.dll лежит)) Всё подключеноДобавлено (09.06.2012, 18:06) --------------------------------------------- Вот так выглядит моя папка с проектом: А вот мой код (немного изменен): Code #include "hge.h" #include "hgesprite.h"
#pragma comment(lib, "hge.lib") #pragma comment(lib, "hgehelp.lib")
HGE *hge = 0; //Главная переменная движка hgeSprite *spr = 0; //Указатель на спрайт hgeSprite *spr2 = 0; //Возвращает 1, если нужно завершить программу //Функция обработчика клавиш
float x = 100; float y = 100; float x2= 250; float y2= 100;
bool FrameFunc() { // Если нажимаем ESC, то программа завершает работу if (hge->Input_GetKeyState(HGEK_ESCAPE)) return true;
if (hge->Input_GetKeyState(HGEK_LEFT)) { x-= 1; } if (hge->Input_GetKeyState(HGEK_RIGHT)) { x+= 1; } if (hge->Input_GetKeyState(HGEK_UP)) { y-= 1; } if (hge->Input_GetKeyState(HGEK_DOWN)) { y+= 1; }
if (hge->Input_GetKeyState(HGEK_A)) { x2-= 1; } if (hge->Input_GetKeyState(HGEK_D)) { x2+= 1; } if (hge->Input_GetKeyState(HGEK_W)) { y2-= 1; } if (hge->Input_GetKeyState(HGEK_S)) { y2+= 1; }
// Если 0 - то продолжаем работу return false; }
bool RenderFunc() //Функция отображения (рисования) { hge->Gfx_BeginScene(); //Начало сцены hge->Gfx_Clear(0);
spr->Render(x, y); //Рисование спрайта spr2->Render(x2, y2); //Рисование спрайта
hge->Gfx_EndScene(); //Конец сцены
return false; }
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
hge = hgeCreate(HGE_VERSION); spr = new hgeSprite(NULL, x, y, 100, 100);//Создание спрайта spr2 = new hgeSprite(NULL, x2, y2, 50, 50);//Создание спрайта //Назначение функции обработчика клавишь hge->System_SetState(HGE_FRAMEFUNC, FrameFunc); hge->System_SetState(HGE_RENDERFUNC, RenderFunc);
//Заголовок окна hge->System_SetState(HGE_TITLE, "My Game"); // Запуск в окнном режиме // Default window size is 800x600 hge->System_SetState(HGE_WINDOWED, true);
// Использование звука hge->System_SetState(HGE_USESOUND, true);
HMUSIC Music_Load( const char mmusic, DWORD size = 0 ); //Загружаем музыку (файл)
HCHANNEL Music_Play( HMUSIC mmusic, bool loop ); //Проигрываем музыку
// Tries to initiate HGE with the states set. // If something goes wrong, "false" is returned // and more specific description of what have // happened can be read with System_GetErrorMessage(). if(hge->System_Initiate()) { // Starts running FrameFunc(). // Note that the execution "stops" here // until "true" is returned from FrameFunc(). hge->System_Start(); } else { // If HGE initialization failed show error message }
// Now ESC has been pressed or the user // has closed the window by other means.
// Restore video mode and free // all allocated resources hge->System_Shutdown();
// Release the HGE interface. // If there are no more references, // the HGE object will be deleted. hge->Release();
delete spr;
return 0; }
|
|
| |
Saitei | Дата: Суббота, 09 Июня 2012, 17:57 | Сообщение # 1419 | Тема: Помогите пожалуйста новичку. Есть вопросы |
старожил
Сейчас нет на сайте
| Написал я, значит, вот что:
Quote HMUSIC Music_Load( const char *mmusic, DWORD size = 0 ); //Загружаем музыку (файл)
HCHANNEL Music_Play( HMUSIC mmusic, bool loop ); //Проигрываем музыку и Quote hge->System_SetState(HGE_USESOUND, true); не пашет...Добавлено (09.06.2012, 17:57) ---------------------------------------------
Quote (Нохчи) То есть тебе с двигом помогал лично Haafs? хд Нет конечно. Просто человек, который написал игру на этом движке и защитил диплом))
|
|
| |
Saitei | Дата: Суббота, 09 Июня 2012, 17:42 | Сообщение # 1420 | Тема: Помогите пожалуйста новичку. Есть вопросы |
старожил
Сейчас нет на сайте
| Quote (goldsphere) Можно пользоваться double - самый большой тип.К тому же можно дробные числа вбивать double и float для десятичных чиселДобавлено (09.06.2012, 16:21) --------------------------------------------- Вот она! Вот она рыба моей мечты! Йаааааааазь! Так... О чём это я?))) Оказывается парень моей сестры раньше защищал диплом, он труотец в движке HGE. Попросил помочь его подключить. Немного поспрашивал теорию, он мне даже по С++ помог немножко. Понаписал коментарии, чтобы не забыть. Подключил много библиотек и заголовочных файлов, сделал окошко с размерами 800x600, сделал заголовок "My Game", программно нарисовал в окошке квадратик на таких координатах: 100, 100 с размерами 100, 100; сделал для него управление стрелочками Вот мой код (часть - код движка (мне помогли его немного изменить + я игнорирую кое-какую либу)): Code #include "hge.h" #include "hgesprite.h"
#pragma comment(lib, "hge.lib") #pragma comment(lib, "hgehelp.lib")
HGE *hge = 0; //Главная переменная движка hgeSprite *spr = 0; //Указатель на спрайт //Возвращает 1, если нужно завершить программу //Функция обработчика клавиш
float x = 100; float y = 100;
bool FrameFunc() { // Если нажимаем ESC, то программа завершает работу if (hge->Input_GetKeyState(HGEK_ESCAPE)) return true;
if (hge->Input_GetKeyState(HGEK_LEFT)) { x-= 1; } if (hge->Input_GetKeyState(HGEK_RIGHT)) { x+= 1; } if (hge->Input_GetKeyState(HGEK_UP)) { y-= 1; } if (hge->Input_GetKeyState(HGEK_DOWN)) { y+= 1; }
// Если 0 - то продолжаем работу return false; }
bool RenderFunc() //Функция отображения (рисования) { hge->Gfx_BeginScene(); //Начало сцены hge->Gfx_Clear(0);
spr->Render(x, y); //Рисование спрайта
hge->Gfx_EndScene(); //Конец сцены
return false; }
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
hge = hgeCreate(HGE_VERSION); spr = new hgeSprite(NULL, x, y, 100, 100);//Создание спрайта //Назначение функции обработчика клавишь hge->System_SetState(HGE_FRAMEFUNC, FrameFunc); hge->System_SetState(HGE_RENDERFUNC, RenderFunc);
//Заголовок окна hge->System_SetState(HGE_TITLE, "My Game"); // Запуск в окнном режиме // Default window size is 800x600 hge->System_SetState(HGE_WINDOWED, true);
// Использование звука hge->System_SetState(HGE_USESOUND, false);
// Tries to initiate HGE with the states set. // If something goes wrong, "false" is returned // and more specific description of what have // happened can be read with System_GetErrorMessage(). if(hge->System_Initiate()) { // Starts running FrameFunc(). // Note that the execution "stops" here // until "true" is returned from FrameFunc(). hge->System_Start(); } else { // If HGE initialization failed show error message }
// Now ESC has been pressed or the user // has closed the window by other means.
// Restore video mode and free // all allocated resources hge->System_Shutdown();
// Release the HGE interface. // If there are no more references, // the HGE object will be deleted. hge->Release();
delete spr;
return 0; } С #pragma commen долго думал. Пришел к выводу, что с помощью этой команды подключаются lib файлы. Как видите - верно ))Добавлено (09.06.2012, 16:23) ---------------------------------------------
Quote (Saitei) Подключил много библиотек и заголовочных файлов, сделал окошко с размерами 800x600, сделал заголовок "My Game", программно нарисовал в окошке квадратик на таких координатах: 100, 100 с размерами 100, 100; сделал для него управление стрелочками P.S.S. Это делал я один, не он. Он только объяснил))) Подключать двиг тоже научилсяДобавлено (09.06.2012, 17:42) --------------------------------------------- Так, ребят. Вопрос теперь обстоит с HGE! Нужно стартануть музычку в окошке Нашел я, значит, вот что: Quote Функции работы с ресурсами Resource_Load Загружает ресурс с диска в память. Resource_Free Удаляет загруженный ресурс из памяти. Resource_AttachPack Присоединяет архив ресурсов. Resource_RemovePack Отсоединяет архив ресурсов. Resource_RemoveAllPacks Отсоединяет все ранее присоединенные архивы ресурсов. Resource_MakePath Строит абсолютный путь к файлу. Resource_EnumFiles Перечисляет все файлы по заданному шаблону. Resource_EnumFolders Перечисляет все директории по заданному шаблону. Quote Функции работы с музыкой Music_Load Загружает с диска музыку в память. Music_Free Удаляет загруженную музыку и ассоциированный с ней ресурс. Music_Play Начинает воспроизведение музыки. Как работать - ещё не врублюсь. Сейчас конечно постараюсь разобраться... Но вряд ли получится
|
|
| |
|