Noch eine Frage zu types in BB3D

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

sven123

Betreff: Noch eine Frage zu types in BB3D

BeitragSa, Nov 27, 2004 13:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe jetzt hier durch die viele hilfe des Forums und durch einige investierte Zeit ein 3D Firspersonschooter zusammen gebastelt.Man sieht jetzt also einen Flieger aus der Cockpit Perspektive.Mein Problem ist jetzt nur das ich meinen Flieger auch die Fähigkeit des schiesens nicht vorenthaten will.Nur leider Funktioniert das schiesen immer noch nicht.Warum?
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 
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
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)+10,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

simi

BeitragSa, Nov 27, 2004 13:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum machst du 100 Treads zu einem Thema auf?????????
 

sven123

BeitragSa, Nov 27, 2004 15:43
Antworten mit Zitat
Benutzer-Profile anzeigen
ich wollte des eigentlich in meinen alten Thread schreiben Embarassed Embarassed Ups sorry Embarassed
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

BeitragSa, Nov 27, 2004 16:30
Antworten mit Zitat
Benutzer-Profile anzeigen
außerdem würde ich dir empfehlen nur die interessanten codestellen zu posten
 

sven123

BeitragSa, Nov 27, 2004 22:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja ich werde deinen Tip beachten aber in diesem Falle ist der ganze Code wichtig.Ich habe in diesem kleinen 3d Programm sprites eingebaut die die Schüsse der Waffe darstellen.Die schüsse gehen von der Egoperspektive,von einem Cockpit aus.es funktioniert auch alles(Das die Sprites(Schüsse)fliegen) auser wenn ich diese stelle hinzufüge warum?Und wie kann ich es schaffen das die Schüsse trotzdem zu sehen sind und fliegen und die Codestelle trotzdem so wie sie ist erhalten bleibt!
Hier die Problemstelle.
Code: [AUSKLAPPEN]
   ;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 

Und hier der ganze code für den nötigen Kontext.
Code: [AUSKLAPPEN]
Graphics3D 800,600,0,1
AppTitle "Rammjäger"
HidePointer
SetBuffer BackBuffer()
;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 
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 
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
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
;Hauptschleife
SetBuffer BackBuffer()
While Not KeyHit(1)
 
   Cls
   
   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 
   
   
   UpdateWorld
   RenderWorld
   Flip
Wend
End 

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
 

Darren

BeitragSa, Nov 27, 2004 23:21
Antworten mit Zitat
Benutzer-Profile anzeigen
versuch es mal mit:

entityfx bullet,16

es kann sein dass du die sprites nicht siehst obwohl sie da sind
 

sven123

BeitragSa, Nov 27, 2004 23:56
Antworten mit Zitat
Benutzer-Profile anzeigen
@DarrenSharm
Wo soll ich das einfügen,also an welcher stelle?
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

BeitragSo, Nov 28, 2004 1:43
Antworten mit Zitat
Benutzer-Profile anzeigen
nach dem befehl

bullet=copyentity(sprite)

MFG Darren
 

sven123

BeitragSo, Nov 28, 2004 12:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Meinst du so?Funktioniert aber auch nicht!
Code: [AUSKLAPPEN]
;Funktionen
Function add_bullet(sprite,max_life,speed#,cam) ;erstellt ein sprite
   b.bullets=New bullets
   b\sprite=CopyEntity (sprite)
   EntityFX b\sprite,16
   b\max_life=max_life
   b\speed#=speed#
   PositionEntity b\sprite,EntityX(cam),EntityY(cam)+10,EntityZ(cam)
   RotateEntity b\sprite,EntityPitch(cam),EntityYaw(cam),EntityRoll(cam)
   ShowEntity b\sprite
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
 

sven123

BeitragSo, Nov 28, 2004 19:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für euere hilfe jetzt habe ich das Problem endeckt.Ich musste einfach den speed der Sprites erhöhen die waren einfach langsamer als die Kamera.
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

BeitragSo, Nov 28, 2004 19:55
Antworten mit Zitat
Benutzer-Profile anzeigen
supi 8) 8) 8) 8) 8)
 

sven123

BeitragSo, Nov 28, 2004 21:18
Antworten mit Zitat
Benutzer-Profile anzeigen
jo finde ich auch endlich habe ich es geschafft,aber eine Frage,die ist allerdings sehr Noobig,hätte ich trotzdem noch wie kann ich in BB3d screenshots machen?Wenn ich mir savebuffer ein bild mache hängt sich der computer auf!
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 Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group