Schüsse in einem 3d Firstpersonshooter

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

sven123

Betreff: Schüsse in einem 3d Firstpersonshooter

BeitragMo, Nov 15, 2004 22:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich habe jetzt ein flugzeug das man aus der Firstpersonansicht steuert
nun möchte ich das man schießen kann.Ich habe mir gedacht das ich eine 3D Bullet entwerfe dieser dann als Startpunkt die Cam übergebe un wenn man die Maustaste betätigt werden mehrere Bullets per type erzeugt.Nur habe ich jetzt das Problem das im 3d Modus nichts in Variabelen gespeichert wird ich meine die bewegung.
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
 

Timo

BeitragMo, Nov 15, 2004 22:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst die Bewegung abgespeichert haben, sonst würd sich das Flugzeug garnicht bewegen Wink
 

sven123

BeitragMo, Nov 15, 2004 22:29
Antworten mit Zitat
Benutzer-Profile anzeigen
ich habe da einfach moveentity cam,0,-20,0 z.b gespeichert ist sie deswegen nicht zumindes nicht algemein.
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

BeitragMo, Nov 15, 2004 23:02
Antworten mit Zitat
Benutzer-Profile anzeigen
mit entityx/y und z kann man
zur not die aktuelle position abfragem.
 

Timo

BeitragMo, Nov 15, 2004 23:17
Antworten mit Zitat
Benutzer-Profile anzeigen
joa du hast doch alles was du brauchst...
Position mittels EntityX() EntityY() und EntityZ()
Drehung mittels EntityPitch() EntityYaw() und EntityRoll()
und deine Geschwindigkeit beträgt 20 Einheiten / Frame
 

sven123

BeitragDi, Nov 16, 2004 15:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab des jetzt mal so gemach funktioniert aber nicht.Bullet ist der 3d Schuss.
Code: [AUSKLAPPEN]

PositionEntity bullet,EntityX(cam),EntityY(cam),EntityZ(cam)
If MouseHit(1) Then MoveEntity bullet,0,0,EntityZ(cam)+20 
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

BeitragDi, Nov 16, 2004 17:54
Antworten mit Zitat
Benutzer-Profile anzeigen
ach mensch, immer und immer wieder der gleiche fehler Smile
die kugel fliegt in diesem fall nur wenn die maustaste
geklickt wurde. also ein paar milisecs, dann ist schluss.
mit der suche wirst du einige sachen finden,
zb wie man das ganze wunderbar mit types lösen kann.
 

DDPhoenix

BeitragDi, Nov 16, 2004 18:58
Antworten mit Zitat
Benutzer-Profile anzeigen
schau dir das mal an
http://www.blitzcoder.com/cgi-...omments=no
weiß nicht ob der direktlink funktioniert...
is das wonach du suchst?
sonst versteh ich die frage nicht lol
 

Another progger

BeitragDi, Nov 16, 2004 19:42
Antworten mit Zitat
Benutzer-Profile anzeigen
DDPhoenix hat Folgendes geschrieben:

is das wonach du suchst?
sonst versteh ich die frage nicht lol


Ich weiß auch net was die Frage meint aber wenn sie des meint wie ich meine meine ich das camerapick dir hilft Very Happy
 

sven123

BeitragDi, Nov 16, 2004 20:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry für die vorherige Frage hab jetzt ein Art tut gefunden wo das drinn ist daraus habe ich jetzt vollgenden Code das Problem ich sehe weder meine Bullet noch bewegt sie sich.
Code: [AUSKLAPPEN]

bulletsprite = LoadSprite("H:\bullet.jpg")
HideEntity bulletsprite
Type bullet
Field obj,lifetime
End Type
PositionEntity cam,5100,2050,8075
If MouseHit(1) Then
bullet.bullet = New bullet
bullet\obj = CopyEntity(bulletsprite,cam)
PositionEntity bullet\obj,EntityX#(cam)-0.01,EntityY#(cam)-0.01,EntityZ#(cam)+0.05
 number_of_bullets = number_of_bullets + 1
EndIf
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

BeitragMi, Nov 17, 2004 17:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke es fehlt noch ShowEntity ....
 

sven123

BeitragMi, Nov 17, 2004 18:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe jetzt showentity angegeben aber ich sehe trotzdem keine schüsse!Warum?
Code: [AUSKLAPPEN]
bulletsprite = LoadSprite("H:\bullet.jpg")
HideEntity bulletsprite
Type bullet
Field obj,lifetime
End Type
PositionEntity cam,5100,2050,8075
If MouseHit(1) Then
showentity bulletsprite
bullet.bullet = New bullet
bullet\obj = CopyEntity(bulletsprite,cam)
PositionEntity bullet\obj,EntityX#(cam)-0.01,EntityY#(cam)-0.01,EntityZ#(cam)+0.05
 number_of_bullets = number_of_bullets + 1
EndIf
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

Jolinah

BeitragMi, Nov 17, 2004 18:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Weil die Schüsse wahrscheinlich noch nicht bewegt werden.

Mach eine For each Schleife und MoveEntity bullet,0,0,1 das sollte dann Funktionieren. Evtl. fliegen sie in die falsche Richtung, dann musst du die Schüsse vorher noch in die richtige Richtung drehen.


Edit: Hab grad gesehen das du ShowEntity bulletsprite machst.
Du musst aber nicht das bulletsprite anzeigen lassen sondern die Kopien davon die mit CopyEntity erzeugt wurden und im TypeObjekt gespeichert werden. Also ShowEntity bullet\obj
 

sven123

BeitragMi, Nov 17, 2004 21:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Funtzt immer noch nicht!Code: [AUSKLAPPEN]
If MouseHit(1) Then
bullet.bullet = New bullet
bullet\obj = CopyEntity(bulletsprite,cam)
ShowEntity bullet\obj
PositionEntity bullet\obj,EntityX#(cam)-0.01,EntityY#(cam)-0.01,EntityZ#(cam)+0.05
number_of_bullets = number_of_bullets + 1
For bullet.bullet Each bullet
MoveEntity  bullet\obj,0,0,1
Next
EndIf
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

Jolinah

BeitragMi, Nov 17, 2004 23:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Kein Wunder, schau mal wo du die For Schleife zum Bewegen der Schüsse drin hast Very Happy Nur dann wenn die Maustaste 1 Gedrückt wurde (nicht gehalten).

Die sollte ausserhalb sein, also die Schüsse müssen immer aktualisiert werden Wink
 

sven123

BeitragDo, Nov 18, 2004 17:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Würde ich gerne wenn ich drausen die for-Schleife einbaue Vermisst er das Variabel asigment warum?
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

Jolinah

BeitragDo, Nov 18, 2004 20:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Graphics3D 1024,768,0,1
SetBuffer BackBuffer()

Type bullet
Field obj
Field destroy
Field alpha#
End Type


Const TYPE_WORLD = 1
Const TYPE_SHOT = 2

Const MOUSE_SENS# = 6.0

mx = GraphicsWidth()/2
my = GraphicsHeight()/2

Collisions TYPE_SHOT,TYPE_WORLD,2,1

cam = CreateCamera()
PositionEntity cam,0,3,-8

bulletsprite = CreateSphere()
EntityColor bulletsprite,255,255,0
EntityType bulletsprite,TYPE_SHOT
ScaleEntity bulletsprite,0.2,0.2,0.2
EntityRadius bulletsprite,0.2
HideEntity bulletsprite

cube = CreateCube()
EntityColor cube,255,0,0
PositionEntity cube,0,0,15
EntityType cube,TYPE_WORLD


Repeat
frametime_sec# = (endtime - now) / 1000.0
now = MilliSecs()
Cls


   TurnEntity cam,(MouseYSpeed() * frametime_sec#) * MOUSE_SENS#,(-MouseXSpeed() * frametime_sec#) * MOUSE_SENS#,0
   RotateEntity cam,EntityPitch(cam),EntityYaw(cam),0
   MoveMouse mx,my


   If MouseHit(1)
      bullet.bullet = New bullet
      bullet\obj = CopyEntity(bulletsprite)
      ShowEntity bullet\obj
      PositionEntity bullet\obj,EntityX(cam),EntityY(cam),EntityZ(cam)
      RotateEntity bullet\obj,EntityPitch(cam),EntityYaw(cam),EntityRoll(cam)
      MoveEntity bullet\obj,0,0,2.0
      bullet\destroy = now + 5000
      bullet\alpha# = 1.0
   EndIf
   
   For bullet.bullet = Each bullet
      MoveEntity bullet\obj,0,0,25.0 * frametime_sec#
      
      If now >= bullet\destroy - 2000 Then
         bullet\alpha# = bullet\alpha# -0.01   
         EntityAlpha bullet\obj,bullet\alpha#
      ElseIf now >= bullet\destroy Then
         FreeEntity bullet\obj
         Delete bullet
      EndIf
   Next


UpdateWorld()
RenderWorld()

   Color 255,255,255
   
   Line mx - 5, my, mx + 5, my
   Line mx, my -5, mx, my + 5


Flip
endtime = MilliSecs()
Until KeyHit(1)

ClearWorld()
Delete Each bullet
EndGraphics()

End


Vielleicht kannst du das brauchen Wink
 

sven123

BeitragDo, Nov 18, 2004 21:25
Antworten mit Zitat
Benutzer-Profile anzeigen
thx für den Code ich hab jetzt mal meinen angepasst!Aber es kommt immer noch Expecting Vaiable assignment warum?
Code: [AUSKLAPPEN]
;
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)
RotateEntity bullet\obj,EntityPitch(cam),EntityYaw(cam),EntityRoll(cam)
MoveEntity bullet\obj,0,0,2.0
EndIf
;
For bullet.bullet Each bullet
MoveEntity  bullet\obj,0,0,25.0
Next
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

Jolinah

BeitragDo, Nov 18, 2004 21:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm, versuch mal bei CopyEntity kein ParentEntity anzugeben, also ohne cam.

Aber ansonsten scheint nichts falsch zu sein. Vermute das Problem ist an einem anderen Ort im Code.
 

sven123

BeitragDo, Nov 18, 2004 21:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hat immer noch den gleichen Fehler hier mal der ganze code!
Vielicht findest du ja den Fehler!
Code: [AUSKLAPPEN]
Graphics3D 800,600,0,1
AppTitle "Rammjäger"
HidePointer
SetBuffer BackBuffer()
Global pivot
;Laden der Texturen und Meshs
terrain=LoadTerrain("H:\Grassclip.bmp")
text1=LoadTexture("H:\Gras.jpg")
metallpyramide=LoadMesh("H:\pyramide.x")
Gebaude=LoadMesh("H:\house.x")
Burg=LoadMesh("H:\Burg.x")
himmel=LoadTexture("H:\himmel2.jpg")
Baumstumpf=LoadMesh("H:\Baumstumpf.x")
Baumstumpf1=LoadMesh("H:\Baumstumpf.x")
Baumstumpf2=LoadMesh("H:\Baumstumpf.x")
Baumstumpf3=LoadMesh("H:\Baumstumpf.x")
cockpit=LoadImage("H:\rearcockpit1.bmp")
Fadenkreutz=LoadImage("H:\Fadenkreutz.bmp")
bulletsprite = LoadSprite("H:\bullet.jpg")
HideEntity bulletsprite
Type bullet
Field obj,lifetime
End Type   
;Objekt richtig drehen 
;Erstellen eines Pivot für die Kollision
sky=CreateSphere(120)
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
;
If MouseHit(1) Then
bullet.bullet = New bullet
bullet\obj = CopyEntity(bulletsprite)
ShowEntity bullet\obj
PositionEntity bullet\obj,EntityX(cam),EntityY(cam),EntityZ(cam)
RotateEntity bullet\obj,EntityPitch(cam),EntityYaw(cam),EntityRoll(cam)
MoveEntity bullet\obj,0,0,2.0
EndIf
;
For bullet.bullet Each bullet
MoveEntity  bullet\obj,0,0,25.0
Next
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)
;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

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group