Для БКшки есть что ни будь подобное? Создаёшь спрайт, компилируешь и сохраняешь. Далее из под бейсика выводишь в нужном месте экрана.
Вид для печати
Для БКшки есть что ни будь подобное? Создаёшь спрайт, компилируешь и сохраняешь. Далее из под бейсика выводишь в нужном месте экрана.
Ну спрайты же могут храниться и в верхних ячейках памяти, я просто знаю что для спека подобное есть и даже с выводом по маске реализовали. Хотя бы возьмите к примеру ту же игру с цыплёнком где по платформам нужно подниматься, я считаю не плохая игра для гибрита бейсика и машинных кодов.
Выводить спрайты из Бейсика хочешь по описанному здесь методу? ("Подпрограммы и закодированный спрайт мы разместим с адреса 35000" и далее)
Aга, получается, DATA-POKE код компактнее, чем спрайт в памяти???:v2_conf3:
Ещё в Yamaha-MSX были встроенные Sprite$-операции!
Неужели так всё запущено‽
Это интересно, вопросик - что бы не вбивать вот такие примеры в ручную, есть какой ни будь импорт тексовиков в бейсик? Про спектрум я помню многое, про бк шку забыл почти всё. Как в бейсике вызывать редактируему строку и как перемещать курсор в листе программы. А то команда лист целиком всё перелистывает.
Радио-86РК, Это особенность реализации бейсика на БК. На спеке кстати тоже такого нет, но все легко обходится средствами бейсика.
Скрытый текст
Мы во флейме это обсудили. Назначение БК не в игрушки играть, а заниматься серьезными вещами - вон как Хобот предлагает.
[свернуть]
- - - Добавлено - - -
Руслан, там вроде еще команда auto была, и экранный редактор.
Хоботыч, ты как-то странно хочешь вывод спрайта. ;-) То хочешь, то не хочешь. А вот это чем тебе не решение? BlaireCas постарался добре.Вложение 72305
2 Руслан: извини, что я отвечаю не по теме, но графическими штуками для БК я не занимался. Собираюсь разве что если найду подходящий инструмент типа Си-компилятора. Да, эту процедуру вывода по ссылке выше можно адаптировать для БК, там только подправить вывод в видеопамять. Но это больше есть смысл для БК-0011, особенно если кодить на OMSI Pascal.
P.S. Помнишь ты спрашивал про что-то вроде Laser Basic? Имхо самый адекватный вариант подсказал тебе именно я - это ZXDev с библиотеками Laser и Laser2. И ничего более похожего не это просто нету. Но сейчас я экспериментирую с Обероном для разработки под NES на простом языке. Задумка такая, чтобы разрабатывать смогли люди без знания асма и Си, только с начальными знаниями Паскаля. Работа идёт на базе библиотеки NesLib от Shiru. Так можно писать игры и демки. Если интересно, вот ссылочка:
Ну и конечно я всегда открыт для общения на темы разработки игр под ретро-платформы на ЯВУ, стучитесь в личку.
Недавнo я на ZX писал код на Бейсике и чуть с ума не сошёл, когда не обнаружил функции ADDR, возвращающей адрес переменной.
Потому, да, соглашусь, что Бейсик должен иметь только всё необходимое: А ADDR - куда важнее, чем GET/PUT…
Те же спрайты можно легко рисовать, имея функции ADDR и USR без всяких PEEK/POKE…
Команду AUTO уже упомянули, есть ещё команда . (точка) и после неё пишешь номер строки. Тогда вызывается на редактирование указанная строка.
На счёт хранения спрайтов прямо в коде Бейсик-программы - я бы не заморачивался числами, потому что их неудобно редактировать. Захочешь изменить спрайт и что - опять его конвертировать, подцеплять к программе и вот это всё?
Можно сделать иначе: хранить спрайт в текстовых строках. Типа такого:
https://66.media.tumblr.com/d6a0c89c...ftcdo1_540.png
Для четырёх цветов завести 4 символа. Написать подпрограммку, которая проходит по строкам командой MID$, выделяет пиксели, собирает из них числа и записывает в память. Конечно, при запуске игры секунда-другая уйдёт на подготовку спрайтов в памяти, но разве это проблема? Зато удобно хранить и редактировать.
В качестве бонуса - длина строки автоматически задаёт ширину спрайта, не надо писать руками.
Ну а если рисовать спрайт и экспортировать. Есть же вроде утилита по экспорту картинок под бк. Тогда как минимум можно сэкономить место под тот же бейсик. Я хочу поковыряться в чикене, там автор молодец, не поленился комментарии оставить.
вот так работает
можно редактировать строки.
Вложение 72306
- - - Добавлено - - -
А это не будет разве слишком сильным расходом памяти?
- - - Добавлено - - -
hobot, если тебе тут нечего сказать не говори ничего.
что то на этой маленькой картинке совершено ни чего не видно
короче по команде auto
он начинает выводить строки на редактирование если они есть.
в архиве большая картинка где все видно
Вложение 72307
или как писал Манве .номер строки
Если не ошибаюсь, была интересная статья в журнале ПЕРСОНАЛЬНЫЙ КОМПЬЮТЕР БК-0010 - БК-0011М, посвященная работе со спрайтами в бейсике. Не помню в каком номере, возможно 3'95
Руслан, могу скрафтить програмку по переводу картинки в спрайт, но нужно знать в каком виде тебе это отдавать и какой у тебя будет формат спрайта.
Я и сам написал, что не по теме. Но если рассматривать вопрос шире в контексте интересов Руслана, то он сейчас просит что-то вроде Лазер Бейсика для БК. А до этого просил что-то вроде Лазер Бейсика для ZX. То есть, ему нужен вывод спрайтов из языка высокого уровня. А поскольку я знаю, что Руслан занимается производством картриджей для NES/Sega, то предположил, что ему может пригодиться и что-то вроде Лазер Бейсика для NES. Так что как бы всё по теме. Просто я смотрю на вопрос несколько поширшее - в контексте "а тебе нужен инструмент, который можно развивать в этом направлении, забив на корявый и тормозной интерпретатор? Но для этого надо хотя бы инвестировать время на его изучение".
Да и процедуру, ссылку на которую я дал, не так сложно адаптировать для БК.
Хобот, ты почему не посоветовал процедуры вывода спрайта из ФОНДа БК? Кстати, их можно вызывать только из Фокала или из Бейсика тоже?
http://boulder-dash.narod.ru/bk_emul...ogramming.htmlЦитата:
ФОНД (ФОртран На Дому) Г.Приса дает возможность повышения
точности вещественной арифметики, операций с массивами и многое
другое. Популярная версия МИФ (Мини-ФОНД) позволяет программисту
собрать МИФ только из нужных в данной программе функций; он удобен в
обращении и позволяет подключать новые функции. В МИФе уже реализованы
подпрограммы исполнения музыки, вывода спрайтов и символов
произвольного размера, сборка Фокал-программ из отдельных частей,
экранный и графический редакторы и многое другое.
Вы имеете ввиду программку которая просто будет экспортировать обычную картинку в картинку для бк? Или создавать файл который из бэйсика будет выводить спрайт?
- - - Добавлено - - -
Для неса вещь хорошая, но нужно учитывать что уже сделали программу для создания игр, и довольно таки не плохие платформеры на ней можно сделать.
http://thesands.ru/bk0010/image-converter/
Ширина картинки должна быть кратна 4 пикселям
У меня другая отдельная программа для винды. В вашем случае не совсем понятно что значит старт адрес?
Да, файл в формате .bin содержит заголовок из двух 16-битных слов: адреса и длины.
Абсолютно с вами согласен. В идеале задавать номер спрайта и процедура будет его выводить самостоятельно. Но к сожалению такого добра я не нашёл. Тут смотрю для десятки расширители памяти на 32 кб существуют, с таким плюсом можно будет не бояться нехватки памяти. Помню просто эту страшную надпись "out of memory" когда писал экономическую игру.
Эти расширители памяти подключаются вместо Бейсика. Придётся в процедуре вывода спрайта писать код, который сперва отключает Бейсик и включает дополнительную память, затем выводит спрайт из этой памяти, потом снова возвращает Бейсик, и лишь тогда выходит из процедуры.
Предварительно надо будет спрайты загнать в дополнительную память. Но если хранить эти спрайты в Бейсик-программе, то никакой экономии памяти не получится. Ибо нет команды, освобождающей память, занятую массивом... Или есть? Какой-то там CLEAR что-ли...
Можно, конечно, извратиться: написать в кодах небольшую программу, которая загружает спрайты с магнитофона или диска (через EMT 36). Эту программу назначить на функцию USR0 в Бейсике. И вызывать её в начале программы (после надписи «loading...»).
Ну что то да, как то замарочено. Сколько пользовательской памяти в бк0010?
Руслан, оригинальная Бк0010
16 к память
16 к экран
32 к пзу
там речь шла чтобы отключить ПЗУ, кинуть оттуда спрайт, включить ПЗУ.
16 это конечно жёстко. Тогда расширенная память в любом случае нужна. А так получается, килобайт 8 под графику и 8 под программу. Даже квеста более менее путёвого не сделать.
Я ж не спорю, много чего есть в этом духе. Просто здесь в основе - идея писать под всё на одном языке высокого уровня. Конечно с библиотеками на асме, куда ж без них.
Руслан, почему такой странный выбор платформы? БК-0010. Возьми УКНЦ, там памяти побольше. Ну или хотя бы БК-0011.
- - - Добавлено - - -
Так что хотя бы Паскаль можно завести. А писать для десятой БК разумно только и только на асме.
Ответ прост, 10 компьютер моего детства, у меня было желание написать квест типа диззи и именно на бк. 11 у меня есть, но она меня не радует. Ну в общем то я и хочу реализовать детскую мечту. Лучше поздно чем ни когда.
Это что за пи код?
https://ru.wikipedia.org/wiki/P-%D0%BA%D0%BE%D0%B4
создание виртуальной машины под специфическую задачу. Ну и код под нее называется Р-код.
Тут конечно без асма не обойтись. но зато можно сократить объем кода локации за счет макроопределений.
как то так.
Ну это всё хорошо, но в любом случае пока нет инструмента я да и не только, ни чего сделать не смогу. АСМ я не осилю в силу отсутствия времени, бейсик мне как родной.
Какой максимальный объём они могут занимать?
статейка про спрайты и бейсик
http://zxpress.ru/book_articles.php?id=2391
оригинал статьи тоже ищется
вот попробовал конвертером что у меня, что то не очень впечатлён, но всё равно спасибо автору https://prnt.sc/s46e9w