Подскажите, пожалуйста, как сделать так, чтобы игра возвращалась на нулевой экран, после геймовера или прохождения. А то выкидывает в бейсик.
Вид для печати
Подскажите, пожалуйста, как сделать так, чтобы игра возвращалась на нулевой экран, после геймовера или прохождения. А то выкидывает в бейсик.
Нет не по ENDGAME. Так получается когда либо заканчиваешь игру (я так понимаю обработчик Complete Game), либо происходит геймовер (обработчик Kill). Попробовал ваш код, видно, что CLS срабатывает, а вот рестарт почему-то нет.
Update:
С этим разобрался, спасибо за помощь. Я забыл дописать код с восстановлением количества жизней. Вернее подумал, что рестарт как-то должен запускать Game Initialisation, оказалось, что нет.
Теперь возникла пара других проблем:
1. Как обнулить счетчик очков score? После геймовера и рестарта он остается с прежним значением.
2. После прохождения игры не сбрасывает обратно на старт. В обработчике Complete game тот же код, что в kill не работает. Так и должно быть? Одно решение на уме есть (по взятию нужного объекта вставить restart, а не endgame, который вызывает complete game), но это как-то нелогично. Хотелось бы, чтобы победный экран был там, где следует, а потом игра начиналась заново.
Какая версия агд?Цитата:
1. Как обнулить счетчик очков score? После геймовера и рестарта он остается с прежним значением.
Была у меня такя необходимость.. в зайце.. (версия агд 4.5)
С этим дела такие.. Команды сброса очков в агд нет, но можно поступить так.
Сразу скажу что это может убить всю работу! Так что лучше сделать сохранение!
Итак, допустим жизни кончились и происходит рестарт всей игры и соответственно сброс очков(SCORE)
В обработчике Kill player пишем следующее:
SUBTRACT 1 FROM LIVES
IF LIVES = 0
ASM 33
ASM 149
ASM 134
ASM 6
ASM 6
ASM 54
ASM 48
ASM 35
ASM 16
ASM 251
CLS
LET LIVES = 5 ... далее своё.
...
endif
Так сразу и не сказать.. нужно посмотреть на этот код..Цитата:
2. После прохождения игры не сбрасывает обратно на старт. В обработчике Complete game тот же код, что в kill не работает.
Версия агд 3.5. Но сейчас, т.к. сделал всего 4 экрана переношу в 4.6.
Вот код Kill:
SOUND 1
LET LINE=21
LET COLUMN=8
DISPLAY LIVES
IF LIVES=1
LET LINE=10
LET COLUMN=12
COLOUR 84
MESSAGE 0
WAITKEY
LET LIVES=8
LET SCREEN=0
COLOUR 71
BORDER 0
CLS
RESTART
ENDIF
Код Completed game:
LET LINE=10
LET COLUMN=8
MESSAGE 3
LET LINE=14
LET COLUMN=8
MESSAGE 2
LET LINE=14
LET COLUMN=18
SHOWSCORE
WAITKEY
LET LIVES=8
LET SCREEN=0
COLOUR 71
BORDER 0
CLS
RESTART
---------- Post added at 20:41 ---------- Previous post was at 18:47 ----------
Кстати спрошу здесь, наверное. Будет ли кому-либо интересен перевод текста How to Write Spectrum Games от Jonathan Cauldwell, автора AGD?
helcril, вот один из вариантов перехода на первый экран.. + сброс очков(SCORE)Цитата:
Вот код
сброс SCORE работает в AGD 4.5 и 4.6 версии..(в AGD 3.x это не работает)
Создал тему в разделе Пресса с переводом How to Write ZX Spectrum Games:
http://zx-pk.ru/showthread.php?p=788166#post788166
народ - залейте ктонить 4.6 версию...
rasmer, она залита..
http://zx-pk.ru/showpost.php?p=742799&postcount=119
Paul Jenkinson добавил ещё парочку расширенных видеоуроков по AGD.
http://www.youtube.com/watch?v=p3VbsYtb59w
http://www.youtube.com/watch?v=F_ol0LF3xKw
Перенёс мануалы и последнюю версию AGD в первый пост.
А тр-дос версия существует?
Снапшоты примеров по AGD из газеты Za Rulem.
Кодовый замок.
8 направлений.
в голове все отчетливей начинает вырисовываться игра...
В каком жанре?
- - - Добавлено - - -
Кстати. Вон, у Buddy уже сценарий игры готов. Большая часть графики прорисована..:v2_dizzy_pirate:
Эх, хорошая бы получилась игра, но пока увы.. Думаю в агд(по ряду причин) проблематично её будет сделать.. :v2_conf2:
Но, такую игру нужно реализовывать! Создавай Bud тему по своей игре! А? ;)
Мож кто на помощь и подтянется...
Пример использования блока с типом water:
- - - Добавлено - - -
На всякий случай для тех, кто что-то будет творить в AGD..)
В процессе пользования AGD версии 4.6, могут, встречаются неожиданные неприятности. Будьте внимательны!
Выбрав режим – PARTICLES и создав полный игровой экран, имейте ввиду - не будет воспроизводиться взрыв командой EXPLODE.
После того, как вы создали более десятка текстовых сообщений. Будьте осторожны при их редактировании. Программа может тупо вылетать, или затирать соседние сообщения и отображать всякий мусор. Если есть такое, лучше создать новое сообщение. (Делайте чаще сохранения перед редактированием)
Редакция спрайтов. Касается редакции начального спрайта!
Создав несколько спрайтов, вы решили отредактировать самый первый спрайт. После входа в спрайтовый редактор, необходимо пролистать спрайты по порядку и только потом редактировать. Иначе будут различные печальные последствия.
Если программа уже достаточно объемна, не стоит переключать режимы в разделе Specialise. Так же не стоит менять размер спрайта в разделе Sprite height.
Есть вероятность зависания AGD или просто произвольного сброса.
В процессе редактирования событий, при малом количестве памяти. Открыв необходимый Sprite type или другое и внеся какое-то изменение, дополнив событие. Вы можете не попасть обратно в это событие, так как памяти просто не будет и программа не успеет вас предупредить об этом.
Так что равномерно распределяйте скрипт среди типов и обработчиков.
Помните! Не всегда из тестового режима можно выйти, если какой-нибудь цикл составлен не верно.
Вы сохранили конечную игру и захотели её загрузить обратно в редактор. Врятли это удастся сделать в версии AGD 4.6
В последней версии AGD, при малом количестве свободного места в игре вы не загрузите в редактор финальную игру– AGD будет выдавать ошибку. (это видимо баг)
Есть альтернативный метод. Попытайтесь загрузить игру в версию AGD 4.3., но помните, если вы меняли шрифт или еще чего, тогда этого не будет в AGD4.3. Шрифт будет стандартный (по умолчанию)
Вот, такие моменты.
Если чего вспомню ещё, буду дополнять…)
Ребят. Выкладываю некоторые AGD - Snapshots (Mystery, STARS(Gumi), DARK CASTLE) игр. Если вдруг кому интересно, смотрите.)
Только придется пожертвовать некоторым удалением(экранов, спрайтов и тд), чтобы открыть основные события, так как памяти почти совсем не остается..
Вложение 57363
в редакторе кстати есть неприятный глюк связанный с опросом кемпстона,
по-дефолту считается что в трёх неиспользуемых битах порта нули, а на самом деле есть контроллеры которые эти биты вообще не-используют и там может быть что угодно. редактор подвязывает на один из этих битов например кнопку `пауза` и как результат она может непредсказуемо срабатывать.
In kempston joystick routine is small bug. Game use this code:
LD BC,#001F (3 bytes)
IN A,(C) (2 bytes)
LD E,A .... (1 byte)
After IN A,(C) must be instruction AND #1F because on data pins D5-D7 can be floating values thanks to old design of original kempston joystick interfaces which use only data line D0-D4. If software read joystick port after interrupt (border time) then on D5-D7 will stable log.1. If software read joystick later (in screen time/contended ula time) then on D5-D7 can be "random" values. This game set and test other bits of register E for next functions (D5 = pause) and with original kempston joystick interface this game will unplayable, because D5 of joystick port = log.1 then D5 of register E = log.1 then game pause is stable set. Fix is easy, add instruction AND #1F after IN A,(C) or replace joystick routine with this version:
XOR A (1 byte)
IN A,(#1F) (2 bytes)
AND #1F (2 bytes)
LD E,A... (1 byte)
Для того, чтобы в играх играла биперная композиция(и не только), делаем следующие действия:
1. ADDR / A = B
2. A * B = C
3. ADDR - C = D
A = 256
Получаем следующее:
ASM 205 (всегда первое)
ASM D
ASM B
Теперь на примере:
Допустим, мелодия должна находиться по адресу 60000.
A - всегда = 256!
1. 60000 / 256 = 234,......
2. 256 * 234 = 59904
3. 60000 - 59904 = 96
Получаем:
ASM 205
ASM 96
ASM 234
Полученное записываем в необходимое событие. Таким же образом, прикручиваются beepfx.
Появился вот такой вот калькулятор для AGD.
Про бейсик я и не подумал...
А как музыку внедрить в тело игры?
Как это все делается?
Если она в отдельном файле для AY?
да, музыка естественно отдельно от игры.
и конечно надо знать расклад по свободной памяти.
редактор позволяет делать вызовы пользовательских подпрограмм
(и это не обязательно музыка/эффекты)
Goodboy, можно в скайпе пообщаться по этой теме?
нет у меня оборудования для скайпа и летом я в городе (за компом) буквально наездами.
Не знаю, как кто делает. Я делаю так.(Хотя бывает и по другому)Цитата:
Можно ли создать урок по вставке музыки в игру, касательно AGD?
С пошаговым описанием и скриншотами?
На примере игры Angry Birds.
Все действия делаю после того, как игра написана на 90%, чтобы можно было воткнуть ASM(ки)
1.Пишу биперную музыку в Beepolе.
http://zx-pk.ru/asset.php?fid=57516&...2&d=1470828037
2 Скидываю из AGD игру на ленту.
http://zx-pk.ru/asset.php?fid=57517&...2&d=1470828138
3 Запускаю игру.
4 Открываю Debugger. Смотрю свободное место, куда воткнуть мелодию. (Например - 63945, длина 280 байт)
http://zx-pk.ru/attachment.php?attac...&thumb=1&stc=1
5 Сохраняю биперную мелодию из Beepola по этому адресу.
6 Рассчитываю адрес запуска из AGD
7 Прописываю ASM(ки) в те события, куда мне нужно. В частности - Sprite type 8. Там условия и действия для первого экрана и запуск музыки.
http://zx-pk.ru/attachment.php?attac...&thumb=1&stc=1
8 Создаю загрузчик и собираю всё в кучу. Биперную музыку прописываю по адресу 63945,280
http://zx-pk.ru/attachment.php?attac...&thumb=1&stc=1
Собственно наверно и всё.
ВАЖНО! Если ASM в проекте рассчитаны и поставлены - тестировать игру нельзя!
Давайте вместе разберем учебную ситуацию.
Допустим, есть необходимость добавить к игре "Nadral" фоновый музыкальный трек (java.pt3).
Загрузил игру Надрал в АГД. Внутри АГД зашел в меню "Разное", там внизу нужные цифры для калькулятора.
https://3.downloader.disk.yandex.ru/...&size=1163x797
Далее, зашел в программу АГД-тулз, и ввел эти цифры.
https://4.downloader.disk.yandex.ru/...&size=1163x797
Далее, генерируются три строки АСМ.
https://2.downloader.disk.yandex.ru/...&size=1163x797
Далее, ввожу эти три строки АСМ в игру. В гейм инициализацию.
https://1.downloader.disk.yandex.ru/...&size=1163x797
Далее, сохраняю в АГД с введенными строками АСМ на ленту
https://3.downloader.disk.yandex.ru/...&size=1163x797
Далее запускаю вортекс трекер 2, и в нем открываю файл "Ява.pt3".
Жму "Экспорт" - появляется окно для экспорта. Жму на галочкe "tap".
Далее, по-идее, надо ввести также адрес для экспорта, но я не знаю как его вычислить, ввел на своё усмотрение адрес.
https://2.downloader.disk.yandex.ru/...&size=1163x797
Теперь я застрял, и не знаю как это соединить в одно.
Файл Надрал с асм внутри.
https://yadi.sk/d/z984cg9yu7Px4
Ява.pt3 (Исходник)
https://yadi.sk/d/SdEJ4tctu7Pzz
Ява.tap (трек после экспорта в тап)
https://yadi.sk/d/NnUq4AF8u7U9Y
вот тут колдовали с AY
http://arcadegamedesigner.proboards....ckground-music