Автор Тема: SGDK  (Прочитано 74218 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ALKOSHA

  • Пользователь
  • Сообщений: 805
  • Люблю донди.
    • ВКонтакте
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #90 : 03 Декабрь 2015, 10:51:20 »
Что на APLAN, что на BPLAN - синие катышки (а точнее - дырки, сквозь которые виден синий фон)

А какое основное отличие  VDP_drawImageEx() от  VDP_drawBitmapEx() ?

Добавлено позже:
Понял как убрать тайлы ракетки с бэкграунда (то бишь сместить их дальше по адресу в видео-ОЗУ). Опять же, это делается автоматом. Зависит от того, какой массив инициализировать под спрайты.
SPR_init(512); - больше адресного пространства выделится под спрайты, меньше под задник. И наоборот SPR_init(128); - при таком значении тайлы ракетки расположены уже подальше от тайлов бэкграунда.


Добавлено позже:
максимальное разрешение сеги - 320x224

есть функция VDP_setScreenHeight240(). Только разницы между VDP_setScreenHeight240() и VDP_setScreenHeight224() не заметил. С шириной при этом тоже игрался. Разница по ширине очевидна, а высота остаётся без изменений.
« Последнее редактирование: 03 Декабрь 2015, 18:30:49 от ALKOSHA »

Оффлайн worm

  • Пользователь
  • Сообщений: 1071
  • Пол: Мужской
  • Сожру
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #91 : 03 Декабрь 2015, 16:24:58 »
Ну тут я ещё сам не разобрался, поэтому особо толку от меня не будет. В сгдк очень много мусора, как и лишнего кода в библиотеке. segaman говорил, что больше половины поудалял хламья. Уломать бы Стефа убрать всю эту джигурду...
Цитата
VDP_setScreenHeight240
странно, то наверно для ntsc aspect)

Оффлайн ALKOSHA

  • Пользователь
  • Сообщений: 805
  • Люблю донди.
    • ВКонтакте
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #92 : 03 Декабрь 2015, 21:34:02 »
Есть массив партиклов.

int i;
for(i=0;i<80;i++)
SPR_initSprite(&sprites[i], &rain_sprite, i, i, TILE_ATTR(PAL3, TRUE, FALSE, FALSE));

Теперь, чтоб их всех отобразить, надо выполнить SPR_update(sprites, 80);
А как поступить, если нужно не все партиклы отобразить, а лишь определённые из этого массива?

Добавлено позже:
Хочу ещё помимо задника добавить скроллирующийся туман, и ещё всяких деталей на декорации.
Примерно как тут

Только ещё в 16 бит сатаничнее и кровавее.
Полупрозрачность тумана можно сделать дизерингом пикселей.
А вот как быть с остальными декорациями ? Слоёв бэкграунда ведь всего лишь два. Можно ли как-то динамически подгружать каждый слой из памяти в процессе отрисовки кадра?
« Последнее редактирование: 04 Декабрь 2015, 00:26:15 от ALKOSHA »

Оффлайн worm

  • Пользователь
  • Сообщений: 1071
  • Пол: Мужской
  • Сожру
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #93 : 04 Декабрь 2015, 00:55:07 »
Цитата
А как поступить, если нужно не все партиклы отобразить, а лишь определённые из этого массива?
Все, что приходит на ум - рисовать по отдельности, но может ребята посоветуют что-то получше)

Цитата
Можно ли как-то динамически подгружать каждый слой из памяти в процессе отрисовки кадра?
Можно использовать спрайтовых слой как слой переднего плана. Есть ещё такая вещь, как "окно", пока сам не знаю о нём ничего.

Оффлайн ALKOSHA

  • Пользователь
  • Сообщений: 805
  • Люблю донди.
    • ВКонтакте
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #94 : 04 Декабрь 2015, 01:41:22 »
Опа, сунулся в типы переменных, а типа bool не нашёл. 0_0
Неужто в качестве флага 0\1 нужно использовать как минимум char ?

Оффлайн ALKOSHA

  • Пользователь
  • Сообщений: 805
  • Люблю донди.
    • ВКонтакте
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #95 : 04 Декабрь 2015, 13:22:47 »
Этот компилятор ресурсов и спрайтовый движок - сплошной вынос мозга.

Вот, например, тут одна палитра как у мяча, так и у партиклов. Но у мяча прозрачные пиксели есть, у партиклов их нет, при том, что в таблице те пиксели находятся на первом месте у мяча и партиклов.



Далее sprite_engine.h , какой-то он мутный.

Хотел немного структурировать, чтоб всё не сливалось в единую кашу.

Sprite sprites[80];

Попытался для начала отделить спрайт мяча от остального

Sprite ball[1];
Sprite sprites[79];
...
SPR_initSprite(&ball[0], &x_sprite, fix32ToInt(ballx), fix32ToInt(bally), TILE_ATTR(PAL2, TRUE, FALSE, FALSE));
...
SPR_update(ball, 1);
SPR_update(sprites, 79);
   
Но получил полностью чёрный экран.

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1025
  • Пол: Мужской
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #96 : 04 Декабрь 2015, 14:09:26 »
Дай незнающему человеку интрумент, тот тут же его заклеймит негодным, херово сделаным, и вообще неудобно этим вашим микроскопом гвозди забивать.  :lol:

Для начала не плохо было бы игру запускать в Gens kMod Или Gens r57shell mode, чтобы была возможность смотреть как загрузились твои спрайты, палитры и бекграунды.

Оффлайн ALKOSHA

  • Пользователь
  • Сообщений: 805
  • Люблю донди.
    • ВКонтакте
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #97 : 04 Декабрь 2015, 14:35:26 »
 :lol: :lol: :lol: :lol:
Цитата
:lol: Дай незнающему человеку интрумент, тот тут же его заклеймит негодным, херово сделаным, и вообще неудобно этим вашим микроскопом гвозди забивать. :lol:
:lol: :lol: так я расчитываю на то, что знающие человеки подскажут, как правильно гвозди микроскопом забивать :lol: :lol:

Цитата
Для начала не плохо было бы игру запускать в Gens kMod Или Gens r57shell mode, чтобы была возможность смотреть как загрузились твои спрайты, палитры и бекграунды.




Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1025
  • Пол: Мужской
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #98 : 04 Декабрь 2015, 14:38:35 »
А ты уверен что он первым идёт в палитре на другой картинке?
В том же гимпе легко можно цвета переставлять у изображения с палитрой.

Добавлено позже:
Ну и об этом
Цитата: ALKOSHA
что знающие человеки подскажут

Ты вывел только спрайт на бекграунд, а уже 3 страницы заспрашивал. Это уже что-то уровня ланкастера же.
« Последнее редактирование: 04 Декабрь 2015, 14:48:36 от blackbird_ru »

Оффлайн ALKOSHA

  • Пользователь
  • Сообщений: 805
  • Люблю донди.
    • ВКонтакте
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #99 : 05 Декабрь 2015, 00:26:10 »
В Зеро Толерасте как-то на одном слое рисуют кучу НЕ-аппаратных спрайтов (будь они аппаратными, можно было бы лицезреть характерные артефакты в виде прозрачных полосок и мерцаний, как это происходит в БладШоте).
Вот этот момент интересует. Таким макаром хотелось бы сделать партиклы, декорации и мобов на одном спрайтовом слое.

Добавлено позже:
Цитата
В том же гимпе легко можно цвета переставлять у изображения с палитрой.

Да, действительно легко. Но как сделать одну палитру на разные png-файлы ?
При сохранении png палитра сохраняется именно с теми цветами, которые присутствуют на изображении.
В одном файле у меня 4 цвета,  в другом 12. И я хочу, чтоб в программе эти два файла корректно отображались при одной палитре.
В фотошопе можно сохранять и загружать палитру, но при сохранении она урезается именно до того кол-ва цветов, сколько их есть на картинке.

Было бы неплохо замостить один файл всеми спрайтами. Но какие-то спрайты могут быть 8*16, какие-то 32*32. А размер фрейма в спрайт-движке фиксированный (который указывается в gfx.res).
« Последнее редактирование: 05 Декабрь 2015, 02:25:19 от ALKOSHA »

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1025
  • Пол: Мужской
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #100 : 05 Декабрь 2015, 05:48:07 »
Рекомендую ещё раз прочитать все доки на гитхабе о строении сежки и хелпы по импорту спрайтов, а то ты явно неправильное представление о сеге имеешь.

Цитата: ALKOSHA
НЕ-аппаратных спрайтов

Что это значит, нет в сеге софтварного режима. Что за чушь?

Цитата: ALKOSHA
Но как сделать одну палитру на разные png-файлы ?

Палитру ты уже в игре загружаешь, какую хочешь, твои пнг вообще не при делах.
Просто в редакторе настрой её так, чтобы цвета по индексам нужным совпадали.

Цитата: ALKOSHA
Было бы неплохо замостить один файл всеми спрайтами

Зачем, спрайты хранятся в роме, не важно один там файл импортируешь или нет.
Поэтому импортируй одни с одним разрешением, а другие с другим. А потом можно грузить спрайты от 8х8 до 32х32, главное параметры правильные передавать в функцию.

Sprite size is programmable on a sprite by sprite basis. with the following choices.
 8*8,    8*16,    8*24,    8*32
16*8,   16*16,   16*24,   16*32
24*8,   24*16,   24*24,   24*32
32*8,   32*16,   32*24,   32*32
There are 64 sprites available when the screen is in 32 cell wide mode.  Or 80 when the screen is in 40 cell wide mode.

Повторяю, ты явно не допонимаешь строение консоли. А уже весь сдк обосрал.

Оффлайн ALKOSHA

  • Пользователь
  • Сообщений: 805
  • Люблю донди.
    • ВКонтакте
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #101 : 05 Декабрь 2015, 09:43:00 »
Цитата
Что это значит, нет в сеге софтварного режима. Что за чушь?

Чушь обоснованная же. Иначе как объяснить отсутствие мерцания спрайтов врагов, когда они кишат на экране?


Тут, скорее всего, процедурно выводится каждый спрайт из памяти на один из плэйнов.

Цитата
Палитру ты уже в игре загружаешь, какую хочешь, твои пнг вообще не при делах.
0_0
Так я про пнг спрашиваю, а не про внутри-игровую палитру.

Цитата
Просто в редакторе настрой её так, чтобы цвета по индексам нужным совпадали.
Я уже упомянул выше, что редактор при сохранении урезает палитру до конкретного количества.

Цитата
Зачем, спрайты хранятся в роме, не важно один там файл импортируешь или нет.

Для создания одной палитры на определённый набор спрайтов, вот зачем.

Цитата
Sprite size is programmable on a sprite by sprite basis. with the following choices.
 8*8,    8*16,    8*24,    8*32
16*8,   16*16,   16*24,   16*32
24*8,   24*16,   24*24,   24*32
32*8,   32*16,   32*24,   32*32
There are 64 sprites available when the screen is in 32 cell wide mode.  Or 80 when the screen is in 40 cell wide mode.

Кеп :thumbup:

Цитата
Повторяю, ты явно не допонимаешь строение консоли.

Возможно.

Цитата
А уже весь сдк обосрал.

То есть ?

Добавлено позже:
......Не будь на сеге возможности вывода софтверной графики, то не было бы ни одной игры с векторным графоном (типа mig29 , another world, kawasaki или  заставок в ex-ranza и flashback)., а так же эффектов вращения/масштабирования (batman&robin adv., contra HC, road rash, castlevania, alien soldier)
« Последнее редактирование: 05 Декабрь 2015, 10:37:38 от ALKOSHA »

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1025
  • Пол: Мужской
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #102 : 05 Декабрь 2015, 10:38:15 »
Нет, тут очередной случай ланкастеризма.
Разберись с основами, сам, материала для этого достаточно (мне точно хватило, с головой).

Цитата: ALKOSHA
выводится каждый спрайт из памяти на один из плэйнов.

Да не работает так сежка. Нельзя выводить спрайты на плейны. Это разные сущности, просто там по умному плейн в рантайме строится. И вообще не советую смотреть на псевдо 3д и другие трюки опытных программистов, когда у тебя проблемы с выводом спрайта по гайду.

Остальные вопросы вообще ни о чём. Какие палитры пнг, что там автоматом урезается тебе. Ты оперируешь сущностями сегодняшних игровых конструкторов, сежка так не работает.
И импорт картинок тебе ничего не ограничивает, он просто упрощает импортирование.

Читай доки, иначе бесполезно разговор вести.

Оффлайн Ogr

  • Пользователь
  • Сообщений: 7392
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #103 : 05 Декабрь 2015, 10:43:02 »
Цитата: ALKOSHA
В фотошопе можно сохранять и загружать палитру, но при сохранении она урезается именно до того кол-ва цветов, сколько их есть на картинке.

бред какой то. не чего там не урезается.

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1025
  • Пол: Мужской
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #104 : 05 Декабрь 2015, 10:49:35 »
Цитата: ALKOSHA
на сеге возможности вывода софтверной графики

Да нет такого понятия, софтварный вывод спрайтов и прочее.

У тебя есть спрайты, плейны и окно (по сути фиксированная часть плейна).
Все эти 3д эффекты и прочее - считают в рантайме, записывают в вдп память и хитро выводят в плейн или спрайты, меняя видеорежимы и применяя хитрый скроллинг.
Каждый случай можно по своему рассматривать, потому что везде может быть по разному сделано.

Оффлайн ALKOSHA

  • Пользователь
  • Сообщений: 805
  • Люблю донди.
    • ВКонтакте
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #105 : 05 Декабрь 2015, 10:56:24 »
Цитата
бред какой то. не чего там не урезается.

ну да, ну да... "не" "чего"...  <_<









Добавлено позже:
и хитро выводят в плейн

Так вот про это я и спрашивал ранее. Чтоб на плэйн выводить декорации в виде отдельных [не аппаратных] спрайтов.

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1025
  • Пол: Мужской
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #106 : 05 Декабрь 2015, 11:00:37 »
И что там урезается? Всё на месте, а то не тот порядок, так это ты сам виноват.
Исправляй или в оригинальном файле, или в загрузке палитры.

Оффлайн ALKOSHA

  • Пользователь
  • Сообщений: 805
  • Люблю донди.
    • ВКонтакте
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #107 : 05 Декабрь 2015, 11:02:06 »
Всё на месте

Пересмотри скрины внимательнее. :-\

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1025
  • Пол: Мужской
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #108 : 05 Декабрь 2015, 11:03:20 »
И? Всё на месте, только порядок другой и лишний дубль чёрного обрезало.

Оффлайн ALKOSHA

  • Пользователь
  • Сообщений: 805
  • Люблю донди.
    • ВКонтакте
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #109 : 05 Декабрь 2015, 11:04:12 »
Два последних скрина - диалоговое окно сохранения, если что.

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1025
  • Пол: Мужской
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #110 : 05 Декабрь 2015, 11:05:03 »
Все цвета на месте. что тебе нужно то, новая палитра для каждого спрайта на сежке?

Добавлено позже:
И не факт, если ты тусуешь цветы палитры в окне, они тусуются в изображении, а не только в этом окне. Вот гимп умеет менять места цветов в палитре и изображении.

Оффлайн ALKOSHA

  • Пользователь
  • Сообщений: 805
  • Люблю донди.
    • ВКонтакте
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #111 : 05 Декабрь 2015, 11:07:02 »
Та я не про порядок, а про количество говорю.

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1025
  • Пол: Мужской
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #112 : 05 Декабрь 2015, 11:08:13 »
ну так считай, 12 + 3.
Всё на месте, кроме урезанного чёрного дубля.

Оффлайн ALKOSHA

  • Пользователь
  • Сообщений: 805
  • Люблю донди.
    • ВКонтакте
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #113 : 05 Декабрь 2015, 11:12:33 »
Цитата
ну так считай, 12 + 3.
всё верно. Это такую палитру в редакторе я смастрячил.
Но при сохранении в разных файлах в первом случае (спрайт "мяча"), и во втором случае (спрайт "цепи") сколько  цветов ?

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1025
  • Пол: Мужской
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #114 : 05 Декабрь 2015, 11:15:50 »
Я реально чего-то не понимаю, в чем проблема, ты можешь нормально объяснить?
Если это твоя палитра, то как из неё цвета пропадают, зачем ты вообще её выложил в изображении том.


Оффлайн Ogr

  • Пользователь
  • Сообщений: 7392
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #115 : 05 Декабрь 2015, 11:19:21 »
Цитата: ALKOSHA
ну да, ну да... "не" "чего"... 

да да, если не при помощи Ж фотошопом пользоваться... собери 16 цветную палитру, и её и загружай для индексации.

Оффлайн ALKOSHA

  • Пользователь
  • Сообщений: 805
  • Люблю донди.
    • ВКонтакте
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #116 : 05 Декабрь 2015, 11:21:45 »

да да, если не при помощи Ж фотошопом пользоваться... собери 16 цветную палитру, и её и загружай для индексации.

Я так и делал. На первом скрине - палитра, которую я собрал и сохранил в виде *.act
Но если её применить к тому или иному файлу и затем сохранить тот или иной файл, то сохраняется он уже с урезанной палитрой (см. скрины выше)

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1025
  • Пол: Мужской
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #117 : 05 Декабрь 2015, 11:23:17 »
Так у тебя цвета палитры в фотошопе теряются чтоли?!

Добавлено позже:
Сохраняй как 16-цветный бмп рисунок тогда.

Оффлайн ALKOSHA

  • Пользователь
  • Сообщений: 805
  • Люблю донди.
    • ВКонтакте
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #118 : 05 Декабрь 2015, 11:27:04 »
собери 16 цветную палитру

Всё. Разоборался. Надо было при сохранении act'a убрать транспарент, а то он за цвет не считается, и выходило, что менее 16-ти цветов. А при таком раскладе фотошоп урезал палитру.

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1025
  • Пол: Мужской
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #119 : 05 Декабрь 2015, 11:28:09 »
Цитата: ALKOSHA
фотошоп урезал палитру

Вот ты не мог сразу сказать что это фотошоп урезает палитру, и зачем ты на это жалуешься в теме про сгдк?