Суббота, 23 Августа 2025, 13:21

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
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)
Мне очень нужен человек, который будет исполнять роль генератора идей, и геймдизайнера (я не кусаюсь, не бойтесь. Обещаю быть не очень скучным).

Всё ещё актуально smile
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++» сам по ней учился

Хорошо. Украинский знаю smile
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++?
старожил
Сейчас нет на сайте
Quote (Snuux)
HGE

Только нужно учитывать, что на HGE и BASS две разные лицензии. Bass платен (звуковая часть движка) sad
Ну а покопаться - запросто!

Добавлено (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)
Я в С++ не силён.... Можно скриншоты?

Да Господи)) Поверхностно начал писать команды и решил-таки людей поискать smile
Там куча скринов надо делать, мне лень (как и писал выше - я самый чистокровный лентяй)))
Вот так выглядит окошко при старте:

При вводе "help":

ну и т.д. smile
SaiteiДата: Среда, 13 Июня 2012, 20:12 | Сообщение # 1413 | Тема: Locked World
старожил
Сейчас нет на сайте
Привет всем! Я вот совсем недавно начал разрабатывать свою первую игру на С++.
Что она из себя будет представлять и вообще что это за "консольная стратегия", спросите вы? Всё на самом деле просто - я самый настоящий лентяй из лентяев, который не захотел учить всякие DirectX, OpenGL, WinAPI. Поэтому я решил сделать игру без графики (гениальный ход, как для лентяя, верно? biggrin ). То есть процесс игры - сущие команды, очень много текста. В принципе ничего сложного, но часто у меня возникают в голове разногласия и нужна помощь со стороны. Мне очень нужен человек, который будет исполнять роль генератора идей, и геймдизайнера (я не кусаюсь, не бойтесь. smile Обещаю быть не очень скучным). По сути дела нужен люд, который просто сможет меня поддержать, "доразвить" (если так можно выразиться) мою идею, указать на недостатки и вообще полакомить меня новыми идеями. С меня - код, с вас - идеи happy
Среда разработки: С++
Жанр: Стратегия
Открытый код: Да, любой желающий потом сможет взять и использовать в своих целях исходный код игры
Пока напишу то, что у меня есть (работал ну совсеееееееееем мало (я же самый настоящий лентяй (: ):
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 "большое путешествие"
старожил
Сейчас нет на сайте
Сам знаешь моё отношение к проекту smile
Мне вот как-то не очень понравились облачка и сама платформа главного героя sad
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)
getchar()?

Неактуально.
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 Начинает воспроизведение музыки.

Как работать - ещё не врублюсь. Сейчас конечно постараюсь разобраться... Но вряд ли получится
Поиск:

Все права сохранены. GcUp.ru © 2008-2025 Рейтинг