Здравствуйте! Продолжим изучение Blitz 3D. В этом уроке я научу вас создавать простейший искусственный интеллект.
Искусственный интеллект это не ум, а обыкновенный команды, которые будет выполнять персонаж.
dist# = EntityDistance ( bot, cub )
If dist > 2 - вычисляет расстояние между двумя объектами.
TurnEntity bot,0,Sgn(DeltaYaw(bot,cub))*0.9,0 – команда вращает объект в сторону другого объекта по оси Y. Где у нас *0.9,0 это скорость вращения.
MoveEntity bot,0,0,0.03 – двигает бота со скорости 0.3 вперёд (можно изменить).
If EntityCollided (bot,Typestolb) –столкновение бота с колонной.
TurnEntity bot,0,5,0 – бот поворачивает на право.
EndIf– конец цикла
Это мы сделали самый простой способ искусственного интеллекта. Если вы уже проделали всё о чём я писал в 1 уроке, то у вас должна получиться такая игра:
Code
Graphics3D 640,480,16,1
SetBuffer BackBuffer()
Const TypeCub=1,TypeStolb=2
lit=CreateLight()
cub=CreateCube()
EntityColor cub,0,255,0
EntityType cub,TypeCub
cam=CreateCamera(cub)
stolb=CreateCube()
ScaleEntity stolb,1,4,1
PositionEntity stolb,-7,0,7
EntityType stolb,TypeStolb
stolb2=CreateCube()
ScaleEntity stolb2,1,4,1
PositionEntity stolb2,7,0,7
EntityType stolb2,TypeStolb
EntityRadius cub,2
bot=CreateCube()
ScaleEntity bot,1,0.5,2
bot1=CreateCube(bot)
ScaleEntity bot1,0.7,0.8,0.3
PositionEntity bot1,0,1.5,0.4
EntityType bot,TypeCub
EntityRadius bot,2
plan=CreatePlane()
EntityColor plan,0,0,255
PositionEntity plan,0,-1,5
PositionEntity cam,0,3,-5
Collisions TypeCub,TypeStolb,2,3
Collisions TypeCub,Typecub,2,3
Repeat
dist# = EntityDistance ( bot, cub )
If dist > 2
TurnEntity bot,0,Sgn(DeltaYaw(bot,cub))*0.9,0
MoveEntity bot,0,0,0.03
EndIf
If EntityCollided (bot,Typestolb)
TurnEntity bot,0,5,0
EndIf
If KeyDown(200) MoveEntity cub,0,0,.1
If KeyDown(208) MoveEntity cub,0,0,-.1
If KeyDown(203) TurnEntity cub,0,1,0
If KeyDown(205) TurnEntity cub,0,-1,0
UpdateWorld
RenderWorld
Flip
Until KeyHit(1)
End
Появление Здоровья. Во многих играх здоровье(жизни) очень важная деталь.
zdorov=100 – это переменная. Пишем любое имя, в данный момент у нас Zdorov и вписываем, сколько должно быть здоровья, у нас 100.
Global fntArial – Глобальная переменная
fntArial=LoadFont("Arial Cry",24,False,False,False) – Это команда изменяет текст: “Arial Cry” это шрифт текста, где 24 это размер шрифта, где False если изменить на True, первая будет жирный цвет, вторая курсивом, третья подчёркнутый текст.
И так теперь нам нужно вывести на экран сколько у нас здоровья
Text 280,47,"Health="+zdorov – Выводим на экран текст, где цифры это место положение текста, в кавычках это слово или фраза которая будет показана на экране, в данный момент у нас сейчас слово Health- переводится как здоровье. Где +zdorov, это наша переменная, которая будет показывать сколько в данный момент сейчас здоровья.
If EntityCollided (cub,Typecub) zdorov=zdorov-1 – проверяем на столкновение куба с ботом, если столкновение происходит то отнимает один процент здоровья zdorov=zdorov-1 И так, если здоровье достигает меньше нуля то отщёт идёт на минус но нам это не надо то мы делаем так:
If zorov=zdorov<1 – если здоровье меньше одного
Else - то
End – закрываем программу, выход.
EndIf
Как вы догадались можно не только так использовать здоровье но и кол-во брони кол-во патронов и т.д
Теперь вы знаете, что создание игр на Blitz 3D –это не очень сложно, главное понимать, что и зачем делаешь. Если будет время, напишу ещё уроки.