Вопрос-Ответ (C++)
|
|
Kornival | Дата: Воскресенье, 04 Сентября 2011, 19:10 | Сообщение # 1 |
The Witcher
Сейчас нет на сайте
| Чтобы не создавать отдельную тему на каждый глупый вопрос, предлагаю задавать их здесь.
Saitei: все вопросы по С задаём в теме Вопрос-Ответ (С). Благодарю за внимание!
|
|
| |
Saitei | Дата: Четверг, 28 Июня 2012, 20:54 | Сообщение # 501 |
старожил
Сейчас нет на сайте
| Quote (Нохчи) В .h пишешь прототип, в .cpp реализацию. типа в .х extern int Lol(int a, int b)?
|
|
| |
Нохчи | Дата: Четверг, 28 Июня 2012, 21:01 | Сообщение # 502 |
заслуженный участник
Сейчас нет на сайте
| extern не нужен.
Многие вопросы по Windows отпадут, если посмотреть тут
|
|
| |
maXimBestUA | Дата: Четверг, 28 Июня 2012, 23:26 | Сообщение # 503 |
почетный гость
Сейчас нет на сайте
| Здраствуйте, у меня появилась небольшая проблема. Вот кусок кода: Code case 1: if(CheckBuilds==false) { if(Grain-Farm.ValueGrain<0||Tree-Farm.ValueTree<0||Stone-Farm.ValueStone<0|| Iron-Farm.ValueIron<0||Gold-Farm.ValueGold<0) CheckBuilds=false; else if(Grain-Farm.ValueGrain>=0||Tree-Farm.ValueTree>=0||Stone-Farm.ValueStone>=0|| Iron-Farm.ValueIron>=0||Gold-Farm.ValueGold>=0) CheckBuilds=true; }
if(CheckBuilds==true) { if(Farm.TimeBuilds>0) Farm.TimeBuilds--; if(Farm.TimeBuilds==0) { Farm.level++; Farm.TimeBuilds=5; CheckBuilds=false;
for(int i=0;i<Farm.level;i++) { Farm.TimeBuilds*=1.5; Farm.consumption*=1.5; Farm.production*=1.5; } } }
А именно проблемма с переменной CheckBuild, в коде можно увидеть что сначала проверяется не работает ли уже эта переменная(не стоит ли true), если стоит false то должна произойти проверка, если при отнимании двух переменных число получается меньше нуля то должно вернуть false. С самого начала у меня стоит случай при вызове этого фрагмента кода при отнимании переменных получается число меньше 0 и возвращает false, все как надо. Но вот когда наступает случай что возвращает true то почемуто больше не возвращает false, даже если при отнимании переменных число меньше нуля почемуто возвращает true. В чем проблемма? Надеюсь не сильно запутал
|
|
| |
Matou | Дата: Четверг, 28 Июня 2012, 23:46 | Сообщение # 504 |
Исходный коТ
Сейчас нет на сайте
| maXimBestUA, сильно запутал. Вот у тебя есть кусок кода, ужасный и кривой. Code if(CheckBuilds==false) { if(Grain-Farm.ValueGrain<0||Tree-Farm.ValueTree<0||Stone-Farm.ValueStone<0|| Iron-Farm.ValueIron<0||Gold-Farm.ValueGold<0) CheckBuilds=false; else if(Grain-Farm.ValueGrain>=0||Tree-Farm.ValueTree>=0||Stone-Farm.ValueStone>=0|| Iron-Farm.ValueIron>=0||Gold-Farm.ValueGold>=0) CheckBuilds=true; } что ты от него хочешь получить?
|
|
| |
maXimBestUA | Дата: Четверг, 28 Июня 2012, 23:59 | Сообщение # 505 |
почетный гость
Сейчас нет на сайте
| Мне нужно чтобы при проверке первого условия if(Grain- Farm.ValueGrain<0||Tree- Farm.ValueTree<0||Stone- Farm.ValueStone<0|| Iron- Farm.ValueIron<0||Gold- Farm.ValueGold<0) CheckBuilds=false; возвращало false если условие верно, при первой проверке все правильно работает, но при повторных выполнениях возвращает почемуто true когда должно быть false
Сообщение отредактировал maXimBestUA - Пятница, 29 Июня 2012, 00:02 |
|
| |
Saitei | Дата: Пятница, 29 Июня 2012, 00:52 | Сообщение # 506 |
старожил
Сейчас нет на сайте
| Здравствуйте. А есть материал по сбору движка? Двигатель - страсть и интерес. Ничего писать с 0 не буду, просто либы вместе подключить. Примеры там есть какие с коментами? Просто глянуть как всё это работает Добавлено (29.06.2012, 00:52) ---------------------------------------------
Quote (Saitei) Здравствуйте. А есть материал по сбору движка? Двигатель - страсть и интерес. Ничего писать с 0 не буду, просто либы вместе подключить. Примеры там есть какие с коментами? Просто глянуть как всё это работает т.е. совмещать возможности либ, делать функции движка. Просто интересно, не более того (не только теория интересна, но и КОД)
|
|
| |
Coment | Дата: Пятница, 29 Июня 2012, 01:24 | Сообщение # 507 |
почетный гость
Сейчас нет на сайте
| maXimBestUA
А ты заметил как происходить проверка вхождения в if(CheckBuilds==false)? Ведь если у тебя стало true, то проверка просто невозможна и дальше следует Code if(CheckBuilds==true) { if(Farm.TimeBuilds>0)...
Поздновато уже, завтра покопаюсь с блоком смены бульевских значений, скорее всего косяки там. А еще лучше воспользуйся дебаггером и посмотри как меняются значения у CheckBuilds
Сообщение отредактировал Coment - Пятница, 29 Июня 2012, 01:35 |
|
| |
maXimBestUA | Дата: Пятница, 29 Июня 2012, 01:39 | Сообщение # 508 |
почетный гость
Сейчас нет на сайте
| Quote (Coment) если у тебя стало true, то проверка просто невозможна У меня так запланировано, если CheckBuild уже true, то значит постройка здания уже идет. Эта проверка нужна для самого первого шага при постройке, если сейчас здание не строится Code case 1: if(CheckBuilds==false) { то происходит проверка хватает ли ресурсов для постройки Code if(Grain-Farm.ValueGrain<0||Tree-Farm.ValueTree<0||Stone-Farm.ValueStone<0|| Iron-Farm.ValueIron<0||Gold-Farm.ValueGold<0) CheckBuilds=false; else CheckBuilds=true; Если ресурсов не хватает то должно вернуть false либо вообще завершить функцию, но почемуто этого не происходит, и ресурсы идут в минус.
Сообщение отредактировал maXimBestUA - Пятница, 29 Июня 2012, 01:40 |
|
| |
Coment | Дата: Пятница, 29 Июня 2012, 02:55 | Сообщение # 509 |
почетный гость
Сейчас нет на сайте
| Ну сейчас первое что приходить в голову -- поставь break если хочешь завершить функцию.
Добавлено (29.06.2012, 01:58) --------------------------------------------- Ммм... а что если допустим первая переменная пошла в минус а все остальные остались плюсовые? Условие соблюдено и вернуло false? теперь еще раз -- и получаем минус на минус, что дает плюс. Может в эту сторону копать?
Ну а вообще, реально, лучше бы вычисления вынести за рамки проверки. ИМХОДобавлено (29.06.2012, 02:55) --------------------------------------------- И можно еще проверить как у тебя ресурсы добавляются.
Сообщение отредактировал Coment - Пятница, 29 Июня 2012, 02:00 |
|
| |
Saitei | Дата: Пятница, 29 Июня 2012, 12:51 | Сообщение # 510 |
старожил
Сейчас нет на сайте
| а есть инфа\уроки по созданию редактора партиклов?
|
|
| |
Demeron | Дата: Пятница, 29 Июня 2012, 12:53 | Сообщение # 511 |
User created in C++
Сейчас нет на сайте
| Quote (Saitei) а есть инфа\уроки по созданию редактора партиклов? Врядли) Разве что по созданию самих партиклов где-то завалялось. Это уже надо думать и делать самому или смотреть чужие исходники.
|
|
| |
goldsphere | Дата: Пятница, 29 Июня 2012, 14:49 | Сообщение # 512 |
заслуженный участник
Сейчас нет на сайте
| Как лучше сделать?Создать класс ресурсов и там объявить переменные ресурсов.А потом инициализировать их так: Code resource player; player.gold = ... player.wood =... ..... или объявить 2 переменные Code resource gold; resource wood; gold.num=... wood.num=...
Добавлено (29.06.2012, 14:13) --------------------------------------------- и ещё вопрос.Лучше для каждого класса отдельный .h файл или для всех 1?Добавлено (29.06.2012, 14:49) --------------------------------------------- Первый вопрос снят.Для меня выгоднее использовать 1 вариант.
FinderX - Android Аркада
Сообщение отредактировал goldsphere - Пятница, 29 Июня 2012, 14:14 |
|
| |
Demeron | Дата: Пятница, 29 Июня 2012, 14:51 | Сообщение # 513 |
User created in C++
Сейчас нет на сайте
| Quote (goldsphere) Как лучше сделать?Создать класс ресурсов и там объявить переменные ресурсов.А потом инициализировать их так: По моему лучше этот способ. Quote (goldsphere) и ещё вопрос.Лучше для каждого класса отдельный .h файл или для всех 1? В принципе без разницы.
|
|
| |
maXimBestUA | Дата: Пятница, 29 Июня 2012, 22:57 | Сообщение # 514 |
почетный гость
Сейчас нет на сайте
| Решил свою проблему)) Оказывается просто в этой строчке Code if(Grain-Farm.ValueGrain<0||Tree-Farm.ValueTree<0||Stone-Farm.ValueStone<0|| Iron-Farm.ValueIron<0||Gold-Farm.ValueGold<0) при подсчете отнимает ресурсы без учета уровня постройки, и получается true, а когда уже дело доходит до нормального отнимания ресурсов то там у меня уже учитывается уровень здания и отнимало в минус. Вообщем исправил проблемку)
|
|
| |
M1ghtMortal | Дата: Суббота, 30 Июня 2012, 07:31 | Сообщение # 515 |
участник
Сейчас нет на сайте
| Quote (goldsphere) и ещё вопрос.Лучше для каждого класса отдельный .h файл или для всех 1? Зависит от их количества и размера. Просто если они будут большие, то будет не так удобна вносить изменения в .h файл. А если они маленькие, то можно по не сколько в один файл, что бы не создавать кучу файлов.
Java/C++/Unity(C#) Programmer. Мой блог MightMortal.RU
|
|
| |
Saitei | Дата: Суббота, 30 Июня 2012, 20:49 | Сообщение # 516 |
старожил
Сейчас нет на сайте
| Вызубрил все основы С++ (ну почти все, кое-где теряюсь). Решил поискать статьи по созданию двигов (на английском). Что-то находил, но на дельфи. Вбивал вот что: "how to make game engine c++". Помогите найти. Буду читать. Спасибо
|
|
| |
Coment | Дата: Суббота, 30 Июня 2012, 21:32 | Сообщение # 517 |
почетный гость
Сейчас нет на сайте
| Saitei
Здесь смотрел? Мне поначалу понравилось, но сейчас больше Java увлекся Создать свой движок на С++?
Сообщение отредактировал Coment - Суббота, 30 Июня 2012, 21:34 |
|
| |
Saitei | Дата: Суббота, 30 Июня 2012, 23:14 | Сообщение # 518 |
старожил
Сейчас нет на сайте
| Coment, "Where To Start With Game Programming?" Может быть я ленивец, но про двиги не нашёл
|
|
| |
Coment | Дата: Воскресенье, 01 Июля 2012, 03:06 | Сообщение # 519 |
почетный гость
Сейчас нет на сайте
| Нууу... каюсь там конкретно не написано что и как делать что бы написать свой двиг (сорьь), а вот подача того что надо знать -- хотя бы приблизительно, для создания таких вещей -- присутствует. Не прими в обиду, но на данном портале-форуме очень много людей писали(создавали) темы о творении своего движка, при знании С++ на 100%. А самая банальная задачка по указателям увы -- "высший матан", "никому не нужные вещи" и все такое. Давайте будем реалистами -- хочешь создать свой болид Ф-1, изволь сделать пару кругов на уже присущем. А если такое не по нраву, то и скорее портал для подсказок надо выбирать другой. Все написанное не относится конкретно к тебе
Сообщение отредактировал Coment - Воскресенье, 01 Июля 2012, 03:08 |
|
| |
Saitei | Дата: Воскресенье, 01 Июля 2012, 20:08 | Сообщение # 520 |
старожил
Сейчас нет на сайте
| Coment, я понимаю, не обижаюсь. Мне бы вообще посмотреть на каком принципе их пишут)))
|
|
| |