Probleme mit dem bewegen von Schüssen
Übersicht

sven123Betreff: Probleme mit dem bewegen von Schüssen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hier habe ich einen Code wie ich eigentlich schüsse erstellen und bewegen lassen will,der Code ist vom Sytaxmäsigem her richtig nur sehe ich meine erstelten schüsse nicht.An was liegt das?
Code: [AUSKLAPPEN] bulletsprite = LoadSprite("f:\bullet.jpg") HideEntity bulletsprite Type bullet Field obj Field lifetime End Type while not keyhit(1) If MouseHit(1) Then bullet.bullet = New bullet bullet\obj = CopyEntity(bulletsprite,cam) ShowEntity bullet\obj PositionEntity bullet\obj,EntityX#(cam),EntityY#(cam),EntityZ#(cam) EndIf For bullet.bullet=Each bullet MoveEntity bullet\obj,0,0,-1.0 Next wend |
||
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 |
getlose |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] ;zersetzen wir mal deinen code ;ein sprite laden bulletsprite = LoadSprite("f:\bullet.jpg") ;sprite ausblenden HideEntity bulletsprite ;erstelle type für bullets Type bullet Field obj Field lifetime End Type ;anfang der hauptschleife While Not KeyHit(1) ;drückt man die maustaste(1) dann kopiere sprite If MouseHit(1) Then bullet.bullet = New bullet bullet\obj = CopyEntity(bulletsprite,cam) ;hier hängst du das sprite komischerweise an die cam ran ShowEntity bullet\obj PositionEntity bullet\obj,EntityX#(cam),EntityY#(cam),EntityZ#(cam) EndIf For bullet.bullet=Each bullet MoveEntity bullet\obj,0,0,-1.0 ;hier verschiebst du jedes sprite nach HINTEN Next Wend ergebnis=du siehst nix ![]() |
||
sven123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also muss ich 1 bei moventity angeben das ich sie an die Cam Kopiere ist logisch den das spiele ist ein art Egoschooter und die Schüsse gehen von der Cam aus. | ||
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 ![]() |
|
---|---|---|
Falls es dir weiter Hilft hier kannst du dir alle daten des Programms runterladen vielicht findest du dann den Fehler den ich gemacht habe.
http://home.arcor.de/the_fuzzy/Test3d.zip Und hier ist noch der Komplette Code. Code: [AUSKLAPPEN] Graphics3D 800,600,0,1 AppTitle "Rammjäger" HidePointer SetBuffer BackBuffer() Global pivot ;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") Burg=LoadMesh("f:\Burg.x") himmel=LoadTexture("f:\himmel2.jpg") Baumstumpf=LoadMesh("f:\Baumstumpf.x") Baumstumpf1=LoadMesh("f:\Baumstumpf.x") Baumstumpf2=LoadMesh("f:\Baumstumpf.x") Baumstumpf3=LoadMesh("f:\Baumstumpf.x") cockpit=LoadImage("f:\rearcockpit1.bmp") Fadenkreutz=LoadImage("f:\Fadenkreutz.bmp") bulletsprite = LoadSprite("f:\bullet.jpg") HideEntity bulletsprite Type bullet Field obj Field lifetime End Type ;Objekt richtig drehen ;Erstellen eines Pivot für die Kollision sky=CreateSphere(32) FlipMesh sky ScaleEntity sky,7000,9000,7000 PositionEntity sky,6500,1000,6800 ;Metallpyramide PositionEntity metallpyramide,5000,20,7800 PositionEntity Baumstumpf,Rand(-2000,6000),20,Rand(-1000,9000) PositionEntity Baumstumpf1,Rand(-2000,6000),20,Rand(-1000,9000) PositionEntity Baumstumpf2,Rand(-2000,6000),20,Rand(-1000,9000) PositionEntity Baumstumpf3,4200,20,9000 ; PositionEntity Burg,5000,-5,8000 ;Das Terrain erstellen und Texturieren pivot=CreatePivot() EntityRadius pivot,0.2 EntityTexture terrain,text1,0,0 ScaleEntity terrain,50,60,50 ScaleTexture text1,20,20 ;Spielfigur posizionieren TerrainDetail terrain,8000,True ;Position der Hand ;Position des Hauses PositionMesh Gebaude,9000,-250,-9000 ;Die Textur des Hauses bearbeiten und verwenden EntityTexture sky,himmel RotateMesh Gebaude,180,0,0 ;;;;;;;;;;;;;;;;;;;;;;;;;;------Die Eintsellung der Kamera auf Firstpersonsicht sicht ;; ;; ;Kameravoreinstellungen cam=CreateCamera() PositionEntity cam,5100,2050,8075 ; CameraRange cam,1,80000 light=CreateLight() LightRange light,80000 TurnEntity light,45,45,45 EntityParent light,cam ;Einstellungen für die Sicht TurnEntity cam,10,106,0 PositionEntity cam,3007,1025,5845 TurnEntity cam,270,0,270 ;Kollisionsabfrage EntityType terrain,2 EntityType cam,1 EntityType Burg,3 EntityType metallpyramide,4 EntityType sky,5 Collisions 1,2,2,1 Collisions 1,3,2,1 Collisions 1,4,2,1 Collisions 1,5,2,1 EntityOrder sky,1 ;Steuerung des Spieler und der Cam ;;;;;;;;;;;;;;;;;;;;-------Hauptschleife While Not KeyHit(1) If MouseHit(1) Then bullet.bullet = New bullet bullet\obj = CopyEntity(bulletsprite,cam) ShowEntity bullet\obj PositionEntity bullet\obj,EntityX(cam),EntityY(cam),EntityZ(cam)+25 EndIf ;Bewegen der Schüsse For bullet.bullet=Each bullet MoveEntity bullet\obj,0,0,0.06 Next ;Mausabfrage RotateEntity cam,EntityPitch(cam)+MouseYSpeed(),EntityYaw(cam)-MouseXSpeed(),0 If Not KeyDown(200)=1 Then MoveEntity cam,0,-50,0 If KeyDown(200)=1 Then MoveEntity cam,0,0,20 If KeyDown(203)=1 Then MoveEntity cam,-20,0,0 If KeyDown(205)=1 Then MoveEntity cam,20,0,0 If KeyHit(35)=1 Then SaveBuffer BackBuffer(),"screenshots.bmp" EndIf If KeyDown(1) Then End UpdateWorld RenderWorld MaskImage cockpit,128,128,255 DrawImage Fadenkreutz,370,250 DrawImage cockpit,0,380 Flip Wend ClearWorld End |
||
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 ![]() |
|
---|---|---|
Also ich habe jetzt den Code verändert doch es funktioniert trotzdem nicht ich sehe keine schüsse.
Und ann habe ich noch eine Frage wiso sagst du "Komischer weise an dei Kamera ran"du bist im Cockpit eines Fliegers also in einer Egoperspektive die Schüsse sollen vomm Flugzeug ausgehen darum muss ich die Schusssprites an die Cam rankopieren.Warim funktioniert das so nicht?Code: [AUSKLAPPEN] ;zersetzen wir mal deinen code
;ein sprite laden bulletsprite = LoadSprite("f:\bullet.jpg") ;sprite ausblenden HideEntity bulletsprite ;erstelle type für bullets Type bullet Field obj Field lifetime End Type ;anfang der hauptschleife While Not KeyHit(1) ;drückt man die maustaste(1) dann kopiere sprite If MouseHit(1) Then bullet.bullet = New bullet bullet\obj = CopyEntity(bulletsprite,cam) ;hier hängst du das sprite komischerweise an die cam ran ShowEntity bullet\obj PositionEntity bullet\obj,EntityX#(cam),EntityY#(cam),EntityZ#(cam) EndIf For bullet.bullet=Each bullet MoveEntity bullet\obj,0,0,1.0 ;hier verschiebst du jedes sprite nach HINTEN Next Wend |
||
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 |
getlose |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zitat: Und ann habe ich noch eine Frage wiso sagst du "Komischer weise an dei Kamera ran"du bist im Cockpit eines Fliegers also in einer Egoperspektive die Schüsse sollen vomm Flugzeug ausgehen darum muss ich die Schusssprites an die Cam rankopieren.Warim funktioniert das so nicht?
mit EntityParent veränderst du an sich nicht die Position der Kugel. du hängst es an das flugzeug dran, das heißt, wenn du das cockpit bewegst, bewegt sich die Kugel mit der selben Geschwindigkeit in die selbe Richtung. ich code mal eben was ![]() |
||
getlose |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] Graphics3D 800,600,16,2
cam=CreateCamera() ;das cockpit MoveEntity cam,0,3,-3 TurnEntity cam,30,0,0 sprite=CreateSprite () ;das sprite (bullet) ScaleSprite sprite,0.2,0.2 HideEntity sprite Type bullets Field sprite Field life Field speed# Field max_life End Type SetBuffer BackBuffer() While Not KeyHit(1) Cls If MouseHit(1) Then add_bullet(sprite,150,0.5,cam) move_bullets() If KeyDown(203) Then MoveEntity cam,-0.2,0,0 If KeyDown(205) Then MoveEntity cam,0.2,0,0 UpdateWorld RenderWorld Flip Wend Function add_bullet(sprite,max_life,speed#,cam) ;erstellt ein sprite b.bullets=New bullets b\sprite=CopyEntity (sprite) b\max_life=max_life b\speed#=speed# PositionEntity b\sprite,EntityX(cam),EntityY(cam),EntityZ(cam) RotateEntity b\sprite,EntityPitch(cam),EntityYaw(cam),EntityRoll(cam) 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 so schwer ist das doch garnicht ![]() |
||
sven123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke für den Beisüielcode ich habe ihn jetzt mal in mein Programm eingebaut allerdins funtzt das immer noch nicht so richtig.Naja das muss ich mir noch mal ne weile angucken bis ich es richtig selber kann,aber es wäre halt schon schon wenn es jetzt schon gehen würde.Warum funtzt des immer noch nicht?
Code: [AUSKLAPPEN] Graphics3D 800,600,0,1
AppTitle "Rammjäger" HidePointer SetBuffer BackBuffer() Global pivot ;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") Burg=LoadMesh("f:\Burg.x") himmel=LoadTexture("f:\himmel2.jpg") Baumstumpf=LoadMesh("f:\Baumstumpf.x") Baumstumpf1=LoadMesh("f:\Baumstumpf.x") Baumstumpf2=LoadMesh("f:\Baumstumpf.x") Baumstumpf3=LoadMesh("f:\Baumstumpf.x") cockpit=LoadImage("f:\rearcockpit1.bmp") Fadenkreutz=LoadImage("f:\Fadenkreutz.bmp") ; sprite=CreateSprite () ;das sprite (bullet) ScaleSprite sprite,0.2,0.2 HideEntity sprite ; Type bullets Field sprite Field life Field speed# Field max_life End Type ;Objekt richtig drehen ;Erstellen eines Pivot für die Kollision sky=CreateSphere(32) FlipMesh sky ScaleEntity sky,7000,9000,7000 PositionEntity sky,6500,1000,6800 ;Metallpyramide PositionEntity metallpyramide,5000,20,7800 PositionEntity Baumstumpf,Rand(-2000,6000),5,Rand(-1000,9000) PositionEntity Baumstumpf1,Rand(-2000,6000),5,Rand(-1000,9000) PositionEntity Baumstumpf2,Rand(-2000,6000),5,Rand(-1000,9000) PositionEntity Baumstumpf3,4200,20,9000 ; PositionEntity Burg,5000,-5,8000 ;Das Terrain erstellen und Texturieren pivot=CreatePivot() EntityRadius pivot,0.2 EntityTexture terrain,text1,0,0 ScaleEntity terrain,50,60,50 ScaleTexture text1,20,20 ;Spielfigur posizionieren TerrainDetail terrain,8000,True ;Position der Hand ;Position des Hauses PositionMesh Gebaude,9000,-250,-9000 ;Die Textur des Hauses bearbeiten und verwenden EntityTexture sky,himmel RotateMesh Gebaude,180,0,0 ;;;;;;;;;;;;;;;;;;;;;;;;;;------Die Eintsellung der Kamera auf Firstpersonsicht sicht ;; ;; ;Kameravoreinstellungen cam=CreateCamera() PositionEntity cam,5100,2050,8075 ; CameraRange cam,1,80000 light=CreateLight() LightRange light,80000 TurnEntity light,45,45,45 EntityParent light,cam ;Einstellungen für die Sicht TurnEntity cam,10,106,0 PositionEntity cam,3007,1025,5845 TurnEntity cam,270,0,270 ;Kollisionsabfrage EntityType terrain,2 EntityType cam,1 EntityType Burg,3 EntityType metallpyramide,4 ;Bäume EntityType Baumstumpf,6 EntityType Baumstumpf1,6 EntityType Baumstumpf2,6 EntityType Baumstumpf3,6 ; EntityType sky,5 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 ; EntityOrder sky,1 ;Steuerung des Spieler und der Cam ;;;;;;;;;;;;;;;;;;;;-------Hauptschleife While Not KeyHit(1) If MouseHit(1) Then add_bullet(sprite,150,0.5,cam) move_bullets() ;Mausabfrage RotateEntity cam,EntityPitch(cam)+MouseYSpeed(),EntityYaw(cam)-MouseXSpeed(),0 If Not KeyDown(200)=1 Then MoveEntity cam,0,-15,0 If KeyDown(200)=1 Then MoveEntity cam,0,0,20 If KeyDown(203)=1 Then MoveEntity cam,-20,0,0 If KeyDown(205)=1 Then MoveEntity cam,20,0,0 If KeyHit(35)=1 Then SaveBuffer BackBuffer(),"screenshots.bmp" EndIf If KeyDown(1) Then End UpdateWorld RenderWorld MaskImage cockpit,128,128,255 DrawImage Fadenkreutz,370,250 DrawImage cockpit,0,380 Flip Wend ClearWorld End ;Funktionen Function add_bullet(sprite,max_life,speed#,cam) ;erstellt ein sprite b.bullets=New bullets b\sprite=CopyEntity (sprite) b\max_life=max_life b\speed#=speed# PositionEntity b\sprite,EntityX(cam),EntityY(cam),EntityZ(cam) RotateEntity b\sprite,EntityPitch(cam),EntityYaw(cam),EntityRoll(cam) 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 |
||
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