помогите пожалуста зделать так чтоб монстр двигался к игроку и плювался в него кислотой. И вобще обясните пожалуйста хто может, как делать нормальное АІ.
и еще никак немогу зделать коллизию. Заранее спасибо
вот код:
Graphics3D 1024,768,32
SetBuffer FrontBuffer () Global cam,campitch#,camyaw#,mvx#,mvy#,mvz#
Global gfxCross = LoadImage("cross.bmp")
Global player=CreateSphere()
PositionEntity player,0, 0.3, 2
EntityRadius player, 1
cam=CreateCamera(player)
Collisions TypePlayer, TypeWall, 2, 3
Global Floortex=LoadTexture("GROUND.jpg")
Floor1=CreatePlane (4)
EntityAlpha Floor1,1
PositionEntity Floor1,0,-1,0
EntityTexture Floor1, floortex
;при загрузке программы
flame = CreateLight(2,drum)
PositionEntity flame,0,0,0
LightColor flame,255,150,150
LightRange flame,10
;в главном цикле:
LightRange flame,Rnd(1,20)
hoos=LoadMesh ("дом .3DS")
ScaleMesh hoos,0.018,0.018,0.018
PositionEntity hoos,0,-1,10
drum=LoadMesh("костер.3ds")
ScaleMesh drum,0.01,0.01,0.01
PositionEntity drum,0,-1,0
создание монста
gargoyle=LoadMD2( "Tris.md2" )
ScaleEntity gargoyle,0.01,0.01,0.01
; Load md2 texture
garg_tex=LoadTexture( "Skin.bmp" )
; Apply md2 texture to md2
EntityTexture gargoyle,garg_tex
AnimateMD2 gargoyle,1,0.05,20,30
pistol=LoadMesh ("цфв.3DS")
ScaleEntity pistol,0.020,0.0120,0.020
PositionEntity pistol,0.1,-0.9,1
spr = CreateSprite(drum)
PositionEntity spr,0.1,.6,0.350
ScaleSprite spr,.5,.8
anim_tex2=LoadAnimTexture("fireanim.jpg",18,128,256,0,8 )
EntityBlend spr,3
Alpha#=1
sp = CreateSprite(player)
PositionEntity sp,0,0,5
anim_tex=LoadAnimTexture("pfx_flame.bmp",14,64,64,0,4 )
EntityBlend sp,3
While Not KeyHit(1)
;Cycle through anim frame values. 100 represents Delay, 39 represents no. of anim frames
frame=MilliSecs()/40 Mod 8
EntityTexture spr,anim_tex2,frame
frame=MilliSecs()/2 Mod 4
EntityTexture sp,anim_tex,frame
If alpha#<1.0 Then alpha# = 0
If alpha#>-1 Then alpha# = -1
If MouseDown( 1 )=True And alpha#<1 Then Alpha#=Alpha#+3
EntityAlpha sp,Alpha#
V#=0.5
u#=70;предельный угол
TurnEntity cam,MouseYSpeed(),0,0
TurnEntity player,0,-MouseXSpeed(),0
If KeyDown(200) MoveEntity player, 0, 0, 0.2
If KeyDown(208) MoveEntity player, 0, 0, -0.2
If KeyDown(203) MoveEntity player, -0.2, 0, 0
If KeyDown(205) MoveEntity player, 0.2, 0, 0
If KeyDown(57) MoveEntity player, 0, 0.2, 0
If KeyDown(2) SpriteViewMode sp, 1
If KeyDown(3) SpriteViewMode sp, 2
MoveMouse GraphicsWidth()*0.5,GraphicsHeight()*0.5
If Abs(EntityPitch#(cam))>u# RotateEntity cam,u#*Sgn(EntityPitch#(cam)),0,0
MoveEntity gargoyle,PickedX() ,PickedY(),PickedZ()
PointEntity gargoyle,player
mvy=mvy-0.0
If EntityCollided(player,TypeWall)
mvy=mvy+0.0
EndIf
mvx=mvx/1.2
mvy=mvy/1.2
mvz=mvz/1.2
MoveEntity player,mvx,0,mvz
TranslateEntity player,0,mvy,0
AmbientLight 50,50,50
RenderWorld
UpdateWorld
fr = fr + 1
If MilliSecs() - frTime >= 1000
fps = fr
fr = 0
frTime = MilliSecs()
EndIf
Text 10,110,"FPS : " + fps,1
Text 10,10, "Enemies Left: "+Str( AliveEnemy )
DrawImage(gfxCross, GraphicsWidth()/2-16, GraphicsHeight()/2-16 )
Flip
Wend
End