Code archives/Algorithms/Ai
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
This is an AI script that im using in my game. | |||||
; Ai ; ------------------ ;Made By Nathanael Senn - The Black Knight ;------------------- ;Set Graphics Graphics3D 1024,768,32,1 SetBuffer BackBuffer() ; Create the timer to 60 fps frameTimer=CreateTimer(60) ;Make Player Cam camera=CreateCamera() ;Make light light=CreateLight() RotateEntity light,90,0,0 ;Set types enemy_type = 1 box_type = 2 allie_type = 3 ;Make enemy enemy=CreateSphere() EntityType enemy,enemy_type ;Make Allie allie=CreateSphere() EntityType allie,allie_Type PositionEntity allie, 130, 0, 130 ; Create cubes hun=100 Dim cube(hun) For box = 1 To 100 If x >= 100 x=10 z=z+10 EndIf x=x+10 cube(box)=CreateCube() EntityType cube(box),box_type PositionEntity cube(box),x,0,z Next ;Make ran points nine = 9 Dim ranpoint(nine) For r=1 To 9 If r = 1 x = 120 z = 120 EndIf If r = 2 x = 120 z = 55 EndIf If r = 3 x = 120 z = 0 End If If r = 4 x = 55 z = 120 End If If r = 5 x = 55 z = 55 EndIf If r = 6 x = 55 z = 0 EndIf If r = 7 x = 0 z = 120 EndIf If r = 8 x = 0 z = 55 EndIf If r = 9 x = 0 z = 0 End If ranpoint(r) = CreateCone() PositionEntity ranpoint(r), x, 0, z Next ;Set enemy move moveenemy = 0 moveallie = 0 ;Set Collisions Collisions enemy_type,box_type,2,2 Collisions allie_type,box_type,2,2 ;Main Loop While Not KeyDown( 1 ) ;Set enemy and allie radius EntityRadius enemy ,1 EntityRadius allie ,1 ;Set fps to 60 WaitTimer(frameTimer) ; Pause until the timer reaches 60 Cls ;Add 1 to ran timer entime = entime + 1 altime = altime + 1 ;Enemy ai If moveenemy = 1 MoveEntity enemy, 0, 0, .3 EndIf If moveenemy = 0 e = Rnd (1,9) PointEntity enemy,ranpoint(e) moveenemy = 1 EndIf For rote=1 To 100 If entime >=25 PointEntity enemy,ranpoint(e) EndIf Next If EntityDistance (enemy, ranpoint(e)) <= 1 moveenemy = 0 EndIf For rote=1 To 100 If EntityDistance (enemy, cube(rote)) <=2 rot = Rnd(1,10) entime = 0 If rot <= 5 TurnEntity enemy, 0,45,0 EndIf If rot >= 6 TurnEntity enemy, 0,-45,0 EndIf EndIf Next ;Allie ai If moveallie = 1 MoveEntity allie, 0, 0, .3 EndIf If moveallie = 0 r = Rnd (1,9) PointEntity allie,ranpoint(r) moveallie = 1 EndIf For rote=1 To 100 If altime >=25 PointEntity allie,ranpoint(r) EndIf Next If alchase = 1 And altime >=25 PointEntity allie,enemy EndIf If EntityDistance (allie, enemy) <=10 moveallie = 3 EndIf If EntityDistance (allie, enemy) <=20 And EntityDistance (allie, enemy) >= 10 And EntityVisible ( allie,enemy ) alchase = 1 moveallie = 1 EndIf If EntityDistance (allie, ranpoint(r)) <= 1 moveallie = 0 EndIf For rote=1 To 100 If EntityDistance (allie, cube(rote)) <=2 rot = Rnd(1,10) altime = 0 If rot <= 5 TurnEntity allie, 0,45,0 EndIf If rot >= 6 TurnEntity allie, 0,-45,0 EndIf EndIf Next ;Player movement If KeyDown( 200 )=True Then MoveEntity camera,0,0,1 If KeyDown( 208 )=True Then MoveEntity camera,0,0,-1 If KeyDown( 205)=True Then yaw#=yaw#-1 If KeyDown( 203 )=True Then yaw#=yaw#+1 If KeyDown( 45 )=True Then roll#=roll#-1 If KeyDown( 44 )=True Then roll#=roll#+1 ;Mouse look myspd#=MouseYSpeed()*0.1 mxspd#=MouseXSpeed()*.1 MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 yaw#=yaw#-mxspd# pitch#=pitch#+myspd# RotateEntity camera,pitch#,yaw#,roll# UpdateWorld RenderWorld Text 0,20,"Roll: "+EntityRoll#( enemy ) Text 0,35,"Roll: "+EntityYaw#( enemy ) Text 0,50,"Roll: "+EntityPitch#( enemy ) Flip Wend End |
Comments
| ||
Pretty nice and simple code. |
Code Archives Forum