Просмотр полной версии : Evacuator - help thread.
Вот, требуется помочь человеку с новой игрой.
Андрей Владимирович
1 фев 2010 в 7:00
А я начинал со списывания с книжки, потом дошло до своих оригинальных игр! Правда на спектруме все дальше бейсика не зашло, но было очень круто!)))
Денис Басаргин
1 фев 2010 в 9:35
Андрей Владимирович, а можно эти игры сейчас к жизни вернуть? Остались-ли дискеты? Готов всё принять.
Андрей Владимирович
1 фев 2010 в 18:19
Неа,не осталось, но сейчас сижу восстанавливаю))) может через недельку закончу, если время будет...
Денис Басаргин
1 фев 2010 в 21:59
Новые игры? Ждём.
Андрей Владимирович
вчера в 4:28
Я даже как-то очень загорелся)) Две ночи посиде, сделал то, что было утеряно... Сейчас хочу добавить всяких новых штук. Но поиграться уже могу скинуть, к тому же может новые уровни сделаете!
Денис Басаргин
сегодня в 11:17
Кидай на народ. От новья никогда не отказываюсь.
Андрей Владимирович
сегодня в 11:24
http://files.webi.ru/m_down/agsoft.trd.html
Я вот сюда залил
Денис Басаргин
сегодня в 14:24
А чего там делать-то? Людей жрать? Слушай, давай переместимся на ZX.PK.RU. Там народ мнгновенно идеи подскажет.
Андрей Владимирович
сегодня в 19:42
Там что-то непонятно или чего-то не хватает? Мне надо знать что с этим делать дальше)
Денис Басаргин
сегодня в 20:00
Вот по-этому и говорю - надо туда. Я вообще первый этап пройти не могу. Ты-же там вроде зарегистрирован? Ну хочешь, тему создам. Вон ведь, что монтика, что про подводную лодку, человек спрашивает как лучше сделать.
Андрей Владимирович
сегодня в 20:13
Там что бы пройти через фиолетовую дверь надо ключ взять, плюс надо учитывать невозможность ходить по одному и тому же месту два раза (это без использования предметов) передвигаться можно по диагонали, оставляя место для возвращения.
бомба взрывает стены и высушивает воду вокруг персонажа, активируется пробелом
Желтый ящик активируется ентером и дает возможность передвигаться по воде(10 ходов)
Андрей Владимирович
сегодня в 20:14
А на сайте я зарегистрируюсь. и создай тему там все обсудим.
Вообщем, ещё и во вложении игру записал.
Андрей Владимирович
сегодня в 8:10
Успел пока доработать демку)) а то, наверное мало кто сразу врубится, что надо делать... а так все просто и наглядно
Эта версия чуть ниже.
Shadow Maker
05.02.2010, 09:52
Медленно уж больно рисует уровень. И больно долго дыньдыньдынь идёт. 5 уровней прошел.
null_device
05.02.2010, 09:58
Задумка интересная.. Хочется узнать, в чем нужен хелп и будет ли игра переведена с бейсика на что-нибудь более быстродействующее? Допустим, если компильнуть MCoder'ом (от Евдокимова) получится довольно быстро. Правда код игры придется переработать - в этом могу помочь.. Сам кучу лабиринтов-искалок-собиралок на бейсике в начале слепил. :)
Давайте дождёмся автора.
Давайте! Ждем у барака.. Во вконтакте лезть не хочется - ибо не нравятся мне соц сети. Точнее, некоторые персонажи, там обитающие.
Медленно уж больно рисует уровень.
Так там вроде всё на бейсике. Надо-бы до ума всё доделать и музыку вставить. Пока человек зарегистрироваться не может. Точнее вроде написАть. Ну это день, я ему так и сказал.
---------- Post added at 10:02 ---------- Previous post was at 09:59 ----------
Задумка интересная.. Хочется узнать, в чем нужен хелп и будет ли игра переведена с бейсика на что-нибудь более быстродействующее? Допустим, если компильнуть MCoder'ом (от Евдокимова) получится довольно быстро. Правда код игры придется переработать - в этом могу помочь.. Сам кучу лабиринтов-искалок-собиралок на бейсике в начале слепил. :)
Давайте дождёмся автора. Если кому не терпится, заходите "в контакте" вот сюда: http://vkontakte.ru/topic-4023_2607824#offset=100
---------- Post added at 10:13 ---------- Previous post was at 10:02 ----------
Давайте! Ждем у барака.. Во вконтакте лезть не хочется - ибо не нравятся мне соц сети.
Да я вот туда специально и полез, чтобы нормальных людей оттуда вытаскивать, всё равно там всё пропадёт в небытие. Но есть там и кадры похлеще Клона. :)
Медленно уж больно рисует уровень.
Ага. Отрисовку уровней в разы быстрей можно делать на бейсике (даже прямым считыванием данных из памяти).
Я когда-то сваял на Бейсике сапера, карта генерировалась, затем рисовалась. Достаточно быстро было.
имхо ТАКОЕ на бусике писать - медленнее чем на асме...
Автор зарегился, ждет допуска от Станислава. И я этого аффтара знаю...
Автор зарегился, ждет допуска от Станислава. И я этого аффтара знаю...
Да он давно уже ждёт... Что-то не выходит...
Андрей Владимирович
вчера в 23:24
Слушай,че-то меня там все не могут оформить.... Я до сих пор не могу оставлять сообщения
Денис Басаргин
сегодня в 0:00
Хммм. Правильно хоть всё заполнил? А то если чего-то там не особо написал, могут и не пропустить.
Андрей Владимирович
сегодня в 11:22
Ну сайт меня узнает, но сообщения блокирует(
Устраните проблему пожалуйста...
null_device
08.02.2010, 14:41
Я когда-то сваял на Бейсике сапера
У меня, тоже такая задумка была, даже полу-рабочая заготовка имеется. Но до полнофукционала дело не дошло..
Отрисовку уровней в разы быстрей
Много лишних телодвижений по забиванию данных в массивы. Но, думаю, автор оптимизацией еще займется..
Andrey Vladimirovich
09.02.2010, 01:24
Ура, а вот аффтар))):)
Уже доработал прорисовку... интересная статистика:
____________3,5мхз 14мхз
оригинал: 60сек 12сек
1доработка 47сек 8сек
2доработка 21сек 4сек
мдя... разница существенная...
Кто может подсказать, как музыку в игру влить, а то я никогда такое не делал и понятия не имею как, даже примерно...
---------- Post added at 01:24 ---------- Previous post was at 01:15 ----------
И хотелось бы знать всеобщее мнение, как сама игра? Интересная или нет? Стоит ли её, вообще, дорабатывать?
И хотелось бы знать всеобщее мнение, как сама игра? Интересная или нет?
Интересная и оригинальная.
Стоит ли её, вообще, дорабатывать?
Естественно!!!
Shadow Maker
09.02.2010, 11:47
Кто может подсказать, как музыку в игру влить, а то я никогда такое не делал и понятия не имею как, даже примерно...
Книжку про "Как написать игру на ассемблере" с VT скачай, там раздел про IM2, вот то же самое, только вместо процедуры пользователя вызывать музыку.
Andrey Vladimirovich
09.02.2010, 12:38
Я в асемблере полный ноль! я глянул, как там музыку загружать, но ничего не понял(( Может кто-нить подробно объяснит, желательно с примером))
Shadow Maker
09.02.2010, 12:59
Ну тогда читай с начала книжку. Потому что "объяснить" сейчас это значит "дайте мне всё готовое чтобы я включил и работало" :) Хотя по сути - суешь в ассемблер приведенный текст, жмакаешь на "assemble" и курага.
Andrey Vladimirovich
09.02.2010, 13:03
ну поняна...
---------- Post added at 13:03 ---------- Previous post was at 13:00 ----------
А кто-нить готов помочь мне с рисованием новых уровней? если да, то ближе к вечеру выложу доработанную версию, т.к. принцип кодировки уровней полностью поменял.
Andrey Vladimirovich
09.02.2010, 18:12
Вот обновленная!!! Значительно быстрее и удобнее!!! без тытытытытдынь)))
CityAceE
10.02.2010, 08:34
Любопытно, в качестве бута используется TR-DOS Navigator, но при этом система каталогов на диске никак не задействована :)
null_device
10.02.2010, 16:17
Кто может подсказать, как музыку в игру влит
МузЫка в таких играх вещь не особо нужная, лучше, обработку юнитов на вторые прерывания повесить. Т.к. без особых проблем будет обрабатываться до ~50 элементов на экране.
----
Могу, правда выложить авто IM2 билдер. Для создания простейшей процедуры обслуживания вторых прерываний. В книге zx spectrum & tr-dos вторые прерывания и работа с ними разжевана, по-моему, проще некуда!
А кто-нить готов помочь мне с рисованием новых уровней?
Готов!! Хотя, движения по диагонали ИМХО, не есть хорошо (сильно утяжеляют и усложняют игру).
..как сама игра? Интересная или нет? Стоит ли её, вообще, дорабатывать..
Определенно интересная! Осталось довести до ума, только (придать более законченный вид, что ли).
Хотя, движения по диагонали ИМХО, не есть хорошо (сильно утяжеляют и усложняют игру).
Наоборот интереснее.
null_device
10.02.2010, 16:47
Возможно - интересно, смотрится, правда, дико! Странно, выглядит попытка протиснуться между углами двух блоков стоящих впритык (немного нелогично, если хотите).
----
Нет, я не говорю, что это плохо. Просто в играх такого типа ни разу не встречал подобного подхода к логике передвижения. sokoban, bolder dash, ripton и аналогичные игрушки в некотором роде не использовали таких способов перемещения. Впрочем, это решать автору проекта..
Странно, выглядит попытка протиснуться между углами двух блоков стоящих впритык (немного нелогично, если хотите).
Согласен. Но такого я вроде что-то больше нигде не встречал.
Andrey Vladimirovich
11.02.2010, 18:45
Как запустить музыку параллельно программе?У меня дает одну ноту и все.
Shadow Maker
11.02.2010, 18:51
А ты проинициализировал музыку сначала?
null_device
11.02.2010, 18:56
Как запустить музыку параллельно программе?
Обычно, все решается как в wham! the music box. Первый адрес инициализация мелодии, второй адрес (для каждого проигрывателя\редактора\ко мпилятора свой) проигрывание последующих нот. Примерно так:
..
10 RANDOMIZE USR A (инициализация мелодии)
20 RANDOMIZE USR B (проигрывание след. ноты)
30 PAUSE 7 (любой кусок несущий полезную нагрузку)
40 IF INKEY$="" THEN GOTO 20
..
----
Прилепил простенькую программку с демонстрашкой использования режима IM2.
....
Обнаружил косяк, исправил, перезалил..
Эх, надо бы мне выделить в отдельную user-софтину то, что я прикрутил для WHAM! 128 релиза Robin of the Wood 128 + MapGen... Там практически все и так оформленно как миксер, в WHAM! только сэмплы создаются, а потом компилятор выдирает их из огромных блоков WHAM! (без упаковки правда) и создает небольшой такой кусок параллельной музыки. Управляемый.
(результат моего полного непонимания трэкеров.)
Andrey Vladimirovich
15.02.2010, 14:38
С музыкой вот такая фигня: мелодия загружается, но параллельно с игрой работать не хочет... она работает либо до нажатия клавиши, либо просто один раз отыграет и все(( делал в Wham.
И что нужно сделать что бы она была "завершенная"?
---------- Post added at 14:38 ---------- Previous post was at 14:16 ----------
И что такое auto IM2? я че-то не понимаю.
И как её проинициализировать?
Я загружал мелодию по адресу 42000, и запускал Randomize usr 42000...
null_device
16.02.2010, 04:49
Можно поточне: каким редактором wham делалась мелодия? Вероятно wham! у вас для AY\YM (для 128к машин). Глянул мельком на него, там по-моему нет режима компиляции always (позволяющего играть музыку параллельно выполняя что-то еще).
В 48к версии была такая функция. Для инициализации мелодии выполнить randomize usr n, для проигрывания следующей ноты randomize usr n+12. О втором адресе для данного режима, почему-то нигде в программе не говорится!
----
Там все довольно тривиально:
Два бейсик файла - билдер im2 и демонстрашка.
Для работы кроме бейсик файла, у вас должна быть скомпилированная мелодия с плейером и обрабочик im2 созданный с помощью первой программы под ваши адреса.
Для 48к версии (под бипер) при компиляции в режиме always с адресом запуска 42000 - это числа 42000, 0, 42012. Правда, скорее всего придется отрегулировать темп, занося значения в ячейку 42035!
Принцип работы:
первым вводим адрес вызываемый при запуске im2. В кодах это выглядит как:
di ; запретить прерывания
call nn ;адрес вызова процедуры, аналог randomize usr nn
ld a,m ;число m, вектор прерываний
ld i,a
im 2 ;включение режима
ei ;разрешить прерывания
retвторым вводится адрес вызываемый при остановке im2:
di
call nn ;то же, что и выше, но по другому адресу
ld a,3F ;установка вектора прерываний для нормальной работы в tr-dos
ld i,a
im 1 ;выключение режима
ei
retтретьим вводится адрес вызываемый при работе im2.
push ix ;cохраняются на стеке значения всех регистры процессора
push iy
push bc
push de
push hl
push af
exx
push bc
push de
push hl
ex af,af'
push af
call nn ;адрес вызываемый каждое прерывание
pop af ;восстанавливаются значения регистров процессора
pop hl ;до момента прихода прерывания
pop de
pop bc
ex af,af'
pop af
exx
pop hl
pop de
pop bc
pop iy
pop ix
jp 38 ;переход по стандартному адресу обработки прерывания im1 (команда rst 56).Если вызывать ничего не надо (т.е. переход на адрес программы в кодах при запуске или остановке im2 не нужен), вводим 0. Это не будет расценено, как call 0 - будут использованы два nop'а. :)
последним вводится адрес распололжения обработчика в памяти. Из-за особенностей режима im2 (и написанного мною билдера) возможны несколько вариантов:
+ использование вектора из ПЗУ.
+ смещение процедуры к ближайщему возможному адресу (клавиша 1 или 2) либо выбор иного адреса (клавиша 3).
После ввода всех значений должен появиться экран, в первых трех строках которого указаны адреса описанные выше, адрес начала программы, обработчика прерываний, запуска и остановки режима im2. В последних строчках первая занимаемая программой ячейка памяти и длина программы.
http://img-fotki.yandex.ru/get/4012/capricorn-84.0/0_4e6db_49178265_L
замечание: поскольку im2 используется системой tr-dos. Перед вызовом ее команд или входом (по usr 15619 или usr 15616), должна запускаться подпрограмма остановки im2.
----
Думаю, доработать данную программулину, чтобы было более просто и наглядно. А главное универсально, например вместо ссылок на подпрограммы в кодах, подгрузка и интеграция в обработчик.. Планов, в целом - громадье!
И что нужно сделать что бы она была "завершенная"?
Не совсем понятно, что под этим подразумевается?
Andrey Vladimirovich
20.02.2010, 14:38
Было мнение, что игре чего-то не хватает, что б она была "завершенной", вопрос- чего именно не хватает?
А что касается im2, то я в принципе не понимаю, для чего она нужна и что она делает.... всякие адреса, процедуры- это, конечно, хорошо, но я не на столько продвинутый хацкер и реально не втыкаю как это чвязано с музыкой(((
---------- Post added at 14:38 ---------- Previous post was at 14:33 ----------
у меня в WHAM есть режим компиляции always, вот как раз при этом режиме он дает одну ноту и все....
null_device
20.02.2010, 15:03
Нужна стартовая картинка-меню (возможно, ненавязчивая музычка, там же). Аскетизм это, здорово, но для законченного продукта, маловато будет. Взгляните на мою реализацию игры червы в соседней ветке (http://zx.pk.ru/showthread.php?t=9884&highlight=%EC%EE%FF+%E8%E3%F0%E0&page=4).
----
im2 нужен для квазипараллельного выполнения подпрограмм, например, проигрывания музыки. Поскольку прерывания вызывается 50 раз в секунду (обычно при этом выполняется инкремент часов, сканирование клавиш и пр. действия не замечаемые пользователем), можно навесить небольшую программку выполняющую какое-либо простейшее действие (или несколько).
----
В 48к версии была такая функция. Для инициализации мелодии выполнить randomize usr n, для проигрывания следующей ноты randomize usr n+12. О втором адресе для данного режима, почему-то нигде в программе не говорится!
----
На бейсике при указанных вами параметрах для проигрывания мелодии нужно набрать примерно следующее:
..
10 RANDOMIZE USR 40000 (инициализация мелодии)
..
20 RANDOMIZE USR 40012 (проигрывание след. ноты)
22 RETURN
..
30 GO SUB 20 (проигрывание ноты)
32 PAUSE 7
40 GOTO 30
..
Выкладывайте свою скомпилированную мелодию в режиме always с адреса 40000. И скажите где в памяти вам удобнее будет расположить обработчик прерываний. Попробую слепить все воедино!
Andrey Vladimirovich
20.02.2010, 17:16
10 RANDOMIZE USR 40000 (инициализация мелодии)
..
20 RANDOMIZE USR 40012 (проигрывание след. ноты)
22 RETURN
..
30 GO SUB 20 (проигрывание ноты)
32 PAUSE 7
40 GOTO 30
Вот это теперь понял))))
А что бы музыка была параллельно программе, как раз и нужна im2???
null_device
20.02.2010, 17:27
Ну да.. второй режим прерываний позволяет это делать. Примерно то же самое (только в кодах) делает autoIM2.
Загрузите мою программку boot, а потом нажмите break и увидите ее рабрту в действии!
Andrey Vladimirovich
20.02.2010, 17:41
в меню игры музыку я вставить смогу используя только бейсик...
---------- Post added at 17:39 ---------- Previous post was at 17:38 ----------
Я уже запускал, только так ничего и не понял...
---------- Post added at 17:41 ---------- Previous post was at 17:39 ----------
Точнее, запускал все,))) а бута там нет)))
null_device
20.02.2010, 17:57
Программу обслуживания прерываний можно использовать для проигрывания обеих мелодий (или больше).
Нужно только занести значения для инициализации и проигрывания, запустить процедуру. При смене мелодии остановить ее, занести значения для другой мелодии по тем же адресам и опять запустить.
В кодах на каждый из аргументов соответсвующих строке randomize usr n отводятся две смежных ячейки (посмотрите строки data в autoIM2).
Напишите с каких адресов будут компилированы мелодии и куда удобней поместить процедуру прерываний. Тогда объясню как ей воспользоваться.
---------- Post added at 21:57 ---------- Previous post was at 21:55 ----------
Точнее, запускал все,))) а бута там нет)))
Возможно.. там всего два бейсик файла один из них демонстрашка. При первой заливке напортачил, забыв записать еще два файла. Перезалил - должно работать!
Andrey Vladimirovich
20.02.2010, 18:10
Я просмотрел демо...
там загружается сначала музыка, потом im2???
а randomize usr 40227 запускает саму im2?
---------- Post added at 18:10 ---------- Previous post was at 18:03 ----------
я вроде как начинаю понимать в чем суть...))
Осталось разобраться с им2...
я не совсем понимаю какие значения надо вводить...
init proc- адрес запуска процедуры (а заодно и музыки)??
потом адрес остановки???
остальное тож не понятно...
null_device
20.02.2010, 18:11
Все верно! Команда randomize usr 40227 запускает прерывания, а randomize usr 40239 останавливает их. Правда там косяк, в ячейке 40250 должно быть число 201 (но его почему-то там нет).
----
Для вашего случая музыки с 40000:
первый адрес, которое вызывается при старте (40000)
второе адрес, которое вызывается при остановке (0, т.к. ничего вызывать не нужно)
третий адрес, которое вызывается каждое прерывание (40012)
четвертый адрес, с которого будет располагаться процедура (файл im.CODE в демо).
Детально весь процесс расписан в конце третей страницы..
Andrey Vladimirovich
20.02.2010, 18:15
а что делает это число?
и как задать адреса отличные от 40000?
На данный момент, я могу изменить адрес загрузки уровней, а на 40000 влепить музыку... думаю работать будет... но хотелось бы понять все полностью.
null_device
20.02.2010, 18:22
а что делает это число?
позволяет вернуться из программы в кодах (201 код возврата, ret)
и как задать адреса отличные от 40000?
для чего? музыки или обработчика?
Andrey Vladimirovich
20.02.2010, 18:26
а!!! кажись допер))
---------- Post added at 18:26 ---------- Previous post was at 18:25 ----------
для всего... у меня по этому адресу идет загрузка уровней...
null_device
20.02.2010, 18:31
Ну.. не спроста в программе есть возможность смены адреса :). Сдвинуть процедуру в разумных пределах можно. Остальное зависит от того куда вы компильнете музыку!
Andrey Vladimirovich
20.02.2010, 18:40
я ввел все адреса, а он пишет vector not in rom
Это что такое?
null_device
20.02.2010, 18:46
Собственно значит, что в ПЗУ нет ячейки указывающей на данный адрес обработчика прерываний (советую посмотреть книгу ZX-Spectrum & TR-DOS для пользователей и программистов (http://trd.speccy.cz/book/ZX_TRDOS.ZIP), раздел система прерываний). Это не смертельно, просто если в ПЗУ значения нет, оно добавляется к обработчику (два значения перед процедурой). Введите, например адрес начала обработчика (четвертое значение) равный 52818 и сравните длину и адреса подпрограмм.
Andrey Vladimirovich
20.02.2010, 18:55
эээээээээ.... эт трудно...
)
посмотрим, попробую разобраться...
я пока для опытов стырю твою мелодию и демки, не против?
---------- Post added at 18:55 ---------- Previous post was at 18:54 ----------
кстати, что это за мелодия?
null_device
20.02.2010, 18:59
посмотрим, попробую разобраться...
Вектор прерывания формируется из значения младшего байта, который всегда равен 255, а старший записан в регистра I - указывает на адрес в двух ячейках памяти. Первая ячейка вычисляется по формуле vector=i*256+255 (где i может приниматьзанчения в диапазоне 0-255). т.е. значения для вектора используются со строго определенным шагом. В вычисленным т.о. ячейках ПЗУ содержится адрес в котором может располагаться обработчик прерываний. Если вектор указывет на ОЗУ - значения можно менять.
Если проще - содержимое регистра i указывает на ячейки памяти, которые указывают на обработчик.
----
Мелодия написана KSA! Вонзил только для ознакомления, так что особо не могу помочь.. Можете использовать на свой страх и риск ;)
----
по какому адресу мелодия в демке отключается?
По команде randomize usr 40239, или randomize usr 30009 если использовать мелодию без обработчика прерываний (соответственно: инициализация 30000, след. нота 30006).
Andrey Vladimirovich
20.02.2010, 19:07
А вот ещё вопрос: по какому адресу мелодия в демке отключается?
null_device
20.02.2010, 19:51
По-моему я догнал, чего не достает игре - демо режима! Вставить его в то, что уже есть не составит труда. Или рисовалки уровней, как в lode runner..
Andrey Vladimirovich
20.02.2010, 20:04
В смысле демо режим и рисовалка?
null_device
20.02.2010, 20:15
Например, режим с автоматическим показом хода игры на спец. демо уровне (или любом другом). Запускающийся при долгом бездествии в меню. Чтобы было понятно, как играть!
----
Отрисовка уровня - пауза - следующий уровень. Хотя, нет: вторая идея дрянь!
Например, режим с автоматическим показом хода игры на спец. демо уровне (или любом другом). Запускающийся при долгом бездествии в меню. Чтобы было понятно, как играть!
А не проще клавишу "DEMO" сделать? А при долгом ничего не деланье в меню выводить заставку игры.
null_device
20.02.2010, 20:33
Можно и так, а заставку забацать многокадровую..:v2_thumb:
Andrey Vladimirovich
20.02.2010, 20:56
Так я же вроде сделал демо режим....
)))
или Вы имеете в виду что-то другое?
И что Вы понимаете под рисовалкой уровней?
null_device
20.02.2010, 21:11
демо режим есть, но нажимать чего-то в нем по-моему лишнее (можно было просто указать, что используются такие-о клавиши в игре). Хозяин-барин, я не навязываю автоматический вход в режим демонстрации попрошествии определенного времяни.
----
загрузите lode runner и подождите немного, сами все увидите. Хотя, в данном случае идея дурацкая.
Andrey Vladimirovich
21.02.2010, 19:03
Слушай, чет с музыкой не клеится((
Вроде всё сделал как надо... но дает одну ноту и все... может я чего-то не так понял?
в им2
1)40000-адрес загружаемой мелодии
2)40012-адрес пригрывания следующей ноты
3)0-адрес остановк, который не указывается
4)39900-адрес загрузки им2, по этому же адресу и будут запускаться прерывания, а соответственно и музыка...
в бейсике
10 randomize usr 15619: rem: load"music" code 40000
20 randomize usr 15619:rem: load"im" code 39900
30 randomize usr 39900
правда адрес 39900 он не пропускает (почему такое происходит?), поэтому указываю тот, который он предлагает.
null_device
22.02.2010, 06:00
в им2
для мелодии компилированной в wham! с адреса 40000 в режиме always, по порядку вводятся следующие значения:
первый адрес вызывается при старте (40000)
второй адрес вызывается при остановке (0, т.к. ничего вызывать не нужно)
третий адрес вызывается каждое прерывание (40012)
четвертый адрес первый байт занимаемый процедурой (расположение в памяти, не более того).
http://img-fotki.yandex.ru/get/3911/capricorn-84.0/0_4f789_6c2b580f_L
правда адрес 39900 он не пропускает (почему такое происходит?), поэтому указываю тот, который он предлагает.
Потому, что в ПЗУ нужного вектора нет, а в ОЗУ значения можно записать только по адресу 255+256*154=39679\39680 (либо 255+256*155=39935\39936). По одному из них и заносится указатель на адрес, начала процедуры обработки прерываний (старший и младший байт).
http://img-fotki.yandex.ru/get/3812/capricorn-84.0/0_4f78a_588b1033_L
в бейсике
для запуска на бейсике ввести (для данного случая):
8 clear 39899
10 randomize usr 15619: rem: load"music" code 40000
20 randomize usr 15619: rem: load"im" code 39935
30 randomize usr 39971
Кстати, для той мелодии, что использовалась мною в демонстрации нужны другие адреса (ибо написана она не в wham!, воспроизводится не через бипер, и принцип прогирывания другой).
----
На самом деле, обработчик можно прописать по любому адресу (т.к. все три части не особо связаны между собой), занеся два байта в ячейки на которые указывает вектор прерываний. Для этого можно использовать программу autoIM2 стерев строки со 2 по 17 и набрать:
2 let m1=адрес при старте
4 let m2=адрес при остановке
6 let m3=адрес в прерывании
8 let i=адрес начала процедуры
10 let o=i
12 let z=старший байт вектора (0-255)
в своей программе же нужно вписать:
здесь z и i - числа, соответствующие переменным использованным в предыдущей программе!
10 poke 255+256*z,i-256*int (i/256)
12 poke 255+256*z+1,int (i/256)
либо вычислить все значения заранее.
----
Сам долго не мог разобраться, как работают прерывания, пока не допетрил, что вектор прерываний указывает на две ячейки, содержимое которых указывает на адрес начала процедуры обработки прерываний. Что-то вроде рекурсии: go to n, где в строке n стоит go to m, а уже со строки m располагается подпрограмма.
----
добавил вложение.. enjoy it! ;)
----
спасибо!!! теперь все ок!!!
Ну, наконец-то.. Рад за вас! :D
Andrey Vladimirovich
23.02.2010, 17:00
спасибо!!! теперь все ок!!!
null_device
23.02.2010, 18:06
Может все таки вторые прерывания используем более продуктивно? Водичку анимируем, ключики крутящиеся сделаем или еще че-нить придумаем.. ну, или музыку в каком-нить другом редакторе написать можно. Игра на бипере сильно подвешивает даже вторые прерывания (из-за особенности синтез звука).
Andrey Vladimirovich
24.02.2010, 19:29
пока не думал...
Хотя идея очень интересная! Сначала надо бы уровней побольше и музыку впихнуть))) а там уже будет видно...
А по какому принципу это все будет работать?
null_device
25.02.2010, 05:21
Такой размышлизм: Скидывая magic button различный варез на диски и изучая, то, что получилось - столкнулся с музыкой лежащей в доп страницах (при том, зачастую, одних и тех же). Такое ощущение, что мелодия используется путем впечатывания страницы - проигрывается квант мелодии - возвращается на место предыдущая страница.
----
Написал загогулину! %) Даже две! Процедурка получилась сырой, но вполне работспособный пример в виде снапшота. Пока, работает довольно тормознуто. Вариант номер раз: даем run - запуск вторых прерываний, потом пауза - жмем любую кнопку, запуск только самой процедуры замкнутой в цикл. Вариант два: просто run и глядим, как крутятся ключики, бежит водичка и шевелится растительность.. Либо набиваем строку 30 как в первом варианте и смотрим работу только процедурины (они компилированы в одни и те же адреса). 8D
Andrey Vladimirovich
01.03.2010, 00:12
Прикольно!!
А разница только в скорости изменения изображения?
и ещё мне интересен принцип... надо вводить новые значения графики udg? каким образом это делается?
null_device
01.03.2010, 10:29
http://zx.pk.ru/showpost.php?p=260154&postcount=58Никаких задержек в самой программе специально не делается.. :( Первый вариант тормозит из-за неоптимального алгоритма (и, вообще использования компилятора, надо полагать). Если бы писалось на ассемблере без использования штатных процедур ПЗУ скорость была бы выше на порядок.
Первый вариант: каждое прерывание выводится один элемент (из 50), значения которого беруться из массива. Получилось тормознуто, решил сделать обработку "оптом".
Второй вариант: каждое прерывание выводится максимально возможное кол-во элементов (в моем случае все 50).
Видимо проблема медленной работы в том что происходит инициализация компилированной программы и обработка стандартной процедуры (jp 56) прерываний после вызова подпрограммы в кодах.
Программка простая до ужаса. Правда, пришлось увеличить кол-во спрайтов (на каждый юнит 4 спрайта для анимации).
10 let s=40000 : let g=50000 ; таблица юнитов, обл спрайтов
12 let n=peek s: if n>50 then goto 200 ; проверка обработки всех юнитов
14 let m=peek (s+1+(n*4)) : let f=peek (s+2+(n*4)) ; тип юнита, фаза спрайта
16 let y=peek (s+3+(n*4)) : let x=peek (s+4+(n*4)) ; координаты юнита
18 randomize (g+(m-1)*32) : poke 23675, peek 23670: poke 23676, peek 23671
20 if m<>0 then go to 30 ; проверка на пустой юнит
22 goto 104
...
30 let f=f+1 : if f>3 then let f=0 ; инкремент фазы
100 poke s+2+(n*4),f
102 print st y,x; paper 8; ink 8; chr$ (144+f) ; печать юнита
104 poke s,n+1: goto 12 ; следующий юнит
200 stop
----
Добавил вложение с бейсик программой и компилятором (т.к. конечный вариант сделан именно им). Для просмотра нужно загрузить файл probe.B, запустить со строки 1000. После чего можно сделать run посмотреть работу одного цикла программки, или вставив в строку 200 goto 12 - зациклить анимацию.
Andrey Vladimirovich
01.03.2010, 20:18
странно... я не нашел где прописываются значения х и у...
И ещё, вся суть заключается в том, что бы анимация двигалась одновременно. а тут, как я понял, за одно прерывание рисуется только один спрайт...
null_device
01.03.2010, 20:34
Для просмотра нужно загрузить файл probe.B, со строки 1000 находится блок имитирующий внесение данных для работы (+ загрузчик графики). После чего сделав run посмотреть работу одного цикла программки (или прерывания, если хотите). Перерисовываются все элементы массива (хотя, можно сделать на максимальное кол-во, если их будет много).
На таблицу юнитов указывает переменная s, на графику g (4e4 и 5е5 соответственно). Ведены, как преременные для экономии места и релоцируемости (графику и таблицу можно двигать в памяти).
s номер обрабатываемо юнита (параметр цикла - забил на будущее, вдруг пригодится)
s+1 тип юнита (одна ячейка)
s+2 номер фазы юнита
s+3 у переменная юнита
s+4 х переменная юнита
..
потом значения s+1/s+4 повторяются для следующего юнита со смещением s+5/s+8.
----
Для "убивания" юнита нужно в переменную тип юнита записать 0. Вычислив его сравнивая в таблице сначала тип, а потом координаты у\х (или сравнивая координаты, если тип неизвестен или не важен). Добавление юнита можно произвести аналогичным образом. При этом надежнее, сначала "покилить" юнит, а потом рисовать его "убийство" на экране.
Andrey Vladimirovich
02.03.2010, 00:28
чета ничего не понял))
null_device
02.03.2010, 00:31
Можно поконкретнее, что вызывает трудности? :v2_conf2:
----
..
Andrey Vladimirovich
02.03.2010, 03:36
с анимацией чуть позже...
Написал небольшой музыкальный блок, запустил его в игре и...................
просто нереально тормозит!!!!(((((
В меню сделал без использования им2, там ещё нормально, а вот дальше...
С этим реально что-нить сделать?
---------- Post added at 02:25 ---------- Previous post was at 02:05 ----------
А ещё, хотелось бы знать компиляторы, которые поддерживаь работу с диском.
Я знаю только тобос и он это не умеет((
---------- Post added at 03:36 ---------- Previous post was at 02:25 ----------
Созрел ещё вопрос! в данный момент программа делает 50 прерываний в секунду?
Если да, то если уменьшить кол-во рперываний, увеличится ли скорость работы бейсик-программы?
я так прикинул, мне необходимо 5-6 нот в секунду... такое возможно?
null_device
02.03.2010, 05:29
Написал небольшой музыкальный блок, запустил его в игре и...................
просто нереально тормозит!!!!
музыку в каком-нить другом редакторе написать можно. Игра на бипере сильно подвешивает даже вторые прерывания (из-за особенности синтез звука)
хотелось бы знать компиляторы, которые поддерживаь работу с диском
Мне такие неизвестны. Не один из компиляторов не понимает обращение через .. usr 15619: rem: .. Если вы это имеете ввиду. Загрузчик по-любому придется писать в машинно-кодовых процедурах, или заниматься камланием с бубном (как это сделал я в червах из-за нежелания писать нормальный загрузчик).
программа делает 50 прерываний в секунду
Так точно! Притом прерывания наступают аппаратно, независимо от того, хотим мы или нет. Правда их можно и совсем запретить..
если уменьшить кол-во рперываний, увеличится ли скорость работы бейсик-программы
Теоретически можно, но, на прерываниях висит такая полезная штука как опрос клавиатуры.. Логичнее реже вызывать музыку, что в принципе возможно, надо только прикинуть, как это будет выглядеть в коде!
Andrey Vladimirovich
02.03.2010, 18:18
а в каком редакторе можно музыку сделать? просто у меня кроме Wham ничего нет...
null_device
02.03.2010, 18:43
Pro tracker, Sound tracker.. На сайте VT (http://trd.speccy.cz/system.htm), куча музыкальных редакторов (для муз процессора AY\YM). Правда, они не так наглядны как wham! Зато столько ресурсов для проигрывания не жрут.
Andrey Vladimirovich
02.03.2010, 20:52
Наверное разбирусь)
А вот ещё одна доработанная версия!!! :v2_yahoo:
-музыка в меню
-автоматический запуск демки при длительном бездействии в меню
-доработанный edittor
-ну и парочка новых уровней
Кстати, кто хотел помочь с уровнями, я уже очень жду!!! Скидывайте!)):speccy:
а в каком редакторе можно музыку сделать?
Лучшие из них ProTracker 3 (вот только какой из двух, я не знаю) и Vortex Tracker 2, который вообще из под винды работает. А также есть Mason AY 2, который похоже вообще ещё круче этих обоих (то-же из под винды).
P.S. Скачать два последних можно там же на VT, но только в разделе PC utilz.
null_device
02.03.2010, 23:55
Доработка - доработки.. из вложения сверху. По просьбам трудящихся реализована "плавающая" музыка на прерываниях (изменяется значением в ячейке 39750). Ногами за сомедеятельность просьба не пинать. Хотите пользуйтесь - хотите нет!
----
В базовой комплектации изменен файл Evacuato.B (убраны строки data, добавлен обработчик IM2, изменена логика автовхода в демо режим), добавлен файл my gr.C (псевдографика, вместо строк data в программе), добывлен фал my im2.C - модифицированный обработчик прерываний на основе файла сделаного autoIM2 (реально занимает лиш 75 байт).
Andrey Vladimirovich
03.03.2010, 02:13
это то, что называется my gr? Инструкция есть?))
---------- Post added at 01:38 ---------- Previous post was at 01:15 ----------
ага уже глянул. Могу сказать, что даже когда запускаешь музыку параллельно игре, она уже не так тормозит, как раньше! Но это все упирается именно в бипер?
т.е. из-за него все же тормозит?
---------- Post added at 02:13 ---------- Previous post was at 01:38 ----------
Обнаружил косяк в редакторе карт!
надо добавить строку 240 Randomize usr 15619:rem:load'level1' code
null_device
03.03.2010, 02:19
Именно в него! Особенно подтормаживает при синтезе гармонического тона (тем более шума). В силу невозможности иной реализации его на бипере.. Именно поэтому сделал "музЫку" только в меню.
----
Откопал сейчас в залежах дискету с самодельной игрушкой сапер (200х - какого-то гдоа) с эффектами под AY. Щелчки и попукивания можно реализовывать и на муз процессоре. В моих червах были реализованы звуки под AY, но дискета с собраной версией и исходниками почила в дисководе при просадке наряжения.. :( В ветке моя игра на бейсике выложена та же самая, но с эффектами под бипер (предыдущая сборка).
----
Обнаружил косяк в редакторе карт!
Кстати, о птичках! Не совсем удачно использовать пробел для редактирования. При одновременном зажатии со стрелками вылетаеш в бейсик (мой выбор z)!
Andrey Vladimirovich
03.03.2010, 02:55
Ну да!)) сам иногда натыкаюсь на остановку программы))
Кстати, есть же способ, что б убрать такую штуку! кто-нить знает?
---------- Post added at 02:55 ---------- Previous post was at 02:51 ----------
Гармонический тон- это когда играют две ноты одновременно?
Просто эту "музыку" фактически спер из агаты и раскинул всю на 2 голоса... если сделать в один, то будет быстрее?
null_device
03.03.2010, 03:07
Не думаю.. сам синтез звуков с помощью бипера не предусматривает возможности делать, что-то параллельно звуку. К тому же, как я подозреваю проигрыватель wham не заточен под работу с прерываниями (в частности с работой параллельно им бейсик-программы).
----
AY в этом плане намного производительнее - подкидывай, только данные для синтеза, МС сама сварганит звук (именно поэтому мелодию надо останавливать, в противном случае МС будет тянуть последнюю ноту).
кто такой МС?
Аббревиатура расшифровывающаяся, как МикроСхема. AY\YM - микросхема Программируемый Генератор Звука. В вашем скорпионе такая должна быть (40 ножечная МС или ее укороченный вариант, внешне похожа на микропроцессор Z80 - сердце любого спектрума). Имел место быть преимущественно на 128К моделях спектрума (наряду с бипером).
Andrey Vladimirovich
03.03.2010, 03:34
кто такой МС?
---------- Post added at 03:34 ---------- Previous post was at 03:14 ----------
Да-да! помню такую! правда самого скорпиончика у меня не осталось(( сужу в эмуляторе... а там есть поддержка такого звука? Это зависит от самого эмулятора или от эмулируемой модели?
null_device
03.03.2010, 03:47
Что в спектакуляторе, что в анреале - есть! В большинстве известных мне эмуляторов тоже. Правда, иногда его надо "включить" в настройках..%)
Только, что присовокупил к сообщению (http://zx.pk.ru/showpost.php?p=261846&postcount=73) архивчик с парой фич собственного изготовления: генератор спрайтов (по мотивам книги как написать игру на бейсике) и игра сапер.
Andrey Vladimirovich
03.03.2010, 03:53
Мдя генератор точно вестщь полезная!!!:eek:
Пока ещё не посмотрел... а он может сохранять отредактированные спрайты в файл?
null_device
03.03.2010, 03:59
Записывать.. теоретически - да! Выложенная версия т.с.з. пре релиз (чуть больше, чем заготовка). Фиг знает насколько адекватно работает загрузка\запись. Я когда весь блок заполнял, делал бреак и сохранял вручную.. быстрее было, чем по менюшкам лазить! :)
----
Если разберетесь, что там и как можете модифицировать под свои нужды.. ну или я доканаю его до победного конца. Вообще, для этих дел неплохие спрайт редакторы уже есть - эта програмка скорее багаж из прошлого. еще на кассете ею пользовался!:)
Andrey Vladimirovich
03.03.2010, 04:46
На самом деле, как мне кажется, каждый, кто создавал всякие игрушки, делал себе в помошь подобную прогу... Просто мысль о сохранении в файл лично мне пришл совсем недавно))) Просто я последний раз сидел за спекки ещё в средней школе. И там мой редактор выводил цыфры, которые я переписывал на листок, а потом уже вводил в бусике в дата:v2_eek:
Сейчас представить, так офигеть можно!!!))
У меня мысль такова, что можно создать редактор с возможностью выбора размера спрайта (до 3х3 знакоместа) и сохранять их скопом... будет очень удобно использовать в програмировании... принцип тот же, что и в моей игре под Вашей редакцией)):v2_thumb:
null_device
03.03.2010, 04:55
Так все и началось с того, что меня достало копаться в листках с цифрами, которыми задавалась графика. Одно породило другое.. и вот результат! :v2_clapp:
По моему где-то я уже выкладывал диск бест системс прогрз:)
На реале до сих пор в основном юзаю только его. Там и спрайтовые редакторы выложены.. и прочий, необходимый "в хозяйстве" софт.:v2_smoke:
----
надо будет посмотреть...
тока закончу исправлять мелкие косячки...
Ну, давайте - занимайтесь отладкой.. ;)
Andrey Vladimirovich
03.03.2010, 05:28
надо будет посмотреть...
тока закончу исправлять мелкие косячки...
---------- Post added at 05:18 ---------- Previous post was at 05:00 ----------
посмотрел! Меня сразу заинтересовала прога зх-бмп!!! Как ей пользоваться? а то я потыкался и не сообразил((
---------- Post added at 05:23 ---------- Previous post was at 05:18 ----------
Сапер приколол! Когда я делал, то не стал заморачиваться по поводу открытия пустыз полей... а графика симпотная! Это все удг?
---------- Post added at 05:26 ---------- Previous post was at 05:23 ----------
Спрйт-генератор на мой взгляд не очень удобен... я как-то не привык цыфрами управлять... и не нашел настроек...
---------- Post added at 05:28 ---------- Previous post was at 05:26 ----------
Давай на "ты", а то чувствую себя каким-то стариком))
null_device
03.03.2010, 09:51
Ну, что ж, начнем сконца..
* Давай на ты, я не против! :)
* Мой спрайт генератор заточен под синклаир (клавиши задаются переменной f$ в 10 строке). Любаю другая клавиша, не указанная в пременной, вызов меню. Спрайты активируются кликом в области спрайта (либо их нормального отображения).
* Если вы имеете ввиду сапера - да вся графика выводится посредством динамического переключения текущего фонта udg (в червах сделана точно также). Кстати, фоновая картинка с моей "мордой лица" сделана ч\б видеоглазком с помощью хитрой мульки - видеосканера (платка такая интересная)!
* zx bmp, учитывая накладываемые программой ограничения перевода bmp=>scr, на мой взгляд не совсем удобен. Для конверсии графики с рс больше подходит Jpeg/Gif Laboratory v1.6 by SAM style (http://trd.speccy.cz/system/GFXCON16.ZIP). Или Jpeg Viewer v0.42 by Alien Factory, remake by Alone Coder (http://trd.speccy.cz/system/JPEG042.ZIP), доработка Jpeg v0.1. Под эмулем нужен Spectrum Navigator v1.14 by RomanRoms (http://trd.speccy.cz/pcutilz/SN_114.ZIP) для таскания файлов в образ эмулятора, т.к. обе программы расчитаны на работу с реальными ms-dos дискетами или tr-dos (если там есть файлы *.jpg). Или вам нужен именно *.bmp?
----
Добавил рабочий сорец выложенного выше сапера, на бейсике. Fix - basic only.
----
Кой-каких картинок накопал.. смотреть в моем альбоме. ;)
Andrey Vladimirovich
03.03.2010, 15:43
В смысле текущим переключением фонта удг?? это фактически отрсовываешь все одним и тем же символом(например А), просто постоянно меняешь его?
А с перегонкой картинок я уже разобрался. Полазал здесь на форуме и скачал нужную прогу)
null_device
03.03.2010, 15:57
Допустим, нам нужно вывести спрайт с адреса n. Вычисляем данные для записи командой let a=int (n/256): let b=n-(a*256) или randomize usr n, что проще. Далее, тривиально poke 23675,a: poke 23676,b или poke 23675,peek 23670: poke 23676,peek 23671, для второго варианта. После этого в графическом режиме символ A будет отображать спрайт с адреса n. Для точечного вычисления использовалась конструкция randomize usr gr+n*8, где gr либо переменная, либо число (адрес начала спрайт массива), n номер спрайта в массиве.
Псевдографикой " в лоб" можно отрисовать 21 символ (или на 2 меньше в 128 бейсике), что зачастую - маловато будет. Вот поэтому такие телодвижения с переключением фонтов.
Andrey Vladimirovich
03.03.2010, 16:02
Кстати, когда я делал сапера, то расчеты всего поля у меня занимали около секнды! Я изначально задавал расположение бомб, а расчет количества бомб вокруг открытой точки делал в момент открытия этой точки. таким образом можно было варьировать и размер поля, и кол-во бомб не умеличивая время загрузки!:v2_finge:
---------- Post added at 16:02 ---------- Previous post was at 15:59 ----------
Допустим, нам нужно вывести спрайт с адреса n. Вычисляем данные для записи командой let a=int (n/256): let b=n-(a*256) или randomize usr n, что проще. Далее, тривиально poke 23675,a: poke 23676,b или poke 23675,peek 23670: poke 23676,peek 23671, для второго варианта. После этого в графическом режиме символ A будет отображать спрайт с адреса n. Для точечного вычисления использовалась конструкция randomize usr gr+n*8, где gr либо переменная, либо число (адрес начала спрайт массива), n номер спрайта в массиве.
Псевдографикой " в лоб" можно отрисовать 21 символ (или на 2 меньше в 128 бейсике), что зачастую - маловато будет. Вот поэтому такие телодвижения с переключением фонтов.
Ну да! Все логично и просто!!))
null_device
03.03.2010, 16:07
Первоначальный вариант у меня был реализован подобным образом. Т.е. отрисовка цифр и занесение значений в массив производились в момент открывания поля. Т.о. открываемая клетка сканировала соседние на предмет бомб.. Но, че-то накосячил с алгоритмом, потому и остановился на более простом, хоть и медленном варианте. Короче сделал все по-комсомольски - стоя и в гамаке! :v2_wacko:
----
С каждой найденной игрой написанной в последние годы, укрепляюсь в мысли, что окошки, мой фетиш!:v2_scare: Отрыл максита (калька open-it) - окна! Отрыл заготовки следующего сапера там, вобще окнища (шапка вверху выводится шрифтом два знакоместа по вертикали)!:v2_blink: Буду осваивать другой вид стартового меню..:v2_crazy:
А чего такие телодвижения с удг графикой
можно использовать DEF FN и небольшую подпрограмму в кодах для
пропечатки спрайтов
статья на тему была в ZX РЕВЮ от Вадима Бодрова
null_device
04.03.2010, 12:07
А, фиг знает, почему? Процедуры печати с передачей параметров через DEF FN я видел (даже в 2х-3х) бумажных изданиях, не говоря о ЭСМИ. На, тот период мне эта процедура, видимо была не особо нужна.
Andrey Vladimirovich
05.03.2010, 05:12
а я че-то про DEF FN ваще ничего не знаю... это что такое?
null_device
05.03.2010, 06:38
def fn - функция определяемая пользователем через которую можно передавать параметры для подпрограммы в кодах. Почитать по теме: Динамическая графика - Инфорком'95. (http://trd.speccy.cz/book/DINGRAF.ZIP).
Вот здесь находится тот самый журнал о котором я говорю. смотри раздел - читатель читателю
Если надо его можно приспособить к текущим нуждам
Сейчас держу перед собой бумажную версию этого журнала. Припоминаю, почему не стал пользоваться - не нашел компилятора понимающего def fn, а разбираться тогда было в лом.. Кстати, описатели спрайтов чем-то напоминают вывод спрайтов в laser basic.
Вот здесь (http://trd.speccy.cz/book/REVU95_4.ZIP) находится тот самый журнал о котором я говорю. смотри раздел - читатель читателю
Если надо его можно приспособить к текущим нуждам
null_device
15.03.2010, 10:29
Andrey Vladimirovich, как там поживает игра?! ;)
----
Че-то, давно никаких вестей.. у самого, правда на днях интернет "скукоржился" - проблемы, у провайдера, какие-то (обкатка нового оборудования).
.................
Попались старые кассеты со своими "поделками", обнаружил т.с.з. эксклюзив - "облагороженную" графикой и прочими прелестями, по сравнению с оригиналом игру написанную по мотивам листинга найди берлогу медведя из книжки "бейсик - это просто". Поскольку местонахождение рабочей "собранной" версии сейчас не установить, а исходники раскиданы по кассете, как птичий помет по крыше, буду копать дальше (поскольку имел поганую привычку разносить файлы на несколько кассет). Пока нашел две трети - где остальное, для меня загадка (заготовки датированы 98 годом). Поиск продалжается! :)
def fn - функция определяемая пользователем через которую можно передавать параметры для подпрограммы в кодах. Почитать по теме: Динамическая графика - Инфорком'95. (http://trd.speccy.cz/book/DINGRAF.ZIP).
Сейчас держу перед собой бумажную версию этого журнала. Припоминаю, почему не стал пользоваться - не нашел компилятора понимающего def fn, а разбираться тогда было в лом.. Кстати, описатели спрайтов чем-то напоминают вывод спрайтов в laser basic.
Скорее всего и не найдешь такой
я к тому что не обязательно компилить если можно ускорить сам процесс
а fp-compiler не понимает USR
null_device
15.03.2010, 11:45
Скорее всего и не найдешь такой
я к тому что не обязательно компилить если можно ускорить сам процесс
а fp-compiler не понимает USR
Об эту проблему я и споткнулся тогда.. :(
Сейчас, наверное в дебагере анреала в с нуля бы накропал любую из своих программ раз..
Ничуть не сомневаюсь :)
а где собственно Топик стартер?
чо там как там?
а где собственно Топик стартер?
чо там как там?
Пропал. Хотя нет, вот тут (http://www.zx.pk.ru/showthread.php?t=10964&page=7) проявился. :)
null_device
15.03.2010, 13:43
Хотя нет, вот тут проявился.
Сам, увидел вот тут, и захотел узнать - как продвигается игра?! :)
Andrey Vladimirovich
18.03.2010, 00:04
Всем привет! у меня нэт не работает, так что от друзей захожу(((
Обновил игру досканально! Теперь всё НА РУССКОМ!!!))
плюс стал более удобным интерфейс и чуть изменен дизайн;)
Уровней теперь 25! Офрмлена концовка игры при прохождении!
Значительно усовершенствован и редактор! Короче, теперь все круто!:v2_yahoo:
null_device
18.03.2010, 15:16
Ну, вот! Совсем другое дело..
----
Вполне на уровне, но ведь это не последнее обновление? Дальнейшая работа над игрой предвидится?! Компиляция, допустим..
Andrey Vladimirovich
21.03.2010, 07:32
Ну если честно, то не планировал. Даже скорее не потому, что влом, а потому, что не знаю компиляторов, поддерживающих работу с диском:(
А вообще есть ещё пара мыслей по усовершенствованию... в том числе добавить несколько объектов на самой карте, которые можно использовать... И хотелось бы усзнать общественное мнение, чего ещё можно было бы добавить.
Но помимо этого проэкта хочу взяться за ещё один и сварганить что-нибудь наподобие героев... но тут без посторонней помощи, как мне кажется, не обойтись.
null_device
21.03.2010, 08:11
не знаю компиляторов, поддерживающих работу с диском
А их и нету - компиляторов понимающих команды типа randomize usrt 15619 (16): rem: .. Из компяляторов советую целочисленный MCodeer 2.5. после компиляции не требует присутствия самого компилятора в памяти и возможность компиляции прямо с диска в память (смотреть в ветке ZX COMPILER (http://zx.pk.ru/showthread.php?t=11660&highlight=COMPILER)).
Учите ассемблер (наиболее универсальный вариант), либо опишите, каким вы видите загрузчик (ну, требования к нему: объем, расположение в памяти и т.п.), а я наваяю драйвер дисковых операций в коде.
сварганить что-нибудь наподобие героев
Опять же нужно описание, как вы это видите на спектруме. На голом бейсике слишком сложные и динамичные игрушки написать в принципе невозможно. Хотя, кто знает..
Andrey Vladimirovich
30.03.2010, 20:53
Даже вот как поступлю: сначала сделаю в delphi, а там если все будет окей, подумаю как перевести на спекки. вот. Но по предварительным подсчетам на это потребуется не меньше 2х месяцев...
Но по предварительным подсчетам на это потребуется не меньше 2х месяцев...
:v2_jawdr:
сначала сделаю в delphi,
не меньше 2х месяцев...
А не лет? :v2_lol:
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot