Апокалипсис 2 игра от Taunco
я доделал до конца апокалипсис и теперь хочу создать игру покруче!
помогите мне пожалуйста создать игру жанра Roguelike . Я вас очень прошу о помощи… В серафиме код совсем непонятный так что списать не удалось.
например? хочу сделать так:
### .@#
###
чё писать в коде и как задать движение игроку (@)?
Тебе нужно разделить задачи. Должно быть как минимум две программы - одна генерирующая уровень, т.е. вписывающая объекты в координатную сетку. Вторая - выводящая объекты в зависимости от того, в каких координатах находится игрок. Генерировать уровень целиком намного эффективнее, поскольку это позволяет помещать на уровне движущиеся объекты. Ещё эффективнее создавать уровни из уже готовых блоков. Например таких:
Spoiler
-----
.....
.....
.....
-----
|...|
|...|
|...|
|...|
|...|
----|
....|
....|
....|
|...|
Это куски коридора, складываются и получается:
Spoiler
---------|
.........|
.........|
.........|
-----|...|
|...|
|...|
|...|
|...|
|...|
Можно конечно генерировать уровень на лету, но мне кажется это сложнее.
С выводом всё намного проще. Если ты знаешь, в каких координатах находится герой (X,Y), на экран выводятся символы, например от X-3 до X+3 и Y-3 до Y+3.
а чё в коде? вот проблема! и чё за $object[<<x>><<y>>] ?
Допустим окружение сгенерировано и находится в массиве $level[’<<X>>,<<Y>>’]. Тогда подпрограмма для вывода будет примерно такой.
Spoiler
killvar '$print'
j=y-3
:fory
if j<y+4:
i=x-3
:forx
if i<x+4:
$print+=$level['<<i>>,<<j>>']
i+=1
jump 'forx'
end
j+=1
if j<y+3: $print+='<br>'
jump 'fory'
end
*pl $print
Какой ещё $objects? Где это было?
Положение героя, допустим, хранится в $hero[’X’] и $hero[’Y’]. В предыдущий код достаточно добавить условие, которое будет проверять находится ли герой в указанных координатах и выводить его символ или символ окружения в зависимости от результатов условия.
Добавлено: В коде наврал. Там должен быть перевод строки, щас добавлю.