3D-Schuss-Problem

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Lakorta

Betreff: 3D-Schuss-Problem

BeitragSo, Feb 20, 2011 1:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab, wie der Titel schon sagt, ein Problem mit 3D-Schüssen. Ich hab sie mit Meshs dagestellt, und sie sollen, wenn man die Linke Maustaste drückt, beim Spieler erstellt und von ihm aus nach vorne fliegen. Hier mal der Code:

Code: [AUSKLAPPEN]
AppTitle "Sphere-Shooter"
;---Grafikeinstellungen---
Graphics3D 800,600,16,2
SetBuffer BackBuffer()
timer=CreateTimer(60)
AutoMidHandle 1



;---Kamera-Einstellungen---
cam=CreateCamera()
CameraRange cam,1,50
CameraFogMode cam,1
CameraFogColor cam,0,0,0



;---Terrain---
;Heightmap
Global map=LoadTerrain("Images\heightmap.png")
ScaleEntity map,0.1,10,0.1
EntityTexture map,LoadTexture("Images\land.png")
;Himmel
sky=CreateSphere()
ScaleEntity sky,5,5,5
PositionEntity sky,EntityX(cam),EntityY(cam),EntityZ(cam)
EntityParent sky,cam
EntityTexture sky,LoadTexture("Images\himmel.png")
FlipMesh sky
EntityOrder sky,1



;---Spieler-Einstellungen---
Global player=CreateSphere()
EntityParent cam,player
PositionEntity player,25,10,21



;---Typeeinstellunge---
Type schuss
Field modell
Field dead
End Type



;---Kollisions---
EntityType map,1
EntityType player,2

Collisions 2,1,2,3



;---!---Hauptschleife---!---
While Not keyhit_ESC

;Tastenabfrage
keyhit_ESC=KeyHit(1)
keydown_Q=KeyDown(16)
keydown_W=KeyDown(17)
keydown_E=KeyDown(18)
keydown_A=KeyDown(30)
keydown_S=KeyDown(31)
keydown_D=KeyDown(32)



;---Spielsteuerung---
If keydown_W Then MoveEntity player,0,0,0.2
If keydown_A Then TurnEntity player,0,1,0
If keydown_S Then MoveEntity player,0,0,-0.2
If keydown_D Then TurnEntity player,0,-1,0

If MouseHit(1) create_schuss()

If keydown_Q Then MoveEntity player,-0.1,0,0
If keydown_E Then MoveEntity player,0.1,0,0

TranslateEntity player,0,-0.2,0



;---Schüsse---
For s.schuss=Each schuss
   MoveEntity s\modell,0.3,0,0
Next



;---Sonstiges---
UpdateWorld
RenderWorld
WaitTimer timer
Flip 0
Wend
End



;---!---Funktionen---!---
Function create_schuss()
s.schuss=New schuss
s\modell=CreateSphere()
ScaleEntity s\modell,0.2,0.2,0.2
PositionEntity s\modell,EntityX(player),EntityY(player),EntityZ(player)
RotateEntity s\modell,EntityPitch(player),EntityYaw(player),EntityRoll(player)
End Function


Ich hab bei der Schuss-Funktion ja RotateEntity mit den Werten des Spielers angegeben, aber trotzdem fliegt die Kugel immer irgendwie weiter links beim Spieler weg. Ich hoffe ihr könnt mir helfen.
---

ToeB

BeitragSo, Feb 20, 2011 1:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, du gibst ja auch bei "MoveEntity" in der "For s.schuss = Each schuss" Schleife an, das der Schuss sich um 0.3 nach rechts bewegen soll (X-Achse). Du musst die 0.3 auf den z-Achsen Parameter setzten !

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Blitzprogger

BeitragSo, Feb 20, 2011 1:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich vermute, dass du deine Schüsse in die falsche Richtung bewegst.
Versuche doch mal hier Code: [AUSKLAPPEN]
;---Schüsse---
For s.schuss=Each schuss
   MoveEntity s\modell,0.3,0,0
Next
die Schüsse in die Z- statt in die X-Achse zu bewegen. Also Code: [AUSKLAPPEN]
;---Schüsse---
For s.schuss=Each schuss
   MoveEntity s\modell,0,-0.3,0
Next


[edit] Mist, zu spät Mad [/edit]

mfg, Blitzprogger
Mein aktuelles Projekt, Irnithal: http://www.blitzforum.de/worklogs/415/

Unfreiwilliger Gewinner des BAC# 115. Wink

ToeB

BeitragSo, Feb 20, 2011 2:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo, zu spät und Falsch Wink

EditVerkürztes Zitat Very Happy
Blitzprogger hat Folgendes geschrieben:
Code: [AUSKLAPPEN]
;---Schüsse---
For s.schuss=Each schuss
   MoveEntity s\modell,0,-0.3,0
Next


du bewegst den Schuss hier in die Y Richtung Wink (MoveEntity Entity, X, Y, Z)

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!
  • Zuletzt bearbeitet von ToeB am So, Feb 20, 2011 12:22, insgesamt 2-mal bearbeitet

Holzchopf

Meisterpacker

BeitragSo, Feb 20, 2011 11:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Interessant. Man kann ja Helfende gut und gerne auf Fehler aufmerksam machen, aber man sollte dabei nicht das ganze Vorgängerposting zitieren, sonst begeht man selbst einen Riesenfehler Wink

mfG
Holzchopf
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

Lakorta

BeitragSo, Feb 20, 2011 13:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die Antworten, jetzt klappts Very Happy
---

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group