Ein problem mit selbstschießender KI!

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

sven123

Betreff: Ein problem mit selbstschießender KI!

BeitragDi, Jan 18, 2005 22:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich habe hier,mir eine kleine KI zusammen gebastelt,diese soll ein Geräusch machen wenn der Spieler(die Cam) in reichweite kommt.Ob der Spieler in Reichweite ist will ich mit entitypick prüfen doch,doch es funktioniert nicht und eine Memory access violation taucht auf!Was geht hier schief.
Code: [AUSKLAPPEN]

test=loadsound("f:\Gereusch.wav")
BuildDronen(GegnerDrone)
;Die Kamera
cam=CreateCamera()
EntityPickMode cam,2
NameEntity cam,"Kamera"
PositionEntity cam,5100,2050,8075
EntityRadius cam,5
;
CameraRange cam,1,80000
light=CreateLight() 
LightRange light,80000
EntityParent light,cam
TurnEntity cam,10,106,0 
PositionEntity cam,3007,4025,5845
TurnEntity cam,270,0,270
repeat
bewegen(GegnerDrone,test) 
until keyhit(1) end
;Erstellen der Dronen und entitypickmode wird für alle Gegner Gesetzt
Function BuildDronen(Modell)
 PositionEntity Modell,Rnd#(2000,5000),Rnd#(1000,5000),Rnd#(3000,9000)
 EntityType Modell,ColDronen
 lost=Rnd#(15,120)
     For f=1 To lost
D.Drone=New Drone
D\anzahl=-10
D\Modelle=CopyEntity(Modell)
PositionEntity D\Modelle,Rnd#(2000,5000),Rnd#(1000,5000),Rnd#(3000,9000)
EntityType D\Modelle,ColDronen
EntityPickMode D\Modelle,2
EntityRadius D\Modelle,0.1
     Next
End Function
;
;Hiermit wird die Drone bewegt und entitypick verwendet
Function bewegen(Modell,testi)
If todDrone=0 Then
If strecke<=0 Then
MoveEntity Modell,-30,0,0
strecke=strecke+1
EndIf


If  strecke=>0 And strecke<300 Then
RotateEntity Modell,0,180,0
MoveEntity Modell,-30,0,0
strecke=strecke+1
EndIf


If strecke=>300 Then
RotateEntity Modell,0,360,0
MoveEntity Modell,-30,0,0
strecke=strecke+1
If strecke=>600 Then strecke=-4
EndIf
 
If EntityCollided(Modell,ColSchuss) Then FreeEntity Modell:todDrone=1
EndIf
For D.Drone=Each Drone


If D\anzahl<=0 Then 
MoveEntity D\Modelle,-30,0,0
D\anzahl=D\anzahl+1
EndIf



If  D\anzahl=>0 And D\anzahl<300 Then 
RotateEntity D\Modelle,0,180,0   
MoveEntity D\Modelle,-30,0,0
D\anzahl=D\anzahl+1
EndIf



If D\anzahl=>300  Then
RotateEntity D\Modelle,0,360,0
MoveEntity D\Modelle,-30,0,0
D\anzahl=D\anzahl+1
If D\anzahl=>600 Then D\anzahl=-4
EndIf

D\scanningCam=EntityPick(D\Modelle,200)
D\Name=EntityName$(D\scanningCam)
If D\Name="Kamera" Then
If tro=0 Then 
PlaySound(testi)
tro=1
EndIf
EndIf 

 
If EntityCollided(D\Modelle,ColSchuss) Then FreeEntity D\Modelle:Delete D
           


Next   
End Function

Der Code ist jetzt verkürtzt ich habe nur das nötigste hier gepostet!

Thx euer Sven123
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will
Fertiges Projekt:Invasion der Heuschrecken
 

biegl

BeitragDi, Jan 18, 2005 23:12
Antworten mit Zitat
Benutzer-Profile anzeigen
nehm anstatt ntity collidet entitydistance....
 

sven123

BeitragMi, Jan 19, 2005 18:59
Antworten mit Zitat
Benutzer-Profile anzeigen
aha werde es versuchen.
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will
Fertiges Projekt:Invasion der Heuschrecken
 

sven123

BeitragMi, Jan 19, 2005 19:13
Antworten mit Zitat
Benutzer-Profile anzeigen
@Biegel es funktioniert.Doch ein Probleme bleiben.
Arrow Ich kann mit dieser Funktiion nicht feststellen ob der Spieler nun vor den Gegnern oder hinter ihnen ist.Ich will aber das die Gegner nur nach vorne auf den Spieler schießen.
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will
Fertiges Projekt:Invasion der Heuschrecken

lucifer

BeitragMi, Jan 19, 2005 19:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Dazu kannst du DeltaYaw benutzen.
Aktuelles Projekt:
Demonspawn
RPG
 

sven123

BeitragMi, Jan 19, 2005 21:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo jetzt gehts.Danke
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will
Fertiges Projekt:Invasion der Heuschrecken

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group