Суббота, 20 Апреля 2024, 03:34

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Записи участника » JunkerKun [30]
Результаты поиска
JunkerKunДата: Пятница, 25 Апреля 2014, 19:16 | Сообщение # 1 | Тема: Irrlicht и Unity/UDK
частый гость
Сейчас нет на сайте
Цитата
Под мощностью я в данном случае подразумеваю кол-во полигонов, которое движок может отобразить с нормальным фпс.

Количество полигонов от базового графического движка практически не зависит (если только он не совсем крабом сделан. Но с Иррлихтом и Огром это не те случаи). Это зависит от мощностей компа. И Огр и Иррлихт, как и тот же Юнити, на одном и том же компе дадут примерно одну и ту же производительность в минимальном примере. Если начать накручивать, то производительность зависит лишь от реализации фич.

А Иррлихт выглядит не так красиво просто потому что никто не делал ничего особо выдающегося. На форуме есть проект с прикрученным DX11 рендером и кучей эффектов. Выглядит достойно. Тот же Octodad (обе части) сделан на Иррлихте. Torchlight 1,2 сделаны на Огре. Большинство красоты картинки в игре состоит из грамотного дизайна на самом деле. Тот Срузис имеет мощный движок и переливается шейдерами, но вторая и третья части из-за коричнево-какашечной цветовой гаммы и унылых каменных стен выгляди по меньшей мере как кусок гуано того же цвета, что и все вокруг игрока.
JunkerKunДата: Вторник, 25 Марта 2014, 00:39 | Сообщение # 2 | Тема: помогите перевести исходник под иррлихт... пожалуйста...
частый гость
Сейчас нет на сайте
Цитата
Брал отсюда в самой верхней таблице с боковой надписью "виндовс" 5-ая строка сверху, в первом столбце (GCC 4.7 MinGW (DW2) - 32 bits) видовс у меня 32-ух разрядная.

Ну так и проверь версию MinGW. Наверняка у тебя стоит SJLJ, а ДЛЛ под DW2 компилена. Черным по белому написано, что если у тебя версия, поставляемая с Блоксом, то это почти наверняка SJLJ

Цитата
Машинного кода ведь ?

Блокс имеет замечательный отладчик, позволяющий собственно, выполнять код построчно. И отладчик не выдает машинный код, будучи запущенным из IDE, чем Блокс и является.


Сообщение отредактировал JunkerKun - Вторник, 25 Марта 2014, 02:24
JunkerKunДата: Воскресенье, 23 Марта 2014, 13:20 | Сообщение # 3 | Тема: помогите перевести исходник под иррлихт... пожалуйста...
частый гость
Сейчас нет на сайте
А дебаггер на что? Запусти дебаггер, он тебе и покажет строку кода и ошибку, которая случилась при его выполнении. Если не показывает, значит проблема именно с ДЛЛ. Либо ДЛЛ не от GCC либо ты что-то не залинковал.

Алсо, в официальном туториале есть вот такая штука:
Цитата
There are multiple variants of gcc for Windows, which are incompatible with each other (different exception management, threading model, etc.). Make sure that you pick up the right package according to the version that you use. If you don't know, check which of the libgcc_s_sjlj-1.dll or libgcc_s_dw2-1.dll file you have in your MinGW/bin folder. If you're using the version of MinGW shipped with Code::Blocks, you probably have a SJLJ version.
If you feel like your version of gcc can't work with the precompiled SFML libraries, don't hesitate to recompile SFML, it's not complicated.
JunkerKunДата: Понедельник, 17 Марта 2014, 14:43 | Сообщение # 4 | Тема: помогите перевести исходник под иррлихт... пожалуйста...
частый гость
Сейчас нет на сайте
Понятия не имею, увы.
JunkerKunДата: Суббота, 15 Марта 2014, 21:53 | Сообщение # 5 | Тема: помогите перевести исходник под иррлихт... пожалуйста...
частый гость
Сейчас нет на сайте
Цитата
Я особо не вникал, как устроен SFML

Главная проблема, на мой взгляд =Р

Цитата
Даже русскоязычного комьюнити на эту SFML похоже, что нету...

А зачем тебе обязательно русскоязычное коммьюнити? Англоязычных мануалов как правило хватает. Если нет знаний языка, то всегда есть переводчик, а если попросить объяснить попроще, то просьбу выполнят. Люди там достаточно отзывчивые.


Сообщение отредактировал JunkerKun - Суббота, 15 Марта 2014, 21:55
JunkerKunДата: Суббота, 15 Марта 2014, 20:33 | Сообщение # 6 | Тема: помогите перевести исходник под иррлихт... пожалуйста...
частый гость
Сейчас нет на сайте
Цитата
можно сделать эффект параллакс-скроллинга.

Это можно сделать и в 2Д просто высчитывая координаты бэкграунда как координаты_камеры/2 (хотя по факту лучше по формуле перспективы, которую можно найти на той же википедии)

Цитата
Но, во-первых, не могу толком настроить код::блокс на эту либу. Делал как тута. компилит нормально, но линкует как-то не так, ибо при запуске экзешника ругается на libgcc_s_dw2-1.dll (версия кодблокса 10.05).

Ну это уже не из-за либы, согласись wink

Цитата
Во-вторых, я собираюсь динамически менять цветовую гамму на слоях бэкграунда \ спрайтах. Например, в рэтро-приставках это делалось изменением набора цветов палитры видеоконтроллера. В Irrlicht'e попробую через шейдеры (правда малость геморно).

Можно изменить цвет спрайта. То же самое, что и blend_mode в Game Maker. Или таки использовать шейдеры, которые таки есть в SFML.

Цитата
То есть подобной функции там нет, это значит, что придётся попиксельно считывать картинку и по определённому условию задавать цвет пикселя, выводя на экран.

Бред, ибо см. выше про шейдеры и функцию смешения цветов.
JunkerKunДата: Пятница, 14 Марта 2014, 23:40 | Сообщение # 7 | Тема: Таинственные 8 байт
частый гость
Сейчас нет на сайте
Насколько я мог понять, все происходит по следующему сценарию:

1) В памяти объявляется переменная. Допустим, это char, ее размер 1 байт.
2) Делается выравнивание - добавляется 3 байта, чтобы в сумме "блок" был размером 4 байта.
3) Если после этого объявляется переменная размером меньше 3 байта (short), то после нее не будет добавлено никаких пустых байтов и в итоге будет всего 1 пустой байт.
4) Опять же, если мы теперь объявим char, то все байты будут ненулевыми - char, short, char.
5) Все начинается снова.

Соответственно они не "неотведены", они просто ждут своего использования.

Поправьте, если я неправ.
JunkerKunДата: Пятница, 14 Марта 2014, 23:28 | Сообщение # 8 | Тема: помогите перевести исходник под иррлихт... пожалуйста...
частый гость
Сейчас нет на сайте
Использовать Irrlicht Для 2Д игр - кощунство. Это библиотека для разработки рейл-тайм 3Д приложений, 2Д там достаточно рудиментарно.

Цитата
В первую очередь компилятор ругался на переменную типа String.
ни #include "windows.h" ни #include <string.h> не помогло, потому я заменил String на char*

Ничего удивительного, String это тип, описанный в SFML и без его подключения не будет описан.

Цитата
Далее переменную типа FloatRect объявил так: rect<s32> rectan присвоил ей значение следующим образом: rectan=rect<s32>(7*32,9*32,40,50);

сейчас ругается на строчку rectan.left += dx * time; ,

E:\TURBO\platform\main.cpp|75|error: 'class irr::core::rect<int>' has no member named 'left'|

но ведь структуре rect<s32> присутствует поле left


Тип FloatRect опять же принадлежит SFML, у типа rect<T> из Irrlicht нет никакого поля "left", у него есть поле "position" (или как-то так), которое возвращает двухмерный вектор с положением прямоугольника.

Вывод - не занимайся ерундой, а просто продолжай делать на SFML. Irrlicht не для 2Д был написан.

Update:
Чет я, конечно, слоупок... ну ладно, я здесь давно не появлялся, мне можно =D


Сообщение отредактировал JunkerKun - Пятница, 14 Марта 2014, 23:31
JunkerKunДата: Пятница, 14 Марта 2014, 23:23 | Сообщение # 9 | Тема: Блочная сортировка: реализация
частый гость
Сейчас нет на сайте
Цитата
Что подключить чтобы работала msbits или как она выглядит для реализации своими ручками.

Ничего не подключать. Это абстрактное обозначение функции, которая позволяет разбить массив на несколько частей. Например, проверка на попадание в диапазон чисел.

Двух ведер маловато будет, но если массив небольшой, то в принципе сойдет, ибо нет смысла плодить больше ведер (хотя на небольших массивах лучше бы использовать другие алгоритмы).

Конкатенация должна выглядеть как конкатенация - просто скидываешь из всех ведер по порядку все значения в финальный массив, который и будет результатом.
JunkerKunДата: Воскресенье, 22 Декабря 2013, 17:23 | Сообщение # 10 | Тема: 3_вопроса _по_3D_в_Game_Maker.
частый гость
Сейчас нет на сайте
Отправил исходник в личку.
JunkerKunДата: Воскресенье, 22 Декабря 2013, 00:49 | Сообщение # 11 | Тема: 3_вопроса _по_3D_в_Game_Maker.
частый гость
Сейчас нет на сайте
Сделано на стандартном Game Maker 8.1, никаких библиотек:



Собственно, на первом скрине вполне приличные тени, сделаны "методом полотенца" - рисуется примитив, для каждой его вершины просчитывается высота. Текстурой выступает рендер модели.

На втором скрине эмуляция трафаретного буфера и построение объема освещения - рисуется конус, уходящий в бесконечность. Все, что попадает внутрь модели становится освещенным.

Также реализован Bloom, Motion Blur, MSAA, и так нужный автору Depth Of Field. Так вот, при использовании DoF очень тормозит систему, и если отключить MSAA, то на моем калькуляторе выдает максимум 80-90 ФПС. Ну, арматурной анимацией никого не удивишь, так что не считаю это достижением.

Так вот, сделано все это использованием сурфейсов и режимов смешения. Собственно, для DoF Нужно сделать несколько нагружающих вещей:
1) эмулировать буфер глубины. В нормальных движках доступ к нему есть изначально, а вот в ГМ этого не дали. Посему нужно срендерить в новый сурфейс вообще все со включенным туманом, расстоянием от near значения камеры, и до нужного фокуса. То есть, чем дальше far значение тумана, тем дальше начнется размытие.

2) Среднерить все в сурфейс, который будет размыт.

3) Отрисовать буфер глубины поверх размытого сурфейса с режимом смешения draw_blendmode_ext(bm_one, bm_inv_dest); (точно название функции не помню). Фактически, здесь буфер глубины рисуется поверх как маска - все, что нарисовано черным цветом на буфере будет вырезано из размытой картинки. Но поскольку у нас цвета инвертированы в буфере, мы инвертируем буфер.

4) отрисовать размытый сурфейс с маской поверх обычного рендера.

В режимом смешения возможно накосячил, не помню точно, как делал, но суть такая. Алсо, сам пример брал на форуме GMC, если покопаться, можно найти.
JunkerKunДата: Понедельник, 16 Декабря 2013, 16:22 | Сообщение # 12 | Тема: Вопрос - Ответ (Game Maker)
частый гость
Сейчас нет на сайте
Цитата sayran ()
А можно пример выложить !

http://rghost.ru/51003872

Делал еще динозавром, поэтому никаких изысков в области кода не ждать. Вообще, по моему там и нет кода никакого, там кнопки...
Собственно, Shift = щит.


Сообщение отредактировал JunkerKun - Понедельник, 16 Декабря 2013, 16:23
JunkerKunДата: Воскресенье, 08 Декабря 2013, 20:23 | Сообщение # 13 | Тема: Вопрос - Ответ (Game Maker)
частый гость
Сейчас нет на сайте
Цитата adast12 ()
А как будет кодом, тянуть курсор от начала нажатия по оси Y вправо на 15 пикселей?
И как будет кодом, тянуть курсор от начала нажатия по оси Y влево на 15 пикселей?

Поточнее, пожалуйста. Если нужно переместить курсор, то можно воспользоваться функцией screen_set_mouse (или как-то так, точно не помню, но оно либо в screen_ либо в window_. По моему все-таки в window_). Она позволяет перемещать курсор в нужную позицию.
Или, если курсор является игровым объектом, то просто перемещать объект курсора.
JunkerKunДата: Суббота, 07 Декабря 2013, 16:25 | Сообщение # 14 | Тема: Вопрос - Ответ (Game Maker)
частый гость
Сейчас нет на сайте
Цитата sayran ()
Пример прилогаю ниже .

"Ничего не понял" (с)

Из примера понятно лишь как идет выбор игрока. Суть проблемы там непонятна, ибо все три квадратика у меня на экране как были так и остались.
JunkerKunДата: Четверг, 05 Декабря 2013, 02:38 | Сообщение # 15 | Тема: Вопрос - Ответ (Game Maker)
частый гость
Сейчас нет на сайте
Цитата KaramBino ()
Люди, скажите как сделать телепортацию?

Менять координаты, как же еще?
Код

x = x2;
y = y2;


Ну и, естественно, можно добавлять условия, например, перемещать при столкновении с телепортом:
Код

if (place_meeting(x,y,teleport)) {
x = x2;
y = y2;
};
JunkerKunДата: Вторник, 03 Декабря 2013, 04:40 | Сообщение # 16 | Тема: Вопрос - Ответ (Game Maker)
частый гость
Сейчас нет на сайте
Цитата buftler ()
MakcTHC, хм, это еще причем? wink

При том, что вторым параметром draw_sprite принимает кадр спрайта, который будет отрисован. При значении -1 рисуются все кадры по порядку, со скоростью, поставленной в image_speed. Мануал же читать надо =)
JunkerKunДата: Воскресенье, 01 Декабря 2013, 18:07 | Сообщение # 17 | Тема: Вопрос - Ответ (Game Maker)
частый гость
Сейчас нет на сайте
Цитата GameMix ()
Можно просто перед деактивацией сохранить спрайт и координаты в переменные какого-нибудь объекта-контроллера, находящегося в этой комнате:


А, точно. Вечно я забываю об очевидных методах >__>
JunkerKunДата: Воскресенье, 01 Декабря 2013, 15:07 | Сообщение # 18 | Тема: Вопрос - Ответ (Game Maker)
частый гость
Сейчас нет на сайте
Цитата adast12 ()
Как сделать чтобы при деактивации объекта спрайт его был виден?


Никак. Если ты его деактивировал, он больше вообще никак не обрабатывается.
JunkerKunДата: Суббота, 30 Ноября 2013, 21:29 | Сообщение # 19 | Тема: Вопрос - Ответ (Game Maker)
частый гость
Сейчас нет на сайте
Цитата Krosos ()
JunkerKun, ты забыл самое главное -наличие препятствий.ИИ не должен стрелять в стену за которой скрылся игрок.

А, ну тогда да, без collision_line никак, согласен =)

Цитата adast12 ()
Как сделать чтобы вот этот код не перекрывал спрайт объекта и не действовал на него?
draw_set_alpha(0.5);
draw_rectangle_color(0,0,room_width,room_height,c_blue,c_blue,c_blue,c_blue,0);


В каком смысле не действовал?
Чтобы квадрат не перекрывал спрайт, нужно рисовать его до самого спрайта. Либо поставить depth у объекта, который рисует квадрат, в значение больше, чем у того, что рисует спрайт.
JunkerKunДата: Пятница, 29 Ноября 2013, 15:13 | Сообщение # 20 | Тема: Вопрос - Ответ (Game Maker)
частый гость
Сейчас нет на сайте
Цитата t111 ()
ну у меня суть была в том что объект враг ходит сам по себе, влево-вправо и взависимости в какую сторону он идёт, туда и image_xscale. Мне нужно было, если я приближаюсь к нему из за спины менее чем на 300, то он поворачивается ко мне лицом и начинает в меня стрелять...


Код

if (abs(x-player.x)<300) {
if (player.y>y-24 && player.y< y+24) {
image_xscale=sign(player.x-x);
enemy_shoot();
};
};


Вот и все, никаких дополнительных функций больше не надо. Все функции на проверку столкновений жрут ЦП довольно сильно, поэтому использовать их лучше по минимуму.


Сообщение отредактировал JunkerKun - Пятница, 29 Ноября 2013, 15:15
Форум игроделов » Записи участника » JunkerKun [30]
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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