| Разработка и ромхакинг > Ромхакинг и программирование |
| SGDK |
| << < (7/40) > >> |
| ALKOSHA:
Ну, дык, для СДКи ресурсы готовлю. Вряд ли тема была бы уместна в иной ветке форума. |
| worm:
Люди, тема была создана для оказания помощи, а не критики её автора. Нагуглить обучалок и понять, что сега так не работает и ничего не режет, он и сам сможет. Если знаете - объясните, нет - тогда и постить нет смысла. --- Цитата: ALKOSHA от 05 Декабрь 2015, 10:56:24 ---"не" "чего"... --- Конец цитаты --- Жаль лайки не предусмотрены)) |
| Ogr:
--- Цитата: worm ---Жаль лайки не предусмотрены xD --- Конец цитаты --- "лайки" за глупость? как говорится: дурак дурака... |
| blackbird_ru:
worm, да у меня просто пукан бомбит от того, что взяли прекрасный инструмент, аналогов которого нет на других платформах, благодаря которому в последнее время было сделано множество пиратских игр (чип и дейл, чёрный плащ на сежку, всё благодаря ему). А какие прекрасные звуковые движки, хер где найдёте подобное или сами что-нибудь такое сделаете. Реальный труд десятка людей. Было выпущено куча хоумрю на нём и есть форум с бездонными ветками на спрайтсманде, и давай на него наговаривать: булина нет, криво спрайты работают, херовые экзамплы в туторе, фигня, а не движок, криворукие сделали, 90% выкинуть оттуда, НИНУЖНО. Ух, как же у меня бомбит. |
| worm:
--- Цитата: Ogr от 05 Декабрь 2015, 13:32:24 ---"лайки" за глупость? --- Конец цитаты --- Не Вам. --- Цитата: Ogr от 05 Декабрь 2015, 13:32:24 ---как говорится: дурак дурака... --- Конец цитаты --- Дурак-не дурак, а с грамматикой знаком) К тому же, я попытался помочь всем, чем смог, а не писал пустые посты в стиле "нифига, это не так, чайнег", не подкреплённые никакими аргументами и не несущими в себе полезной информации. Если кого обидел - прошу прощения, просто когда вы пишете " ты не прав", нужно также добавлять почему и как это можно решить. Мне, если больше нечего сказать, я просто молча листаю тему и как только увижу вопрос по знакомой теме - отвечу. --- Цитата: blackbird_ru от 05 Декабрь 2015, 13:37:25 ---worm, да у меня просто пукан бомбит от того, что взяли прекрасный инструмент, аналогов которого нет на других платформах, благодаря которому в последнее время было сделано множество пиратских игр (чип и дейл, чёрный плащ на сежку, всё благодаря ему). А какие прекрасные звуковые движки, хер где найдёте подобное или сами что-нибудь такое сделаете. Реальный труд десятка людей. Было выпущено куча хоумрю на нём и есть форум с бездонными ветками на спрайтсманде, и давай на него наговаривать: булина нет, криво спрайты работают, херовые экзамплы в туторе, фигня, а не движок, криворукие сделали, 90% выкинуть оттуда, НИНУЖНО. Ух, как же у меня бомбит. --- Конец цитаты --- я понимаю, но можно же спокойно аргументировать неправоту? Бомбёжка не поможет (возьмём мой случай) понять, зачем в сгдк, к примеру, сообщение об отсутствии шрифта, если при его отсутствии, ром даже не соберется) |
| blackbird_ru:
--- Цитата: worm ---зачем в сгдк, к примеру, сообщение об отсутствии шрифта, если при его отсутствии, ром даже не соберется) --- Конец цитаты --- Фатальных промах стефа, а ещё 89% о чём там? |
| Ogr:
--- Цитата: worm ---просто когда вы пишете " ты не прав", нужно также добавлять почему и как это можно решить. --- Конец цитаты --- слышал выражение "половина ответа - правильно заданный вопрос"? вот то то и оно. на идиотские утверждения, получают соответствующие ответы. |
| worm:
--- Цитата: blackbird_ru от 05 Декабрь 2015, 13:58:08 --- а ещё 89% о чём там? --- Конец цитаты --- много лишнего кода, к примеру, есть функции, состоящие из нескольких полноценных функций, без которых можно и обойтись) процессор же у сеги не двужильный) 90% это сутрировано, конечно, однако проблема есть. |
| blackbird_ru:
--- Цитата: worm ---90% это сутрировано, конечно, однако проблема есть. --- Конец цитаты --- Да я понял что не от далёкого ума тут смеялись над "убогостью" sgdk, а от того что просто поржать вдвоём решили, заодно за свои успехи не так неудобно. Не ты виноват же, а кривой инструмент. --- Цитата: worm ---есть функции, состоящие из нескольких полноценных функций --- Конец цитаты --- Что это значит, вызов функции из функций? Так делается чтобы дубляжа кода не было и для логической разбивки. И об этом --- Цитата: worm ---а не писал пустые посты --- Конец цитаты --- Должен быть определённый порог. Есть туторы, есть куча разжёванной информации. Когда твои вопросы выходят за покрытые темы в справке, то да, тут уже можно задавать вопросы. Но и самому работать нужно, разбираться. |
| worm:
--- Цитата ---Да я понял что не от далёкого ума тут смеялись над "убогостью" sgdk, а от того что просто поржать вдвоём решили, заодно за свои успехи не так неудобно. Не ты виноват же, а кривой инструмент. --- Конец цитаты --- Никто не смеялся над её убогостью. Успокойтесь Вы уже) а если серьезно, был бы сгдк плохим, мы бы тут его не исследовали. Некоторые функции используются однажды, а есть и такие, которые не нужны конкретному проекту - надо бы флаги какие придумать, чтобы не собирать неиспользуемый код. |
| blackbird_ru:
Так весь код доступен, меняешь его, меняешь мейкфайл и всё. Тем более там не так его много, чтобы весь не осилить перечитать и осознать. |
| ALKOSHA:
Каким образом скроллить плэйн, чтоб каждый ряд пикселей, вышедший за пределы экрана, оказывался с противоположной стороны экрана ? (Как в интровой заставке jungle strike бесконечно повторяющийся фон прокручивается). |
| blackbird_ru:
Ну смотри. У тебя есть два возможных видео режима --- Код: ---32*28 CELL (256*224 PIXEL) --- Конец кода --- и --- Код: ---40*28 CELL (320*224 PIXEL) --- Конец кода --- И есть такие ограничения по размеру плейнов. --- Код: ---32*32, 32*64, 32*128, 64*32, 64*64, 128*32 --- Конец кода --- Когда скролишь плейн и он выходит за свои пределы, он варпается автоматически (что ты описываешь). Поэтому если экран по ширине поставить 256 и выбрать любой режим с шириной 32, то скролл будет циклить твою картинку на фоне сразу. Но если взять стандартное разрешение сеги с шириной 320, то ширина плейна должна быть минимум 64. И получается такая картина на примере страйка. У тебя бэкграуд, который можно совместить по краям и не будет разрывов, и ты скролишь по нему всему, а когда он доходит до границы, то автоматически варпается. А если у тебя картинка по ширине не укладывается в 64 тайла, то когда ты достигнешь её предела, нужно будет её загружать снова по столбцам перед окончанием скролла, во время игры. |
| worm:
Вопрос по gendev (sgdk под линукс). Все было хорошо до переустановки линукса. После, началась такая джигурда... Компилирует ром с какими-то данными в начале (с нулевого оффсета). Сначала это были jsr ссылки (4e b9 xx xx xx xx), после чего я переустановил mint в надежде на то, что проблема исчезнет, однако этого не произошло - на том месте, где был ряд jsr'ов, теперь красуется какая-то другая гадость. В мейкфайлы не лез. Что это может быть? К слову, о windows версии... В попе sgdk имеется гнойно-известная заноза, ошибка компиляции couldn't allocate heap, которая время от времени нарывает, давая о себе знать. В том же everdrive sdk, этой проблемы нет. Оба сдк используют одну и ту же версию компилятора - проверено в hex, 0 отличий. Разработчики винят виндузу, игнорируя исправность everfrive sdk. Как можно исправить sgdk? Я устал от этой ошибки, вылазит в 90% случаев. |
| ALKOSHA:
Прошу прощения что засоряю эфир, но хотел пожаловаться что у меня снова всё через Ж >:( выходит. Такой лютый бадыль, шо я ваще в шоке. Вот как было, когда на сцене был только один фон, и массив спрайтиков (78 партиклов, ракетка и мячик). (кстати, от синих катышек избавился, задав цвет фона VDP_setBackgroundColor (1). Токмо с параметром странновато пока. 1 - это очень тёмно-красный, но не чёрный. 0 - это синий. 2 - уже не помню, но цвета там как-то рандомно сделаны). Вроде бы всё замечательно, и можно ничего не трогать и оставить, как есть. Но мне этого мало. Хотел было добавить плэйн скроллирующегося "тумана" ... То есть: - фон за плэйнами обрёл неведомо какой цвет, и сэт-бэкграунд-калор никоим образом уже не влияет. - плэйн "тумана скроллируется, но сам туман неведомо откуда из памяти берётся. И цыхырки с координатами скроллируются вслед за ним, но это не страшно. - благо со спрайтиками всё ок. Палитра "тумана" в гимпе: И она же в сеговской видео-оперативе (первая по счёту): В содержимом VDP намёков на тайлы тумана не нашёл (должен быть дизеринг пикселей ). Разве что вот какая-то фигня, которая постоянно меняется при скроллировании: компрессию задавал -1. То есть аж до такого вида не могло ужать. Сам "туман" разрешением 320*48 (между прочим, его надо дважды продублировать на плэйне, чтоб он скроллировался без разрыва. Пока не знаю как. Ну, кроме варианта предварительно в файле сделать 640 по ширине, но это изврат.) Вряд ли дело в большом разрешении, так как в примере с соником бэкграунды вообще в 640*224. Добавлено позже: --- Цитата --- но сам туман неведомо откуда из памяти берётся --- Конец цитаты --- Из-за невнимательности. [Дизеринг надо будет плотнее сделать] Но вопрос с цветом фона и состыковкой двух изображений на одном плэйне (две повторяющихся картинки шириной 320 на плэйне 640 пикселей) остаётся открыт. |
| Ogr:
--- Цитата: ALKOSHA ---Палитра "тумана" в гимпе: И она же в сеговской видео-оперативе (первая по счёту): --- Конец цитаты --- выложи спрайт(ы) которые ты в SGDK импортировал. --- Цитата: ALKOSHA ---Но вопрос с цветом фона и состыковкой двух изображений на одном плэйне (две повторяющихся картинки шириной 320 на плэйне 640 пикселей) остаётся открыт. --- Конец цитаты --- ручками сделать. ищи на подобие "создание цикличных текстур". |
| ALKOSHA:
--- Цитата ---выложи спрайт(ы) которые ты в SGDK импортировал. --- Конец цитаты --- Тот вопрос уже снят. Говорю же. --- Цитата ---Из-за невнимательности. --- Конец цитаты --- забыл изменить указатель на адрес начала картинки, из-за чего вместо тайлов "тумана" выводились тайлы бэкграунда. --- Цитата: Ogr от 07 Декабрь 2015, 00:40:48 ---ручками сделать. ищи на подобие "создание цикличных текстур". --- Конец цитаты --- То есть сделать предварительно повторяющуюся "текстуру" в файле шириной 640 ? Не. Я не про то. Такой вариант я и сам знаю. Тут вопрос именно в том, чтоб не засорять память, хранить в ней текстуру шириной 320, и процедурно её вывести дважды на слой. |
| Ogr:
--- Цитата: ALKOSHA ---То есть сделать предварительно повторяющуюся "текстуру" в файле шириной 640 ? Не. Я не про то. Такой вариант я и сам знаю.Тут вопрос именно в том, чтоб не засорять память, хранить в ней текстуру шириной 320, и процедурно её вывести дважды на слой. --- Конец цитаты --- сделать чтобы левый и правый края у 320 совпадали. ТЕ, не был виден шов при стыковке. |
| ALKOSHA:
--- Код: ---VDP_drawImageEx(u16 plan, const Image *image, u16 basetile, u16 x, u16 y, u16 loadpal, u16 use_dma) --- Конец кода --- Думаю зеркальным отображением ещё воспользоваться, но среди атрибутов этой фишки не видать. Добавлено позже: --- Цитата: Ogr от 07 Декабрь 2015, 01:19:43 ---сделать чтобы левый и правый края у 320 совпадали. ТЕ, не был виден шов при стыковке. --- Конец цитаты --- Речь не о том, как это сделать в редакторах, а-ля пэинт\фотожоп. С артом я уж как-нибудь сам разберусь. Я про принцип процедурного вывода на плэйн. Если сделать так --- Код: ---VDP_drawImageEx(APLAN, &fog, TILE_ATTR_FULL(PAL0, FALSE, FALSE, FALSE, ind), 0, 0, FALSE, TRUE); VDP_drawImageEx(APLAN, &fog, TILE_ATTR_FULL(PAL0, FALSE, FALSE, FALSE, ind), 320, 0, FALSE, TRUE); --- Конец кода --- То второй вывод картинки, который теоретически должен оказаться за пределами экрана, оказывается на том же самом месте, но несколькими знакоместами ниже. Да ещё при этом снова вылазят тайлы ракетки на бэкграунд. Методом тыка если пошаманить, вторая картинка всё равно полностью не выведется. Короче, ясно. Надо уменьшить размер картинки до ~128, и где-то 3 раза её выводить. Знать бы, сколько пикселей буфера за пределами экрана. И исправит ли это ситуацию с вылезающими на бэкграунд тайлами ракетки. Добавлено позже: Картина понемногу проясняется. То координаты задаются познакоместно, а не попиксельно. Добавлено позже: Да. Значение 40 - то что надо. Но как теперь избавиться от этих тайлов ракетки внизу фона ? |
| ALKOSHA:
В этой сгдк уже пробовали зеркалить плэйны ? Какой процедуркой ? В примере с сонником видно, что последний флаг отвечает за зеркалку по иксу. --- Код: --- if (movx > 0) SPR_setAttribut(&sprites[0], TILE_ATTR(PAL2, TRUE, FALSE, FALSE)); else if (movx < 0) SPR_setAttribut(&sprites[0], TILE_ATTR(PAL2, TRUE, FALSE, TRUE)); --- Конец кода --- Со спрайтами эта фишка работает отлично. А плейн как отзеркалить ? Если просто поменять флаг в плэйне, то зеркалится каждый ряд знакоместа, а сам порядок тайлов остаётся без изменений. |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |