Вход

Просмотр полной версии : Evacuator - help thread.



Rindex
04.02.2010, 21:04
Вот, требуется помочь человеку с новой игрой.


Андрей Владимирович
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
А на сайте я зарегистрируюсь. и создай тему там все обсудим.


Вообщем, ещё и во вложении игру записал.

Rindex
05.02.2010, 08:49
Андрей Владимирович
сегодня в 8:10

Успел пока доработать демку)) а то, наверное мало кто сразу врубится, что надо делать... а так все просто и наглядно

Эта версия чуть ниже.

Shadow Maker
05.02.2010, 09:52
Медленно уж больно рисует уровень. И больно долго дыньдыньдынь идёт. 5 уровней прошел.

null_device
05.02.2010, 09:58
Задумка интересная.. Хочется узнать, в чем нужен хелп и будет ли игра переведена с бейсика на что-нибудь более быстродействующее? Допустим, если компильнуть MCoder'ом (от Евдокимова) получится довольно быстро. Правда код игры придется переработать - в этом могу помочь.. Сам кучу лабиринтов-искалок-собиралок на бейсике в начале слепил. :)


Давайте дождёмся автора.

Давайте! Ждем у барака.. Во вконтакте лезть не хочется - ибо не нравятся мне соц сети. Точнее, некоторые персонажи, там обитающие.

Rindex
05.02.2010, 10:13
Медленно уж больно рисует уровень.

Так там вроде всё на бейсике. Надо-бы до ума всё доделать и музыку вставить. Пока человек зарегистрироваться не может. Точнее вроде написАть. Ну это день, я ему так и сказал.

---------- 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 ----------


Давайте! Ждем у барака.. Во вконтакте лезть не хочется - ибо не нравятся мне соц сети.

Да я вот туда специально и полез, чтобы нормальных людей оттуда вытаскивать, всё равно там всё пропадёт в небытие. Но есть там и кадры похлеще Клона. :)

Ewgeny7
07.02.2010, 21:37
Медленно уж больно рисует уровень.
Ага. Отрисовку уровней в разы быстрей можно делать на бейсике (даже прямым считыванием данных из памяти).
Я когда-то сваял на Бейсике сапера, карта генерировалась, затем рисовалась. Достаточно быстро было.

rasmer
07.02.2010, 21:53
имхо ТАКОЕ на бусике писать - медленнее чем на асме...

Ewgeny7
08.02.2010, 13:14
Автор зарегился, ждет допуска от Станислава. И я этого аффтара знаю...

Rindex
08.02.2010, 13:25
Автор зарегился, ждет допуска от Станислава. И я этого аффтара знаю...

Да он давно уже ждёт... Что-то не выходит...


Андрей Владимирович
вчера в 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 ----------

И хотелось бы знать всеобщее мнение, как сама игра? Интересная или нет? Стоит ли её, вообще, дорабатывать?

Rindex
09.02.2010, 10:39
И хотелось бы знать всеобщее мнение, как сама игра? Интересная или нет?

Интересная и оригинальная.


Стоит ли её, вообще, дорабатывать?

Естественно!!!

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 вторые прерывания и работа с ними разжевана, по-моему, проще некуда!


А кто-нить готов помочь мне с рисованием новых уровней?

Готов!! Хотя, движения по диагонали ИМХО, не есть хорошо (сильно утяжеляют и усложняют игру).


..как сама игра? Интересная или нет? Стоит ли её, вообще, дорабатывать..

Определенно интересная! Осталось довести до ума, только (придать более законченный вид, что ли).

Rindex
10.02.2010, 16:22
Хотя, движения по диагонали ИМХО, не есть хорошо (сильно утяжеляют и усложняют игру).

Наоборот интереснее.

null_device
10.02.2010, 16:47
Возможно - интересно, смотрится, правда, дико! Странно, выглядит попытка протиснуться между углами двух блоков стоящих впритык (немного нелогично, если хотите).
----
Нет, я не говорю, что это плохо. Просто в играх такого типа ни разу не встречал подобного подхода к логике передвижения. sokoban, bolder dash, ripton и аналогичные игрушки в некотором роде не использовали таких способов перемещения. Впрочем, это решать автору проекта..

Rindex
10.02.2010, 16:49
Странно, выглядит попытка протиснуться между углами двух блоков стоящих впритык (немного нелогично, если хотите).

Согласен. Но такого я вроде что-то больше нигде не встречал.

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.
....
Обнаружил косяк, исправил, перезалил..

TomCaT
11.02.2010, 22:18
Эх, надо бы мне выделить в отдельную 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
Например, режим с автоматическим показом хода игры на спец. демо уровне (или любом другом). Запускающийся при долгом бездествии в меню. Чтобы было понятно, как играть!
----
Отрисовка уровня - пауза - следующий уровень. Хотя, нет: вторая идея дрянь!

Rindex
20.02.2010, 20:29
Например, режим с автоматическим показом хода игры на спец. демо уровне (или любом другом). Запускающийся при долгом бездествии в меню. Чтобы было понятно, как играть!

А не проще клавишу "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:

Rindex
02.03.2010, 20:59
а в каком редакторе можно музыку сделать?

Лучшие из них 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:

jerri
04.03.2010, 09:37
А чего такие телодвижения с удг графикой
можно использовать 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.

jerri
05.03.2010, 08:22
Вот здесь (http://trd.speccy.cz/book/REVU95_4.ZIP) находится тот самый журнал о котором я говорю. смотри раздел - читатель читателю

Если надо его можно приспособить к текущим нуждам

null_device
15.03.2010, 10:29
Andrey Vladimirovich, как там поживает игра?! ;)
----
Че-то, давно никаких вестей.. у самого, правда на днях интернет "скукоржился" - проблемы, у провайдера, какие-то (обкатка нового оборудования).
.................
Попались старые кассеты со своими "поделками", обнаружил т.с.з. эксклюзив - "облагороженную" графикой и прочими прелестями, по сравнению с оригиналом игру написанную по мотивам листинга найди берлогу медведя из книжки "бейсик - это просто". Поскольку местонахождение рабочей "собранной" версии сейчас не установить, а исходники раскиданы по кассете, как птичий помет по крыше, буду копать дальше (поскольку имел поганую привычку разносить файлы на несколько кассет). Пока нашел две трети - где остальное, для меня загадка (заготовки датированы 98 годом). Поиск продалжается! :)

jerri
15.03.2010, 11:15
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

Об эту проблему я и споткнулся тогда.. :(
Сейчас, наверное в дебагере анреала в с нуля бы накропал любую из своих программ раз..

jerri
15.03.2010, 13:28
Ничуть не сомневаюсь :)
а где собственно Топик стартер?
чо там как там?

Rindex
15.03.2010, 13:33
а где собственно Топик стартер?
чо там как там?

Пропал. Хотя нет, вот тут (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х месяцев...

Rindex
31.03.2010, 11:15
Но по предварительным подсчетам на это потребуется не меньше 2х месяцев...

:v2_jawdr:

Ewgeny7
31.03.2010, 21:36
сначала сделаю в delphi,

не меньше 2х месяцев...
А не лет? :v2_lol: