Пятница, 15 Ноября 2024, 12:50

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос-Ответ (C++)
KornivalДата: Воскресенье, 04 Сентября 2011, 19:10 | Сообщение # 1
The Witcher
Сейчас нет на сайте
Чтобы не создавать отдельную тему на каждый глупый вопрос, предлагаю задавать их здесь.

Saitei: все вопросы по С задаём в теме Вопрос-Ответ (С). Благодарю за внимание!
Animan2010Дата: Пятница, 11 Января 2013, 11:40 | Сообщение # 821
постоянный участник
Сейчас нет на сайте
Спс, Нохчи
Кстати, а как теперь объявить производный класс от cScene и вынести его в отдельный хидер? А то опять проблемы возникают


Anima Games
Animan Publishing
НохчиДата: Пятница, 11 Января 2013, 16:04 | Сообщение # 822
заслуженный участник
Сейчас нет на сайте
Animan2010, у тебя в cSceneManager есть класс в cScene, в cScene класс cSceneManager. Такая рекурсия не есть гуд. Просто пересмотри архитектуру менеджера.

Многие вопросы по Windows отпадут, если посмотреть тут
Animan2010Дата: Пятница, 11 Января 2013, 18:33 | Сообщение # 823
постоянный участник
Сейчас нет на сайте
Со сценами разобрался, поставил include нужных файлов до #pragma once;
Теперь ещё одна проблема ;(
Почему файл scenemenu.h


Не отображает текстуру при render'е, хотя main.cpp делает это без проблем?
Отрывок main.cpp:

bool render_func()
{
hge->Gfx_BeginScene();
hge->Gfx_Clear(0);
scene_manager->render(); //В scene_manager->render() происходит scene_menu->render()
//spr->Render(0,0); //Этот спрайт с текстурой texture_menu, которая находится в textures.h. Если убрать комментирование, то отображает текстуру.
hge->Gfx_EndScene();
return false;
}

Вопрос решен - конструктор сцены меню был вызван до загрузки ресурсов х_х


Anima Games
Animan Publishing


Сообщение отредактировал Animan2010 - Пятница, 11 Января 2013, 19:00
MR_BorgДата: Пятница, 11 Января 2013, 18:50 | Сообщение # 824
участник
Сейчас нет на сайте
Товарищи, есть ли тут знатоки библиотеки FreeImage? Конкретно меня интересует как считать цвета пикселей в массив?

Изучаю C++ попутно пишу игру.
ganstermДата: Суббота, 12 Января 2013, 17:37 | Сообщение # 825
частый гость
Сейчас нет на сайте
del

Сообщение отредактировал gansterm - Суббота, 12 Января 2013, 17:37
stalker5889Дата: Суббота, 09 Марта 2013, 10:30 | Сообщение # 826
Свободный игродел
Сейчас нет на сайте
Двойная буферизация в консоли
Как сделать двойную буферизацию в консоли? Нужна просто функция вывода двухмерного массива на экран, все изменения делаются в других местах.
Сейчас юзаю:
Код
void Draw()//рисование
     {setcur(0,2);//установка курсора в начало
     for(int y=0;y<h;y++)  
     {  
     for(int x=0;x<w;x++)  
     {  
     cout<<map[x][y];    // печатаем таблицу  
     }  
     cout<<"\n";}}
void setcur(int x, int y)//установка курсора на позицию
{
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}

При этом в маленький массив работает без проблем, а на большом появляются лаги и видна прорисовка. sad


nilremДата: Суббота, 09 Марта 2013, 11:08 | Сообщение # 827
Просветленный разум
Сейчас нет на сайте
stalker5889,
Используй сишный вывод (printf), он работает минимум в 30 раз быстрее.


Windmill 2

WindMill 2D Game Engine
stalker5889Дата: Суббота, 09 Марта 2013, 11:20 | Сообщение # 828
Свободный игродел
Сейчас нет на сайте
nilrem, никогда не юзал его, не получается вывести массив map[x][y].



Сообщение отредактировал stalker5889 - Суббота, 09 Марта 2013, 17:45
geralexДата: Понедельник, 11 Марта 2013, 17:25 | Сообщение # 829
участник
Сейчас нет на сайте
Подскажите, на форме есть радио кнопки. В коде ведется лог (new StreamWriter) как добавить в имя сохраняемого файла имя выбранной радио кнопки??

Код
\logs_" + DateTime.Now.ToString("dd-MM-yyyy hh-mm-ss") + ".txt"
NoterstoneДата: Пятница, 15 Марта 2013, 14:14 | Сообщение # 830
участник
Сейчас нет на сайте
Занимаюсь программированием С++, новичок. Вот хочу спросить как делать оконные приложения, просто в консоли уже не так интересно. Если есть какие то книги по этому то дайте название или ещё лучше ссылку. С меня +

Добавлено (15.03.2013, 14:14)
---------------------------------------------
Такое ощущение что все вымерли dont

ArchidoДата: Пятница, 15 Марта 2013, 14:40 | Сообщение # 831
Сэнсэй
Сейчас нет на сайте
Так такое блин гуглится за 5 мин smile

Какая среда разработки? Если MSVS - то прямо там же можно и создавать GUI, раскидывая по форме различные контроллы. Но я бы, правда, вместо MFC посоветовал сразу начинать с Qt - толку будет больше. Единственное, что если знания пока только базовые - оно, вероятно, может показаться сложным. Тут есть несколько книженций по нему... если хочется, то можно и по MFC нагуглить вполне.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
NoterstoneДата: Пятница, 15 Марта 2013, 14:54 | Сообщение # 832
участник
Сейчас нет на сайте
А мне интереснее у вас спросить biggrin
Animan2010Дата: Воскресенье, 31 Марта 2013, 14:37 | Сообщение # 833
постоянный участник
Сейчас нет на сайте
Всем привет) Возник вопрос:
Запихнул в std::list<hgeSprite*> несколько указателей на hgeSprite, но не могу вызвать метод hgeSprite'а Render(х,у).

for(std::list<hgeSprite*>::iterator it = _list.begin(); it != _list.end(); it++)
{
it->Render(0,0);
}

В чем проблема? Выдает error C2039: 'Render' : is not a member of 'std::list<_Ty>::_Iterator<_Secure_validation>


Anima Games
Animan Publishing
RUNGOGET2THECHOPAHДата: Воскресенье, 31 Марта 2013, 14:51 | Сообщение # 834
участник
Сейчас нет на сайте
Animan2010, нужно так: (*it)->Render(0,0);
Итератор - по сути указатель на то, что лежит в текущем звене списка, т.е. в твоем случае это указатель на указатель на hgeSprite.
Animan2010Дата: Среда, 10 Апреля 2013, 21:32 | Сообщение # 835
постоянный участник
Сейчас нет на сайте
RUNGOGET2THECHOPAH, спасибо, заработало =)
Я уже пробовал разыменовать указатель, но не добавил скобки, поэтому получил ту же ошибку)

Добавлено (10.04.2013, 21:32)
---------------------------------------------
Возможно, это у меня одного глюки такие, но хотелось бы узнать, почему в Visual C++ 2008 глючит intellisense?
К примеру:

HGE* hge;
function func()
{
hge->//Тут разыменуем указатель и интеллисенс хорошо показывает список всех функций и свойств
//Далее, допустим, пишем условие
if(chto-to-tam)
{
hge->//А вот тут уже интеллисенс нифига не открывается и внизу ide написано что-то про "интеллисенс не понимает, что вы от него хотите, смотрите в справку".

Если покликать тут и там, через секунд 20 интеллисенс снова будет нормально работать. Несмертельно, конечно, но я пока ещё изучаю движок, поэтому не уверен в названии некоторых функций


Anima Games
Animan Publishing
НохчиДата: Четверг, 11 Апреля 2013, 01:00 | Сообщение # 836
заслуженный участник
Сейчас нет на сайте
Попробуй удалить *.ncb файл. Это заставит intellisense заново проанализировать весь код. Иногда помогает.

Многие вопросы по Windows отпадут, если посмотреть тут
Animan2010Дата: Четверг, 11 Апреля 2013, 17:08 | Сообщение # 837
постоянный участник
Сейчас нет на сайте
Не помогло =( На code::blocks может перейти, или новую студию

Anima Games
Animan Publishing
x_XДата: Пятница, 26 Апреля 2013, 02:30 | Сообщение # 838
был не раз
Сейчас нет на сайте
Animan2010, юзай плагин Visual Assist
DeswingДата: Понедельник, 29 Апреля 2013, 18:18 | Сообщение # 839
заслуженный участник
Сейчас нет на сайте
как лучше осуществлять суммирование чисел?
Вот так:
Код
#include <iostream>
#include <conio.h>
#define sum(a,b) a+b
using namespace std;

void main()
{
  cout<<sum(3,4);
  _getch();
}

или через эту функцию:
Код
int sum(a,b)
{
return a+b;
}

?

Добавлено (29.04.2013, 18:18)
---------------------------------------------
и для чего нужен #undef? Я как понял, для того чтобы "забыть", "стереть" значение переменной, которая была установлена в #define. Но на практике НУ СОВСЕМ не могу понять как применить. Пожалуйста, помогите разобраться

RUNGOGET2THECHOPAHДата: Понедельник, 29 Апреля 2013, 18:39 | Сообщение # 840
участник
Сейчас нет на сайте
Deswing, лучше сразу писать 3 + 4 там, где надо.
Поиск:

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