Не, давай все-таки снапшот перед зависанием. На Unreal Spectrum в режиме Pentagon из 128-го BASIC'а все работает по тому рецепту, что я писал выше. Что-то ты по-хитрому делаешь и не делишься секретом.
Не, давай все-таки снапшот перед зависанием. На Unreal Spectrum в режиме Pentagon из 128-го BASIC'а все работает по тому рецепту, что я писал выше. Что-то ты по-хитрому делаешь и не делишься секретом.
тогда, делал в speculator basic128 и зависло.
теперь сделал на unreal basic 48 - работат.(см. probe.zip)
нумерация спрайтов идёт от 0 ? или от 1 ?
пока спекулятора нет,потом на нем еще попробую.
работа вашей проги в программе TBAM.zip (5.2кб) в МУЗЫКА - БИПЕРНАЯ МУЗЫКА -
По личным просьбам трудящихся подпилил граббер для повышения юзабилити.
Что приделал:
- в меню и режиме выделения спрайта на экране теперь работает не только Sinclair II, но и Cursor Keys, QAOPM, плюс, бонусом, Enter и Space теперь тоже "огонь";
- BREAKом можно "шагать" назад по стадиям выденения спрайта - при задании размера BREAK вернет в режим задания координат, а из задания координат выкинет в меню безо всяких последствий;
- при случайном попадании в команды работы с диском теперь можно не бояться ни разу, а давить BREAK (научил-таки BASIC-редактор на него реагировать), CS+"вниз" (только без сообщения "STOP in INPUT"), или просто Enter - пустое имя файла тоже вернет на путь истинный (в меню);
- в режиме выделения спрайта на экране желтый BORDER означает задание координат, зеленый - задание размера;
- в режиме удаления спрайта при нажатии на Enter при вводе номера спрайта (без нажатия цифр) спросится про удаление последнего спрайта, если нажать "Y", Вас не обманут (удалится последний захваченный спрайт);
- в режиме удаления спрайта наконец-то для первых 0Fh спрайтов можно вводить их номер одной цифрой (да, 16-ричной);
- при вводе 16-ричных чисел появился контроль ввода; теперь при неверных цифрах кидает не на первую попавшуюся ошибку, а на нормальное сообщение (правда, ввести повторно не предлагается);
- и, наконец, я придумал как работать с точкой входа по адресу +4 от начала сохраненного модуля: теперь модуль можно сохраниить и при наличии 0 спрайтов в пямяти, что позволит грузить его куда хочется, а сохраненные командой "Save sprites" спрайты - в другое "куда хочется", и, используя таблицы смещений, выводить спрайты по адресу.
Осталось одно противоречие, которое меня (и не только меня) несколько коробит: в тулзе номера спрайтов начинаются с 1, а выгруженный модуль рисования считает их с 0. Должно путать всех. И путает. Есть у кого мысли где подпилить это досадное недоразумение?
Как всегда, сорцы и trd с готовым продуктом в аттаче.
Спасибо. Будет лучше.
Потому что раньше при нажатии на "огонь" после задания левого верхнего угла ничего визуально не происходило. Теперь хоть BORDER реагирует.
А у меня уже версия с десятичными :-P. Но я ее не отдам. Сделаю еще несколько косметических правок, тогда только. Приоткрою немного завесу тайны - специально для AER я придумал как сделать так, чтобы рамка не исчезала в знакоместах, где INK == PAPER. Только тсс...
Не, тут вопрос филосовский... Меня самого корябить будет (если вдруг стану своим пользователем) при нумерации спрайтов с 1, когда из машкода звать. Подумаю.
во, дельньная вещь. а то мало ли че. а то по умолчанию в рисовалке,все в 0. а я иногда хочу выделять спрайт по покам на одно знакоместо больше, чтоб оно затирало его остатки при движении.
---------- Post added at 08:46 ---------- Previous post was at 07:20 ----------
твоя прога в действии - ищи "игры - моя игра - ......"
Сделал еще несколько косметических правок для трудящихся. Пока изменений немного и они не превращают пробу пера в подобие чего-то серьезного, но грабер меняется (надеюсь, к лучшему), что и мне в радость, и другим в нее же. Итак:
- обещанные десятичные числа везде;
- из кодового блока выкинуто 6912 байт нулей (сам смеялся когда нашел);
- запись и загрузка с любого дисковода (перед именем файла сказать 2:, B: или b: для дисковода B, например);
- хитрорежим выделения спрайта без исчезания рамки (см. ниже)
- фикс мелкого бага с одъеданием стека при нажатии BREAK;
Как же удалось уважить AER'а с его чудо-рисовалкой, делающей знакоместа с атрибутами #00 там, где нет изображения? Пока криво, но как-то. Сам признаю, каюсь, знаю как лучше, но это тоже потом. Суть лекарства: при выделении спрайта теперь можно жать кнопку "B" - при этом настоящие атрибуты экрана сгинут, а картинка станет "черно-белой" (чтобы не выбиваться из общего вида интерфейса, она станет все-таки черно-ярко-голубой). Если станет страшно, еще раз нажатие "B" вернет все на место. Не зависимо от того, "черно-белая" картинка рисуется, или как родилась, спрайты захватятся с правильными атрибутами.
Собсна, как всегда, результат плюс сорцы прикладываются.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)