Суббота, 04 Мая 2024, 11:42

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Записи участника » Нохчи [677]
Результаты поиска
НохчиДата: Вторник, 27 Марта 2012, 19:51 | Сообщение # 581 | Тема: Вопрос-Ответ (C++)
заслуженный участник
Сейчас нет на сайте
Quote (mopo)
Если ты сравниваешь две строки то используй тип char, и для сравнения используй функцию int strcmp(const char *str1, char *str2);

Зачем?


Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Вторник, 27 Марта 2012, 19:03 | Сообщение # 582 | Тема: Вопрос-Ответ (C++)
заслуженный участник
Сейчас нет на сайте
Наркоманы какие-то. Какого **** реализацию функции пихать в хедер?
Quote (goldsphere)
string perem1;(кстати string у меня не подсвечивает, как все остальные типы) Когда я хочу сравнить эту переменную с какой-нибудь строкой,он выдаёт ошибку(типа для этой переменной необходим тип bool)А мне bool не нужен, мне нужен string)))

Накосячил значит где-то, код покажи.


Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Понедельник, 26 Марта 2012, 11:58 | Сообщение # 583 | Тема: Вопрос-Ответ (C++)
заслуженный участник
Сейчас нет на сайте
Да.

Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Понедельник, 26 Марта 2012, 11:45 | Сообщение # 584 | Тема: Вопрос-Ответ (C++)
заслуженный участник
Сейчас нет на сайте
В utils.cpp реализация функции, в utils.h ее прототип. Функция main знает ее прототип(ибо include "utils.h") и этого достаточно чтобы вызвать ее.

Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Понедельник, 26 Марта 2012, 10:50 | Сообщение # 585 | Тема: Вопрос-Ответ (C++)
заслуженный участник
Сейчас нет на сайте
Ок. У меня есть файл main.cpp, в котором прописывается вся игровая логика и есть файл utils.cpp, в которым находятся некоторые полезные функции, которые при необходимости я без каких-либо изменений могу использовать в следующем своем проекте. Вот их урезанные варианты:

utils.h
Code

#ifdef _DEBUG
#define    CheckPtr(ptr, msg, needExit)      \
   do                    \
   {        \
    if(NULL == ptr){      \
    printf("'%s' returned null pointer\n",msg);   \
    if(needExit)      \
    ExitProcess(1);      \
    }       \
   }while(0)   

#else   
#define CheckPtr(fname)
#endif   

VOID MakeColorKey(HGE *hge,HTEXTURE tex, DWORD color);


utils.cpp
Code

/*
   Функция делает участки с цветом color в текстуре tex прозрачными
*/
VOID MakeColorKey(HTEXTURE tex, DWORD color)
{
   HTEXTURE hTex = tex;
     
   DWORD texWidth = Texture_GetWidth(hTex);
   DWORD texHeight = Texture_GetHeight(hTex);

   DWORD *Bitmap = Texture_Lock(hTex,FALSE);
   CheckPtr(Bitmap,"'Bitmap' in 'MakeColorKey'",1);

   for(DWORD i = 0; i<texWidth*texHeight; i++)
   {
    if(Bitmap[i] == color)   
     Bitmap[i] = 0;
   }
                return;
}


main.cpp
Code

include "utils.h"
int main()
{
        HTEXTURE tex = new Sprite("img.png");
        MakeColorKey(tex,0xFFFFFFFF);
        Sprite *spr = new Sprite(tex);
        CheckPtr(spr,'spr in main()',true);
        spr->render()
}

Пример с классами был бы лучше, но тебе насколько я понял до них еще далеко.


Многие вопросы по Windows отпадут, если посмотреть тут

Сообщение отредактировал Нохчи - Понедельник, 26 Марта 2012, 10:53
НохчиДата: Понедельник, 26 Марта 2012, 10:23 | Сообщение # 586 | Тема: Вопрос-Ответ (C++)
заслуженный участник
Сейчас нет на сайте
Quote (goldsphere)
возможно эту функцию можно записать в .h?

Если запихнуть реализацию функции в .h и подключить этот хедер к нескольким .cpp, то компилер начнет орать о multiple definition, поэтому нормальные люди в хедерах пишут прототип и подключают его везде, где функция используется. А реализация может быть только в одном .cpp.

Quote (goldsphere)
Странно, но в книге, код не разносили по разным файлам...

Короткие примеры из книг разносить смысла нет, вот когда размер кода переваливает за несколько сотен строк, приходит понимание, что все это г* нужно как-то структуризировать.

Quote (goldsphere)
А каково применение прототипов, если у нас код только в 1 cpp файле?

Вообще-то в таком случае оно не нужно, но можно сделать так:
Code

int add(int a, int b);
int main()
{
     printf("%d",add(10,2));
     return 0;
}

int add(int a, int b)
{
     return a+b;
}

Ну ты понял happy


Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Понедельник, 26 Марта 2012, 09:23 | Сообщение # 587 | Тема: Вопрос-Ответ (C++)
заслуженный участник
Сейчас нет на сайте
goldsphere, представь, что у тебя очень много кода и он разнесен по нескольким .cpp файлам. В одном из этих файлов реализуется некая кошерная функция, которую тебе понадобилось вызвать из кода в другом файле. Что будешь делать?

Многие вопросы по Windows отпадут, если посмотреть тут

Сообщение отредактировал Нохчи - Понедельник, 26 Марта 2012, 09:23
НохчиДата: Понедельник, 26 Марта 2012, 09:21 | Сообщение # 588 | Тема: Убить себя или что нужно изменить?
заслуженный участник
Сейчас нет на сайте
На видео сними, плииииз.

Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Понедельник, 26 Марта 2012, 01:12 | Сообщение # 589 | Тема: always on top в full-screen играх
заслуженный участник
Сейчас нет на сайте
Нужно просто погуглить по запросу гуи на ДиректХ/ОпенГЛ. Вот к примеру:
cegui.org.uk/wiki/index.php/Main_Page


Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Понедельник, 26 Марта 2012, 00:41 | Сообщение # 590 | Тема: always on top в full-screen играх
заслуженный участник
Сейчас нет на сайте
Теперь вопрос понятен. Боюсь ничем не могу помочь. Средствами GDI такое не решить.

Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Понедельник, 26 Марта 2012, 00:24 | Сообщение # 591 | Тема: always on top в full-screen играх
заслуженный участник
Сейчас нет на сайте
Немного не понял, вся проблема в том, чтобы правильно переходить в полноэкранный и оконный режимы?
На каком движке/ГАПИ пишется игра.


Многие вопросы по Windows отпадут, если посмотреть тут

Сообщение отредактировал Нохчи - Понедельник, 26 Марта 2012, 00:30
НохчиДата: Воскресенье, 25 Марта 2012, 23:54 | Сообщение # 592 | Тема: always on top в full-screen играх
заслуженный участник
Сейчас нет на сайте
Любым. Если три листбокса - это все, что тебе нужно, нет смысла цеплять сторонние либы, юзай WinAPI.

Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Воскресенье, 25 Марта 2012, 11:52 | Сообщение # 593 | Тема: Нужен пример AI футболистов в ГМ
заслуженный участник
Сейчас нет на сайте
На sourceforge.net видел как-то футболл, разумеется не на гм, но при желании разберешься.

Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Воскресенье, 25 Марта 2012, 10:12 | Сообщение # 594 | Тема: Соединение актуатора к контроллеру в скрипте
заслуженный участник
Сейчас нет на сайте
актуатор? :d

Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Пятница, 23 Марта 2012, 10:14 | Сообщение # 595 | Тема: Яблочная Лихорадка [3D]
заслуженный участник
Сейчас нет на сайте
На чем оно написано?

Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Четверг, 22 Марта 2012, 22:34 | Сообщение # 596 | Тема: Сказ о Шмеле и Крабе
заслуженный участник
Сейчас нет на сайте
Первый проект, достойный внимания, гуд. Если понадобится помощь по части кодинга, можете обращаться.

Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Четверг, 22 Марта 2012, 20:23 | Сообщение # 597 | Тема: 2D Sapphire
заслуженный участник
Сейчас нет на сайте
Товарищи, а там с системами частиц как?

Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Четверг, 22 Марта 2012, 20:04 | Сообщение # 598 | Тема: Программирование
заслуженный участник
Сейчас нет на сайте
Quote (Vinchensoo)
Ниче, что linux, например, написан на С?

Это кошмар что там творится, повсеместные костыли в попытках превратить С в плюсы. Инфа 146%
Quote (Vinchensoo)
С быстрее, к примеру.

Если не юзать STL, вирт. методы и RTTI ассемблерные листинги, которые выдаёт мой компилер идентичен сишному.
Quote (Vinchensoo)
Какой-то ужасный недоязык, который ты толкаешь новичкам все время. Почему ужасный? Найди мне хоть одну вакансию программиста на этом языке. И спорить, что он нормальный- можно даже не пытаться.

+1

Добавлено (22.03.2012, 20:04)
---------------------------------------------
Quote (PBPROG)
Хоть одну вакансию? Держи ссыль.

Quote
требуются программисты со знанием этого языка
задач много и все разные

Как бы намекает на примитивизм задач. Чего-нибудь серьезнее курсовиков для студентов-неумех нет?


Многие вопросы по Windows отпадут, если посмотреть тут

Сообщение отредактировал Нохчи - Четверг, 22 Марта 2012, 20:04
НохчиДата: Четверг, 22 Марта 2012, 18:57 | Сообщение # 599 | Тема: Вопрос-Ответ (C++)
заслуженный участник
Сейчас нет на сайте
Quote (Programmist001)
Всем привет кто-бы посоветовал мне учителя по С++

Спорим, он его не выучит? cool


Многие вопросы по Windows отпадут, если посмотреть тут

Сообщение отредактировал Нохчи - Четверг, 22 Марта 2012, 18:57
НохчиДата: Среда, 21 Марта 2012, 22:58 | Сообщение # 600 | Тема: Отрисовка веревки
заслуженный участник
Сейчас нет на сайте
Хмм, ок. Буду пробывать.
Тема актуальна.


Многие вопросы по Windows отпадут, если посмотреть тут
Форум игроделов » Записи участника » Нохчи [677]
Поиск:

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