Подскажите, пожалуйста, как сделать так, чтобы игра возвращалась на нулевой экран, после геймовера или прохождения. А то выкидывает в бейсик.
Вид для печати
Подскажите, пожалуйста, как сделать так, чтобы игра возвращалась на нулевой экран, после геймовера или прохождения. А то выкидывает в бейсик.
Нет не по 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 это не работает)