Подскажите, пожалуйста, как сделать так, чтобы игра возвращалась на нулевой экран, после геймовера или прохождения. А то выкидывает в бейсик.
Подскажите, пожалуйста, как сделать так, чтобы игра возвращалась на нулевой экран, после геймовера или прохождения. А то выкидывает в бейсик.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Последний раз редактировалось kas29; 11.03.2015 в 22:02.
Своя копилка..
ZX-Evo (rev. B); Aspect 128 AVR Spectrum; ZX Spectrum +2
Сайт https://newgamezx.jimdofree.com/
__________________________________________________ ___________________
Если безобразие нельзя предотвратить - его нужно возглавить!
Нет не по ENDGAME. Так получается когда либо заканчиваешь игру (я так понимаю обработчик Complete Game), либо происходит геймовер (обработчик Kill). Попробовал ваш код, видно, что CLS срабатывает, а вот рестарт почему-то нет.
Update:
С этим разобрался, спасибо за помощь. Я забыл дописать код с восстановлением количества жизней. Вернее подумал, что рестарт как-то должен запускать Game Initialisation, оказалось, что нет.
Теперь возникла пара других проблем:
1. Как обнулить счетчик очков score? После геймовера и рестарта он остается с прежним значением.
2. После прохождения игры не сбрасывает обратно на старт. В обработчике Complete game тот же код, что в kill не работает. Так и должно быть? Одно решение на уме есть (по взятию нужного объекта вставить restart, а не endgame, который вызывает complete game), но это как-то нелогично. Хотелось бы, чтобы победный экран был там, где следует, а потом игра начиналась заново.
Последний раз редактировалось helcril; 12.03.2015 в 04:47.
Какая версия агд?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 не работает.
Последний раз редактировалось kas29; 12.03.2015 в 09:10.
Своя копилка..
ZX-Evo (rev. B); Aspect 128 AVR Spectrum; ZX Spectrum +2
Сайт https://newgamezx.jimdofree.com/
__________________________________________________ ___________________
Если безобразие нельзя предотвратить - его нужно возглавить!
Версия агд 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; 12.03.2015 в 13:52.
helcril, вот один из вариантов перехода на первый экран.. + сброс очков(SCORE)Вот код
сброс SCORE работает в AGD 4.5 и 4.6 версии..(в AGD 3.x это не работает)
Последний раз редактировалось kas29; 12.03.2015 в 17:59.
Своя копилка..
ZX-Evo (rev. B); Aspect 128 AVR Spectrum; ZX Spectrum +2
Сайт https://newgamezx.jimdofree.com/
__________________________________________________ ___________________
Если безобразие нельзя предотвратить - его нужно возглавить!
Своя копилка..
ZX-Evo (rev. B); Aspect 128 AVR Spectrum; ZX Spectrum +2
Сайт https://newgamezx.jimdofree.com/
__________________________________________________ ___________________
Если безобразие нельзя предотвратить - его нужно возглавить!
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)