Problem mit der Ki
Übersicht

sven123Betreff: Problem mit der Ki |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So ich versuche jetzt für mein spiel eine Ki zu entwerfen und habe mir folgende Funktion erstelt,hier Prüft das Objekt Modell per Entitypick ob der Himmel in Reichweite ist,wenn ja soll die Drone stoppen(fürs erste),das tut sie aber nicht?Warum obwohl ich den einsatzt von entitypick wie in der Onlinehilfe beschrieben angewand habe!
So nun Versuche ich die Ki für eine Drone zu schreiben(in BB3d),dazu verwende ich Entitypick um ein hinternis zu erkennen und dann die nötigen Reaktionen einzuleiten!Zu Testzwecken soll das Model(Drone) so bal durch entitypick der Himmel erkannt wird stehenbleiben.Dies funktioniert aber nicht warum?Ich habe mir noch mehrmals den Eintrag in der Onlinehilfe angeschaut,bin aber zu dem Schluss gekommwn das der Einsatz von Entitypick richtig ist also muss der Fehler irgendwo anderst liegen,ich weis nur nicht wo! BlitzBasic: [AUSKLAPPEN]
|
||
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 |
Darren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
aber dui rufst die function nich zufällig in jeder schleife auf oder??
wenn ja dann entferne das entitypickmode es reicht wenn du das einmal benutzt aber so sieht das für mich plausibel aus.... |
||
MFG Darren |
sven123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Funktioniert immer noch nicht!Und eben der Code sieht plausibel aus deswegen finde ich ja auch den Fehler nicht!hier ich Poste mal den Ganzen Code!Ich habe jetzt das entitypickmode auserhalb der Funktion und auserhalb der repeat-Schleife geschrieben,ich hoffe der ganze Code ist einigermase Verständlich.
BlitzBasic: [AUSKLAPPEN] Graphics3D 800,600,0,1 |
||
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 |
Darren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
versuch es mal so:
BlitzBasic: [AUSKLAPPEN] Function KI(Modell,Himmel) |
||
MFG Darren |
sven123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn ich das um 90 Grad drehe steht das Objekt nicht richtig! | ||
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Habs jetzt mal versucht geht aber auch nicht! | ||
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jetzt habe ich die funktion KI aus der repeat-Schleife genommen und sie bei den anderen Collisions eingefügt jetz fliegt die drone gar nicht mehr warum?Wie mache ich es richtig? | ||
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 |
Darren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
die ki function musst du schon in der schleife lassen sonst bewegt sich ja das objekt nicht ich denke du solltest ersteiinmal dir die inpactutorials reinziehen. die gibs bei google ![]() ![]() ![]() |
||
MFG Darren |
![]() |
Fabi_17 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sry sven aber probiers mal mit klebstoff wenn deine drohne anhalten soll; ne mal im ernst kein plan ich weiss nur das dein spiel net schlecht ist!!!!(okay klar fehlen noch ein paar verbesserungen aber das wird schon so nun will ich dich mal nicht weiter nerven!!!! ![]() |
||
sven123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jo Fabi unser Fourums Phantom!Jooo!
So aber jetzt zu meiner Frage ich habe jetzt den code auf linepick umgestellt doch der funktioniert auch nicht.Warum? Code: [AUSKLAPPEN] ;KI
Function KI(Modell,Himmel) EntityPickMode Modell,2,0 EntityPickMode Himmel,1,0 x=EntityX(Modell) y=EntityY(Modell) z=EntityZ(Modell) RotateEntity Modell,0,270,0 scan=LinePick(x,y,z,0,0,100) If scan Then ausschluss=1 EndIf If ausschluss=0 Then MoveEntity Modell,-5,0,0 EndIf End Function |
||
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 |
Darren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
willst du nicht nach oben picken???? wenn ja solltest du bei linepick bei y-delta 200 oder so eingebn anstatt bei z-delta... aber sonst hab ich auch keinen weiteren tip | ||
MFG Darren |
sven123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ne ich will nach vorne picken! | ||
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 |
Darren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
UND NIMM DIESES SCHEISS ENTITYPICKMODE AUS DER FUNKTION RAUS!!!
sonsd kann ich aber keinen fehler feststellen |
||
MFG Darren |
sven123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Naja ich poste dir jetzt mal noch mal den Gesamten Quellcode,jetzt habe ich wieder den entitypickmode aus der Funktion genommen.Auserdem habe ich noch mals das ganze Programm durchgeschaut finde aber keinen Fehler!WArum geht der Mist nicht(zu tote Ärger) ![]() Code: [AUSKLAPPEN] Graphics3D 800,600,0,1
AppTitle "Rammjäger" HidePointer SetBuffer BackBuffer() SeedRnd MilliSecs() Locate 350,250 Print "Load..." ;Laden der Texturen und Meshs terrain=LoadTerrain("f:\Grassclip.bmp") text1=LoadTexture("f:\Gras.jpg") metallpyramide=LoadMesh("f:\pyramide.x") Gebaude=LoadMesh("f:\house.x") Gebaude2=LoadMesh("f:\house.x") Burg=LoadMesh("f:\Burg.x") himmel=LoadTexture("f:\himmel2.jpg") Zielscheibe=LoadMesh("f:\Plakat.3ds") cockpit=LoadImage("f:\rearcockpit1.bmp") Fadenkreutz=LoadImage("f:\Fadenkreutz.bmp") sprite=LoadSprite("f:\Blitz.jpg") Buttonja=LoadImage("F:\weiter.bmp") ButtonjaAn=LoadImage("F:\weiteran.bmp") ButtonNein=LoadImage("F:\Ende.bmp") ButtonNeinan=LoadImage("F:\Endean.bmp") Tod=LoadImage("f:\gesplitert.bmp") ;Sprites ScaleSprite sprite,15,15 HideEntity sprite ;Type Schuss Type bullets Field sprite Field life Field speed# Field max_life End Type ;Globals Global angel=270 Global move=0 Global angelsprite=0 Global collision=0 ; Global xButtonja=100 Global yButtonja=300 Global xButtonNein=550 Global yButtonNein=310 Global sperre=0 Global sperre2=0 Global sperre1=0 Global GameOver=0 Global steuerung=0 ;Himmel richtig drehen sky=CreateSphere(100) FlipMesh sky ScaleEntity sky,5500,7000,5500 PositionEntity sky,6500,1000,6800 ;Metallpyramide PositionEntity metallpyramide,5000,20,7800 PositionEntity Zielscheibe,3000,500,4000 EntityShininess Zielscheibe,1 EntityShininess metallpyramide,1 ;Bäume Baeume(25,6,8000,5,9000,3000,10000,5,2000,10000) ; ;Häuser Positionieren PositionMesh Gebaude,9000,-250,-9000 RotateMesh Gebaude,180,0,0 PositionMesh Gebaude2,9050,-250,-9450 RotateMesh Gebaude2,180,0,0 ;Burg PositionEntity Burg,5000,-5,8000 ;Das Terrain erstellen und Texturieren EntityTexture terrain,text1,0,0 ScaleEntity terrain,50,60,50 ScaleTexture text1,20,20 TerrainDetail terrain,8000,True ;Die Textur des Himmels bearbeiten und verwenden EntityTexture sky,himmel ;;;;;;;;;;;;;;;;;;;;;;;;;;------Die Eintsellung der Kamera auf Firstpersonsicht sicht ;; ;; ;Kameravoreinstellungen cam=CreateCamera() 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 ;Kollisionsabfrage EntityType cam,1 EntityType terrain,2 EntityType Burg,3 EntityType metallpyramide,4 EntityType sky,5 EntityType Zielscheibe,10 EntityType Gebaude,7 EntityType Gebaude2,7 ; Collisions 1,2,2,1 Collisions 1,3,2,1 Collisions 1,4,2,1 Collisions 1,5,2,1 Collisions 1,6,2,1 Collisions 1,7,2,1 Collisions 10,5,2,0 ; EntityPickMode Zielscheibe,2,0 EntityPickMode sky,1,0 EntityOrder sky,1 ;Steuerung des Spielers ;;;;;;;;;;;;;;;;;;;;-------Hauptschleife Repeat If EntityCollided(cam,2) GameOver=1 steuerung=1 EndIf If EntityCollided(cam,6) GameOver=1 steuerung=1 EndIf If EntityCollided(cam,7) GameOver=1 steuerung=1 EndIf If EntityCollided(cam,3) GameOver=1 steuerung=1 EndIf If EntityCollided(cam,4) GameOver=1 steuerung=1 EndIf ;Mausabfrage und Steuerung If steuerung=0 Then steuerung(cam,200,0,205,203,-20,20,20) Fall(cam,3.485,2000,1.25,9.812,2,200) EndIf ;Steuerung der Drone KI(Zielscheibe,sky) Cls If MouseHit(1) Then add_bullet(sprite,40,40,cam) ;Bewegung der Schüsse move_bullets() If KeyDown(1) Then End UpdateWorld RenderWorld If GameOver=1 Then Ende(Buttonja,ButtonjaAn,ButtonNein,ButtonNeinan,Tod,cam) EndIf ; MaskImage cockpit,128,128,255 DrawImage Fadenkreutz,375,279 DrawImage cockpit,0,380 screenshot(25) Flip Until KeyDown(1) End ClearWorld End ;Funktionen Function add_bullet(sprite,max_life,speed#,cam) ;erstellt ein sprite b.bullets=New bullets b\sprite=CopyEntity (sprite) EntityFX sprite,16 EntityType b\sprite,11 EntityRadius b\sprite,0.1 b\max_life=120 b\speed#=speed# PositionEntity b\sprite,EntityX(cam),EntityY(cam),EntityZ(cam) RotateEntity b\sprite,EntityPitch(cam),EntityYaw(cam),EntityRoll(cam) RotateSprite b\sprite,angelsprite If angelsprite > 360 Then angelsprite=0 angelsprite=angelsprite+20 ShowEntity b\sprite End Function ; Function move_bullets() ;bewegt die sprites For b.bullets=Each bullets MoveEntity b\sprite,0,0,b\speed# b\life=b\life+1 If b\life>b\max_life Then FreeEntity b\sprite : Delete b Next End Function ;Bäume setzen Function Baeume(anzahl,collisionNumber,realPositionx,realPositiony,realPositionz,copyPositionrndx1,copyPositionrndx2,constanty,copyPositionrndz1,copyPositionrndz2) Baumstumpf=LoadMesh("f:\Baumstumpf.x") PositionEntity Baumstumpf,realPositionx,realPositiony,realPositionz For a=1 To anzahl Baum=CopyEntity (Baumstumpf) PositionEntity Baum,Rnd#(copyPositionrndx1,copyPositionrndx2),constanty,Rnd#(copyPositionrndz1,copyPositionrndz2) EntityType Baum,collisionNumber Next End Function ;Screenshots Function screenshot(key) If KeyHit(key)=1 Then tasten=1 SaveBuffer BackBuffer(),"F:\Screenshots.bmp" tasten=0 EndIf End Function ;Steuerung Function steuerung(entity,oben,unten,rechts,links,lspeed,rspeed,zspeed) RotateEntity entity,EntityPitch(entity)+MouseYSpeed(),EntityYaw(entity)-MouseXSpeed(),0 If KeyDown(oben)=1 Then MoveEntity entity,0,0,zspeed If KeyDown(links)=1 Then MoveEntity entity,lspeed,0,0 If KeyDown(rechts)=1 Then MoveEntity entity,rspeed,0,0 End Function ;KI Function KI(Modell,Himmel) x=EntityX(Modell) y=EntityY(Modell) z=EntityZ(Modell) RotateEntity Modell,0,270,0 scan=LinePick(x,y,z,0,0,100) If scan=1 Then ausschluss=1 EndIf If ausschluss=0 Then MoveEntity Modell,-5,0,0 EndIf End Function ;Fall mit Luftreibung Function Fall(Objekt,cw#,OG#,LD#,g#,AO#,up) G1#=0.5*cw#*LD#*AO# G2#=OG*g Ggesamt#=G2#/G1# Fall#=Ggesamt#^0.5 If Not KeyDown(up) Then MoveEntity Objekt,0,-Fall#,0 End Function ;End Funktion Function Ende(B1,B2,B3,B4,B5,Modell) MaskImage B5,255,255,255 If GameOver=1 Then DrawImage B5,0,0 ;Anzeigen von 2 Buttons z.B ja und nein!!!!!! If sperre=0 Then DrawImage B1,xButtonja,yButtonja DrawImage B3,xButtonNein,yButtonNein EndIf ; Makierung der Buttons bei Tastendruck If KeyDown(205) Then sperre1=1 sperre=1 sperre2=0 EndIf If KeyDown(203) Then sperre2=1 sperre=1 sperre1=0 EndIf If sperre=1 Then DrawImage B1,xButtonja,yButtonja DrawImage B4,xButtonNein,yButtonNein If KeyDown(28)=1 And sperre1=1 Then End EndIf If sperre2=1 Then DrawImage B2,xButtonja,yButtonja DrawImage B3,xButtonNein,yButtonNein ;Neustart des Games durch Variabelen zurücksetzen If KeyDown(28)=1 And sperre2=1 Then GameOver=0 steuerung=0 PositionEntity Modell,5100,2050,8075 PositionEntity Modell,3007,4025,5845 TurnEntity Modell,10,106,0 TurnEntity Modell,270,0,27 EndIf EndIf EndIf End Function |
||
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 |
Darren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also die oh sagt folgendes:
ENTITYPICKMODE Entity, Geometrie [,Verdecken] Beschreibung Blitz3D Die Anweisung ENTITYPICKMODE stellt die Auswahlart für ein Objekt ein. In BlitzBasic gibt es verschiedene Arten von Auswahlmöglichkeiten (pick mode). Mit ENTITYPICKMODE stellt man zuerst den Modus ein. Danach kann ein Objekt mit den Befehlen CAMERAPICK, ENTITYPICK oder LINEPICK ausgewählt werden. Parameter Entity = Identität eines Objekts (entity) Geometrie = Art der Auswahl: 0=nicht auswählbar 1=Kugel (siehe ENTITYRADIUS) 2=Polygon 3=Quader (siehe ENTITYBOX) Verdecken = 0=normal 1=kann andere Objekte verdecken (Standard) was heißen soll, dass du entweder bei geometrie den parameter 2 nimmst oder den radius anpasst. dann müsste es funzen |
||
MFG Darren |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wenn du linepick nimmst, dann musst du dir wohl oder übel die koords ein wenig umrechnen lassen, von EntitySpace Koordinaten und WorldSpace Koordinaten
Code: [AUSKLAPPEN] Function KI(Modell,Himmel)
x=EntityX(Modell) y=EntityY(Modell) z=EntityZ(Modell) tformpoint x, y, z + 100, Modell, 0 RotateEntity Modell,0,270,0 scan=LinePick(x,y,z,tformedx()-x,tformedy()-y,tformedz() - z) If scan=1 Then ausschluss=1 EndIf If ausschluss=0 Then MoveEntity Modell,-5,0,0 EndIf End Function |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Darren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
STIMMT NICHT!!! in der oh steht relative koordinaten!! was heißen soll dass 100 einheiten nach vorne gepickt wird..... 8) 8) 8) | ||
MFG Darren |
sven123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hmm.Ok áber wie kann ich jetzt die länge von scan=LinePick(x,y,z,tformedx()-x,tformedy()-y,tformedz() - z) Varieren,also die letzten delta Parameter? | ||
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 |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
den abstand bestimmst du beim TForm, wie weit er von deinem model aus model sicht weg sein soll. beim linepick gibts nix mehr zu varieren, sonst stimmts nicht mehr | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
sven123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke für die Hilfe bis jetzt.Doch irgendwie stoppt die Drone immer noch nicht wenn sie in die nähe des Himmels kommt.Das ich bei tform x-200 gemach habe muss so sein den ich habe die Dron um 270 Grad gedreht und um Vorwärts zu fliegen muss bei ihr bei moveentity der x Parameter mit -einer Zahl belegt sein das sie in die rchtige richtung fleigt.
Code: [AUSKLAPPEN] ;KI
Function KI(GegnerDrone,HimmelDerWelt) x=EntityX(GegnerDrone) y=EntityY(GegnerDrone) z=EntityZ(GegnerDrone) TFormPoint x-200, y, z ,GegnerDrone, 0 RotateEntity GegnerDrone,0,270,0 scan=LinePick(x,y,z,TFormedX()-x,TFormedY()-y,TFormedZ() - z) If scan=1 Then ausschluss=1 EndIf If ausschluss=0 Then MoveEntity GegnerDrone,-5,0,0 EndIf End Function |
||
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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group