Просмотр полной версии : Есть ли утилита по выводу спрайтов из под бейсика?
Для БКшки есть что ни будь подобное? Создаёшь спрайт, компилируешь и сохраняешь. Далее из под бейсика выводишь в нужном месте экрана.
Ну спрайты же могут храниться и в верхних ячейках памяти, я просто знаю что для спека подобное есть и даже с выводом по маске реализовали. Хотя бы возьмите к примеру ту же игру с цыплёнком где по платформам нужно подниматься, я считаю не плохая игра для гибрита бейсика и машинных кодов.
Для БКшки есть что ни будь подобное? Создаёшь спрайт, компилируешь и сохраняешь. Далее из под бейсика выводишь в нужном месте экрана.Выводить спрайты из Бейсика хочешь по описанному здесь методу (http://gid.pdp-11.ru/books/programming_BK10.html)? ("Подпрограммы и закодированный спрайт мы разместим с адреса 35000" и далее)
Радио-86РК
21.04.2020, 20:19
лучше рисовать что то простое оператором DRAW - это медленно.
Ну и PEEK, POKE ))) В совокупности с DATA - про спрайты наверное только так.Aга, получается, DATA-POKE код компактнее, чем спрайт в памяти???:v2_conf3:
Ещё в Yamaha-MSX были встроенные Sprite$ (https://www.msx.org/wiki/PUT_SPRITE)-операции!
Неужели так всё запущено‽
Это интересно, вопросик - что бы не вбивать вот такие примеры в ручную, есть какой ни будь импорт тексовиков в бейсик? Про спектрум я помню многое, про бк шку забыл почти всё. Как в бейсике вызывать редактируему строку и как перемещать курсор в листе программы. А то команда лист целиком всё перелистывает.
Радио-86РК, Это особенность реализации бейсика на БК. На спеке кстати тоже такого нет, но все легко обходится средствами бейсика.
Мы во флейме это обсудили. Назначение БК не в игрушки играть, а заниматься серьезными вещами - вон как Хобот предлагает.
- - - Добавлено - - -
Руслан, там вроде еще команда auto была, и экранный редактор.
Oleg N. Cher
21.04.2020, 20:31
Руслан, нет, я то же самое хотел бы для ПАСКАЛЯ на УК-НЦ.Хоботыч, ты как-то странно хочешь вывод спрайта. ;-) То хочешь, то не хочешь. А вот это (https://github.com/Oleg-N-Cher/UkncDev/blob/master/Lib/Mod/CGLIB.PAS) чем тебе не решение? BlaireCas постарался добре.72305
2 Руслан: извини, что я отвечаю не по теме, но графическими штуками для БК я не занимался. Собираюсь разве что если найду подходящий инструмент типа Си-компилятора. Да, эту процедуру вывода по ссылке выше можно адаптировать для БК, там только подправить вывод в видеопамять. Но это больше есть смысл для БК-0011, особенно если кодить на OMSI Pascal.
P.S. Помнишь ты спрашивал про что-то вроде Laser Basic? Имхо самый адекватный вариант подсказал тебе именно я - это ZXDev с библиотеками Laser и Laser2. И ничего более похожего не это просто нету. Но сейчас я экспериментирую с Обероном для разработки под NES на простом языке. Задумка такая, чтобы разрабатывать смогли люди без знания асма и Си, только с начальными знаниями Паскаля. Работа идёт на базе библиотеки NesLib от Shiru. Так можно писать игры и демки. Если интересно, вот ссылочка:
• Кодим для игровой приставки Nintendo/NES (http://zx.oberon.org/forum/viewtopic.php?f=129&t=487)
Ну и конечно я всегда открыт для общения на темы разработки игр под ретро-платформы на ЯВУ, стучитесь в личку.
Радио-86РК
21.04.2020, 20:36
Мы во флейме это обсудили. Назначение БК не в игрушки играть, а заниматься серьезными вещамиНедавнo я на ZX писал код на Бейсике и чуть с ума не сошёл, когда не обнаружил функции ADDR, возвращающей адрес переменной.
Потому, да, соглашусь, что Бейсик должен иметь только всё необходимое: А ADDR - куда важнее, чем GET/PUT…
Те же спрайты можно легко рисовать, имея функции ADDR и USR без всяких PEEK/POKE…
Как в бейсике вызывать редактируему строку и как перемещать курсор в листе программы. А то команда лист целиком всё перелистывает.Команду AUTO уже упомянули, есть ещё команда . (точка) и после неё пишешь номер строки. Тогда вызывается на редактирование указанная строка.
На счёт хранения спрайтов прямо в коде Бейсик-программы - я бы не заморачивался числами, потому что их неудобно редактировать. Захочешь изменить спрайт и что - опять его конвертировать, подцеплять к программе и вот это всё?
Можно сделать иначе: хранить спрайт в текстовых строках. Типа такого:
https://66.media.tumblr.com/d6a0c89c6727a91b6c63bca59e0153ee/tumblr_pulspag4Fh1rrftcdo1_540.png
Для четырёх цветов завести 4 символа. Написать подпрограммку, которая проходит по строкам командой MID$, выделяет пиксели, собирает из них числа и записывает в память. Конечно, при запуске игры секунда-другая уйдёт на подготовку спрайтов в памяти, но разве это проблема? Зато удобно хранить и редактировать.
В качестве бонуса - длина строки автоматически задаёт ширину спрайта, не надо писать руками.
Ну а если рисовать спрайт и экспортировать. Есть же вроде утилита по экспорту картинок под бк. Тогда как минимум можно сэкономить место под тот же бейсик. Я хочу поковыряться в чикене, там автор молодец, не поленился комментарии оставить.
Это интересно, вопросик - что бы не вбивать вот такие примеры в ручную, есть какой ни будь импорт тексовиков в бейсик? Про спектрум я помню многое, про бк шку забыл почти всё. Как в бейсике вызывать редактируему строку и как перемещать курсор в листе программы. А то команда лист целиком всё перелистывает.
вот так работает
можно редактировать строки.
72306
- - - Добавлено - - -
Команду AUTO уже упомянули, есть ещё команда . (точка) и после неё пишешь номер строки. Тогда вызывается на редактирование указанная строка.
На счёт хранения спрайтов прямо в коде Бейсик-программы - я бы не заморачивался числами, потому что их неудобно редактировать. Захочешь изменить спрайт и что - опять его конвертировать, подцеплять к программе и вот это всё?
Можно сделать иначе: хранить спрайт в текстовых строках. Типа такого:
https://66.media.tumblr.com/d6a0c89c6727a91b6c63bca59e0153ee/tumblr_pulspag4Fh1rrftcdo1_540.png
Для четырёх цветов завести 4 символа. Написать подпрограммку, которая проходит по строкам командой MID$, выделяет пиксели, собирает из них числа и записывает в память. Конечно, при запуске игры секунда-другая уйдёт на подготовку спрайтов в памяти, но разве это проблема? Зато удобно хранить и редактировать.
В качестве бонуса - длина строки автоматически задаёт ширину спрайта, не надо писать руками.
А это не будет разве слишком сильным расходом памяти?
- - - Добавлено - - -
hobot, если тебе тут нечего сказать не говори ничего.
что то на этой маленькой картинке совершено ни чего не видно
что то на этой маленькой картинке совершено ни чего не видно
короче по команде auto
он начинает выводить строки на редактирование если они есть.
в архиве большая картинка где все видно
72307
или как писал Манве .номер строки
Если не ошибаюсь, была интересная статья в журнале ПЕРСОНАЛЬНЫЙ КОМПЬЮТЕР БК-0010 - БК-0011М (https://r-games.net/31546-personalnyy-kompyuter-bk-0010-bk-0011m.html), посвященная работе со спрайтами в бейсике. Не помню в каком номере, возможно 3'95
Руслан, могу скрафтить програмку по переводу картинки в спрайт, но нужно знать в каком виде тебе это отдавать и какой у тебя будет формат спрайта.
Oleg N. Cher
22.04.2020, 01:08
не по теме тут!!!Я и сам написал, что не по теме. Но если рассматривать вопрос шире в контексте интересов Руслана, то он сейчас просит что-то вроде Лазер Бейсика для БК. А до этого просил что-то вроде Лазер Бейсика для ZX. То есть, ему нужен вывод спрайтов из языка высокого уровня. А поскольку я знаю, что Руслан занимается производством картриджей для NES/Sega, то предположил, что ему может пригодиться и что-то вроде Лазер Бейсика для NES. Так что как бы всё по теме. Просто я смотрю на вопрос несколько поширшее - в контексте "а тебе нужен инструмент, который можно развивать в этом направлении, забив на корявый и тормозной интерпретатор? Но для этого надо хотя бы инвестировать время на его изучение".
Да и процедуру, ссылку на которую я дал, не так сложно адаптировать для БК.
Хобот, ты почему не посоветовал процедуры вывода спрайта из ФОНДа БК? Кстати, их можно вызывать только из Фокала или из Бейсика тоже?
ФОНД (ФОртран На Дому) Г.Приса дает возможность повышения
точности вещественной арифметики, операций с массивами и многое
другое. Популярная версия МИФ (Мини-ФОНД) позволяет программисту
собрать МИФ только из нужных в данной программе функций; он удобен в
обращении и позволяет подключать новые функции. В МИФе уже реализованы
подпрограммы исполнения музыки, вывода спрайтов и символов
произвольного размера, сборка Фокал-программ из отдельных частей,
экранный и графический редакторы и многое другое.
http://boulder-dash.narod.ru/bk_emulator/bkprogramming.html
Руслан, могу скрафтить програмку по переводу картинки в спрайт, но нужно знать в каком виде тебе это отдавать и какой у тебя будет формат спрайта.
Вы имеете ввиду программку которая просто будет экспортировать обычную картинку в картинку для бк? Или создавать файл который из бэйсика будет выводить спрайт?
- - - Добавлено - - -
Для неса вещь хорошая, но нужно учитывать что уже сделали программу для создания игр, и довольно таки не плохие платформеры на ней можно сделать.
Есть же вроде утилита по экспорту картинок под бк.http://thesands.ru/bk0010/image-converter/
Ширина картинки должна быть кратна 4 пикселям
У меня другая отдельная программа для винды. В вашем случае не совсем понятно что значит старт адрес?
Руслан, на самом деле это не очень хорошая идея к каждому спрайту прицеплять процедуру вывода.
Лучше всего делать набор спрайтов из которого и выводить по номеру.
- - - Добавлено - - -
У меня другая отдельная программа для винды. В вашем случае не совсем понятно что значит старт адрес?
там видимо бин файл создается, а для них стандартно адрес загрузки идет.
Да, файл в формате .bin содержит заголовок из двух 16-битных слов: адреса и длины.
Руслан, на самом деле это не очень хорошая идея к каждому спрайту прицеплять процедуру вывода.
Лучше всего делать набор спрайтов из которого и выводить по номеру.
- - - Добавлено - - -
там видимо бин файл создается, а для них стандартно адрес загрузки идет.
Абсолютно с вами согласен. В идеале задавать номер спрайта и процедура будет его выводить самостоятельно. Но к сожалению такого добра я не нашёл. Тут смотрю для десятки расширители памяти на 32 кб существуют, с таким плюсом можно будет не бояться нехватки памяти. Помню просто эту страшную надпись "out of memory" когда писал экономическую игру.
Эти расширители памяти подключаются вместо Бейсика. Придётся в процедуре вывода спрайта писать код, который сперва отключает Бейсик и включает дополнительную память, затем выводит спрайт из этой памяти, потом снова возвращает Бейсик, и лишь тогда выходит из процедуры.
Предварительно надо будет спрайты загнать в дополнительную память. Но если хранить эти спрайты в Бейсик-программе, то никакой экономии памяти не получится. Ибо нет команды, освобождающей память, занятую массивом... Или есть? Какой-то там CLEAR что-ли...
Можно, конечно, извратиться: написать в кодах небольшую программу, которая загружает спрайты с магнитофона или диска (через EMT 36). Эту программу назначить на функцию USR0 в Бейсике. И вызывать её в начале программы (после надписи «loading...»).
Эти расширители памяти подключаются вместо Бейсика. Придётся в процедуре вывода спрайта писать код, который сперва отключает Бейсик и включает дополнительную память, затем выводит спрайт из этой памяти, потом снова возвращает Бейсик, и лишь тогда выходит из процедуры.
Предварительно надо будет спрайты загнать в дополнительную память. Но если хранить эти спрайты в Бейсик-программе, то никакой экономии памяти не получится. Ибо нет команды, освобождающей память, занятую массивом... Или есть? Какой-то там CLEAR что-ли...
Можно, конечно, извратиться: написать в кодах небольшую программу, которая загружает спрайты с магнитофона или диска (через EMT 36). Эту программу назначить на функцию USR0 в Бейсике. И вызывать её в начале программы (после надписи «loading...»).
это кстати вполне разумно. Передавать в подпрограмму номер и координаты спрайта. логику работы пусть на бейсике. а графику предварительно загрузить в верхнюю память. я бы сказал так и надо делать.
Ну что то да, как то замарочено. Сколько пользовательской памяти в бк0010?
Руслан, оригинальная Бк0010
16 к память
16 к экран
32 к пзу
там речь шла чтобы отключить ПЗУ, кинуть оттуда спрайт, включить ПЗУ.
16 это конечно жёстко. Тогда расширенная память в любом случае нужна. А так получается, килобайт 8 под графику и 8 под программу. Даже квеста более менее путёвого не сделать.
Oleg N. Cher
22.04.2020, 18:00
Для неса вещь хорошая, но нужно учитывать что уже сделали программу для создания игр, и довольно таки не плохие платформеры на ней можно сделать.Я ж не спорю, много чего есть в этом духе. Просто здесь в основе - идея писать под всё на одном языке высокого уровня. Конечно с библиотеками на асме, куда ж без них.
Руслан, почему такой странный выбор платформы? БК-0010. Возьми УКНЦ, там памяти побольше. Ну или хотя бы БК-0011.
- - - Добавлено - - -
Так что хотя бы Паскаль можно завести. А писать для десятой БК разумно только и только на асме.
Ответ прост, 10 компьютер моего детства, у меня было желание написать квест типа диззи и именно на бк. 11 у меня есть, но она меня не радует. Ну в общем то я и хочу реализовать детскую мечту. Лучше поздно чем ни когда.
Ответ прост, 10 компьютер моего детства, у меня было желание написать квест типа диззи и именно на бк. 11 у меня есть, но она меня не радует. Ну в общем то я и хочу реализовать детскую мечту. Лучше поздно чем ни когда.
можно использовать подгрузки по локациям и Pi-Код
Это что за пи код?
https://ru.wikipedia.org/wiki/P-%D0%BA%D0%BE%D0%B4
создание виртуальной машины под специфическую задачу. Ну и код под нее называется Р-код.
Тут конечно без асма не обойтись. но зато можно сократить объем кода локации за счет макроопределений.
как то так.
Ну это всё хорошо, но в любом случае пока нет инструмента я да и не только, ни чего сделать не смогу. АСМ я не осилю в силу отсутствия времени, бейсик мне как родной.
Ответ прост, 10 компьютер моего детства, у меня было желание написать квест типа диззи и именно на бк. 11 у меня есть, но она меня не радует. Ну в общем то я и хочу реализовать детскую мечту. Лучше поздно чем ни когда.Кстати, для БК есть Бейсик-87. Он загружается с диска. Работает намного быстрей ПЗУшного Бейсика.
Что касается утилиты, нарисуй сперва спрайты, тогда я сконвертирую все в один файл
Какой максимальный объём они могут занимать?
Какой максимальный объём они могут занимать?Ох, на БК чем меньше, тем лучше :) Здоровый минимализм, в общем. Лучше начать со скромных размеров (например, 4 килобайта). А там посмотрим.
статейка про спрайты и бейсик
http://zxpress.ru/book_articles.php?id=2391
оригинал статьи тоже ищется
вот попробовал конвертером что у меня, что то не очень впечатлён, но всё равно спасибо автору https://prnt.sc/s46e9w
оригинал статьи тоже ищется
http://publ.lib.ru/ARCHIVES/N/''Novoe_v_jizni,_nauke,_tehnike''/_''NJNT._Vychislitel'naya_tehnika_''_.html
номер со статьей (http://publ.lib.ru/ARCHIVES/N/''Novoe_v_jizni,_nauke,_tehnike''/''NJNT._Vychislitel'naya_tehnika_i_ee_primenenie'' ,1991,N01.[djv-fax].zip)
вот попробовал конвертером что у меня, что то не очень впечатлён, но всё равно спасибо автору https://prnt.sc/s46e9wПропорции картинки надо заранее приводить к БКшным. Ну и палитра в превью от БК 0011м, а результат загружен в БК 0010 без палитр.
И дизеринг Флойда- Стеинберга стремный, Штуки (Stucki) много лучше.
Lethargeek
23.04.2020, 22:35
И дизеринг Флойда- Стеинберга стремный, Штуки (Stucki) много лучше.
та же ботва твой стрюцкий, и даже хуже: https://www.ijedr.org/papers/IJEDR1702301.pdf
та же ботва твой стрюцкий,
Когда сам проверишь тогда и заявляй.. сам ботву какую-то нашел и сразу поверил.
- - - Добавлено - - -
Флойд - Стеинберг:
https://pic.maxiol.com/thumbs2/1587698237.100360672.20200424091337.png (https://pic.maxiol.com/?v=1587698237.100360672.20200424091337.png&dp=2)
Штуки:
https://pic.maxiol.com/thumbs2/1587698312.100360672.20200424091442.png (https://pic.maxiol.com/?v=1587698312.100360672.20200424091442.png&dp=2)
Lethargeek
24.04.2020, 07:24
S_V_B, оригинал в студию, а то так и я наподобие фиолетовую хрень запостить могу
- - - Добавлено - - -
оно даже разного размера у тебя, жулик
оно даже разного размера у тебя, жулик
Разного размера потому что Флойда я писал для БК и уже давно не поддерживаю этот проект за ненадобностью, а второй УКНЦ как более продвинутый.
Ты бы лучше сам что-либо предложил.. , а только языком метешь.. разговоры ради разговоров.
- - - Добавлено - - -
Специально для "особо недоверчивых" вставил Штуки в БКшечный редактор
https://pic.maxiol.com/thumbs2/1587708209.100360672.20200424120247.png (https://pic.maxiol.com/?v=1587708209.100360672.20200424120247.png&dp=2)
В белом цвете можно посмотреть только на БК11м (могу дать бинарник с подгружаемой палитрой), если не в курсе зеленый обусловлен тем, что на БК 0010-01 нет белого цвета.
Бинарник :
https://yadi.sk/d/uO0gaL9nk9rrcg
Можете попробовать на БК11
Lethargeek
24.04.2020, 09:16
Разного размера потому что Флойда я писал
ясно, понятно
Ты бы лучше сам что-либо предложил..
https://hbfs.wordpress.com/2013/12/31/dithering/
http://tool.anides.de
а только языком метешь.. разговоры ради разговоров.
это ты метёшь одни разговоры, а у меня по ссылке были беспристрастные цифры
, а у меня по ссылке были беспристрастные цифры
Только ссылками кидаться и умеешь :)
"Беспристрастные цифры" -- отношение сапогов к валенкам.
Лиш бы полемику развести.
Если не метешь языком покажи какую нибудь крутотень самолично сделанную для БК. Иначе разговаривать не о чем.
Lethargeek
24.04.2020, 09:51
отношение сапогов к валенкам.
...сказал человек, судящий по результатам, полученным от разных оригиналов :v2_dizzy_facepalm:
покажи какую нибудь крутотень самолично сделанную для БК
на бк не может быть крутотени :v2_tong:
...сказал человек, судящий по результатам, полученным от разных оригиналов
с чего такая уверенность? оригинал один:
https://pic.maxiol.com/thumbs2/1587713220.100360672.279f123fe85f211ffc0.png (https://pic.maxiol.com/?v=1587713220.100360672.279f123fe85f211ffc0.png&dp=2)
на бк не может быть крутотени
Дык какого Х.. ты тут делаешь???
Я то думал если человек заявляет:
та же ботва твой стрюцкий, и даже хуже:
то наверное знает как сделать лучше (для 4х цветной) БК.
А он просто чтобы пукнуть вслух... :(
Просто клинический тип... :)
SuperMax
24.04.2020, 12:24
...сказал человек, судящий по результатам, полученным от разных оригиналов :v2_dizzy_facepalm:
на бк не может быть крутотени :v2_tong:
завязываем с оффтопиком. далее будут санкции.
Lethargeek
24.04.2020, 17:49
с чего такая уверенность? оригинал один:
с того, что у результатов разный размер
разные размеры = разные картинки
или ты одновременно с диффузией масштаб изменял? :v2_crazy:
размер этого "оригинала" 320x240 что заведомо не влезет в бк-экран
давай именно который ты конвертировал
- - - Добавлено - - -
завязываем с оффтопиком. далее будут санкции.
несогласие с утверждением, не считаемым офтопиком - не офтопик
размер этого "оригинала" 320x240 что заведомо не влезет в бк-экран
давай именно который ты конвертировал
Для особо трудных... размер исходного изображения может быть любой и он масштабируется для БК или УКНЦ.. главное, что на выходе..
https://pic.maxiol.com/thumbs2/1587741225.100360672.222.png (https://pic.maxiol.com/?v=1587741225.100360672.222.png&dp=2)
чем тебе не размер БК?
Кончай тупить и флэймить.. это уже не интересно, все равно ничего путнего не скажешь.
- - - Добавлено - - -
Если ты мог заметить, мой въедливый товарисч... размер на выходе 256х192, посчитай пропорцию от 320х240. Не вижу ни какого смысла в твоих доеб..х.
Как в этом эмуле https://prnt.sc/s5cyy7 загрузить картинку из под бейсика. bload "222" допустим не врспринимает файл, а на автомате картинка грузится узкой https://prnt.sc/s5czy2
- - - Добавлено - - -
и в ней палитру для десятки можно как ни будь выбрать?
и в ней палитру для десятки можно как ни будь выбрать?
У десятки нет палитры- должна показать зеленым. ( но в том бинарнике есть пп изменения палитры, тебе нужен чистый бинарник?)
Если от него будет польза то конечно нужно. Я разные палитры выбираю и как бы результат разный, но далеко не тот что в программе по понятным причинам.
Я всегда пользовался эмулятором от gid и реалом... , а почему BLOAD... в васике вильнюс не силен поробуй в эмуляторе как обычно мо.. ма.. имя файла.. ну и включи в конфе БК11м
Да нет, мне именно 10 тка нужна. по разбираюсь
Вру.. для 11м все по другому.. просто я привык с образами дисков работать.
- - - Добавлено - - -
вот бинарник с заголовком, должен просто запуститься:
https://yadi.sk/d/zSFTyat07-0t0A
MO
M
ИМЯ?
Как в этом эмуле https://prnt.sc/s5cyy7 загрузить картинку из под бейсика. bload "222" допустим не врспринимает файлНадо положить файл в папку bin и в настройках включить эмуляцию загрузки с магнитофона (Опции / Эмулировать загрузку с ленты).
размер исходного изображения может быть любой и он масштабируется для БК или УКНЦ.. главное, что на выходе..
если конверсия идет на БК то может и при масштабировании децл картинку покоцать.
в идеале лучше смасштабировать заранее и тогда сравнивать.
если конверсия идет на БК то может и при масштабировании децл картинку покоцать.
в идеале лучше смасштабировать заранее и тогда сравнивать.
Я об этом предупреждал.. + лучше бмп чем жипег + подбирать контрастные изображения (а не болтающееся в районе 127).
Lethargeek
24.04.2020, 23:57
Для особо трудных... размер исходного изображения может быть любой и он масштабируется для БК или УКНЦ..
для особо трудных - телепаты в отпуске и никто не ведает, как конкретно ты себе растягивал-обрезал
главное, что на выходе..
и на выходе у онлайн-конвертера, на который я давал ссылку, явно не такая хрень, как твоё зелёное на скрине
Jarik65535
30.04.2020, 16:37
Трэд не читал. У меня была игра dragon.bin от elm soft, кажется. Там было реализовано именно это. Сначала, с помощью POKE задаешь адрес спрайта, а затем через функцию USR — адрес в ОЗУ экрана. (или наоборот). Работало довольно быстро. Саму утилитку можно загружать в память с помощью DATA.
У меня была игра dragon.bin от elm soft,
на сайте ищется
https://r-games.net/227-dragon-fly-episode-5-beysik.html
- - - Добавлено - - -
Разработчик: Шишканов Д.
Издатель: ELMSOFT
https://r-games.net/352-epic-1-episode-6-beysik.html
Для БКшки есть что ни будь подобное? Создаёшь спрайт, компилируешь и сохраняешь. Далее из под бейсика выводишь в нужном месте экрана.
случайно попалось:
Использование подпрограмм в кодах при работе на Бейсике (http://gid.pdp-11.ru/books/programming_BK10.html#__RefHeading__216)
Oleg N. Cher
28.05.2020, 00:57
Попался порт игры PUTUP на Бейсике с кодовыми вставками. Игра вполне динамичная. Возможно, будет полезно поразбирать её исходник: https://r-games.net/48258-putup.html
Я не вникал в Бейсик БК-0010, но предположу, что в игре есть подпрограмма вывода закодированных спрайтов фиксированного размера, специально адаптированная под вызов из Бейсика. Возможно, придётся скооперироваться со знатоками кодов, чтобы помогли адаптировать функционал вывода к нужному виду.
Лично я просто поразился, что такую игру можно сделать на Бейсике с небольшими с кодовыми вставками.
Нашкрябала на досуге в Бейсике вариант более-менее компактного хранения данных спрайтов в операторе DATA...
10 DATA F765,7FF7
20 GOTO 105
88 REM *** GET HEX DATA WORD ***
89 READ H$
90 D%=ASC(MID$(H$,1,1))
91 GOSUB 103
92 IF D%<8 TH C%=D%*4096 EL C%=(D%-8)*4096-32768
93 D%=ASC(MID$(H$,2,1))
94 GOSUB 103
95 C%=C%+D%*256%
96 D%=ASC(MID$(H$,3,1))
97 GOSUB 103
98 C%=C%+D%*16%
99 D%=ASC(MID$(H$,4,1))
100 GOSUB 103
101 C%=C%+D%
102 RETURN
103 IF D%>64 TH D%=D%-55 EL D%=D%-48
104 RETURN
105 GOSUB 89
106 ? HEX$(C%)
107 ? H$
108 REM *** GET SECOND WORD ***
109 GOSUB 89
110 ? HEX$(C%)
111 ? H$
119 ? FRE(H$)
120 H$=""
122 ? FRE(H$)
Может кому пригодится ещё :v2_dizzy_roll:
Нашкрябала на досуге в Бейсике вариант более-менее компактного хранения данных спрайтов в операторе DATA...Хранить спрайты в hex - прикольная идея. Но вроде как в БКшном Бейсике уже есть встроенные 16-ричные числа и можно просто записать
10 DATA &HF765,&H7FF7
Хранить спрайты в hex - прикольная идея. Но вроде как в БКшном Бейсике уже есть встроенные 16-ричные числа и можно просто записать
10 DATA &HF765,&H7FF7
Да, но если строк с Data много, выгоднее сэкономить на лишних символах &H ;)
Да, но если строк с Data много, выгоднее сэкономить на лишних символах &H ;)Если очень много, то да :)
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot