Bullet läuft nicht mit(jetzt schon!!Erledigt!)

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

the FR3AK

Betreff: Bullet läuft nicht mit(jetzt schon!!Erledigt!)

BeitragSa, Sep 09, 2006 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn das Spiel startet,und ich dann schiesse geht alles...aber wenn ich dann loslaufe,läuft zwar mein player aber das Bullet hängt immer noch an der Startposition Confused

Der code:
Code: [AUSKLAPPEN]

...

Type shoot
 Field X,y,z
 Field Model
End Type

Global p.shoot
bullet1=LoadSprite ( "data/gun/bullet.bmp" )
ScaleSprite Bullet1,10,10
...
;Hauptschleife...
...
UpdateShoot()
...
If MouseHit(1)=1 Then
 p.shoot = New shoot
 p\x = EntityX(cam)+1.5
 p\z = EntityY(cam)+4.0
 p\y = EntityZ(cam)-1.5
 p\Model = CopyEntity(bullet1)
 RotateEntity p\Model,EntityPitch(gun,1),EntityYaw(gun,1),EntityRoll(gun,1),1
 EndIf
...
;Ende der Schleife!

Function UpdateShoot()
For p.shoot = Each shoot

 p\z = p\z + 1
 MoveEntity p\Model,p\x,p\y,p\z
 
 If EntityCollided(p\Model,spider) Then Delete p
 If EntityCollided(p\Model,terrain) Then Delete p
 If EntityCollided(p\Model,gen1) Then Delete p
Next
End Function


Hoffentlich weiß jemand rat Rolling Eyes
  • Zuletzt bearbeitet von the FR3AK am Do, Sep 14, 2006 14:59, insgesamt einmal bearbeitet

Christoph

BeitragSa, Sep 09, 2006 21:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst dich entscheiden!
Entweder ist p\x, p\y, p\z die Position oder der Verschiebungswert, sonst klappt es nicht.

the FR3AK

BeitragSa, Sep 09, 2006 21:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie meinst du das?? Embarassed

Christoph

BeitragSo, Sep 10, 2006 11:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau:
Code: [AUSKLAPPEN]
 p\x = EntityX(cam)+1.5
 p\z = EntityY(cam)+4.0
 p\y = EntityZ(cam)-1.5

Hier hast du p\x,p\y,p\z als eine Position festgelegt.

Code: [AUSKLAPPEN]
 MoveEntity p\Model,p\x,p\y,p\z

Hier aber verschiebst du deinen Schuss um die Position. Das geht nicht.

Edit:
Außerdem fällt mir grad auf, dass du y und z vertauscht hast:
Code: [AUSKLAPPEN]
 p\x = EntityX(cam)+1.5
 p\y = EntityY(cam)+4.0
 p\z = EntityZ(cam)-1.5

Arrow So müsste es heißen.

the FR3AK

BeitragSo, Sep 10, 2006 21:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Toll jetzt geht es nich mehr Mad
 

Dreamora

BeitragSo, Sep 10, 2006 23:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Also

Bei MoveEntity musst du die Bewegung pro Frame angeben. Diese ist Bewegung pro Sekunde / FPS#

Wenn du also willst, das es sich 1 Einheit vorwärts bewegt wäre das

MoveEntity Bullet, 0, 0, 1.0/FPS (wenn man davon ausgeht, das die Z achse nach vorne ist, wie es zb bei der Camera ist)

Das was du machst bringt nichts, dein Schuss teleportiert sich ins nichts binnen 2 Frames.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

the FR3AK

BeitragMo, Sep 11, 2006 10:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Shocked Dann hab ich aber immer noch das gleiche Problem Evil or Very Mad
Da hast du ein Bild von meinem Fehler!
user posted image
Da wo die Kugel(Bullet) ist,ist meine startposition!Wenn ich aber laufe bleibt die Kugel an der Startposition...da hat auch das MoveEntity p\model,p\x,p\y,p\z+1.0/FPS# geholfen!Es hat zwar geschossen aber...

Jan_

Ehemaliger Admin

BeitragMo, Sep 11, 2006 10:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Field X,y,z
-->Code: [AUSKLAPPEN]
Field X#,y#,z#
between angels and insects
 

Dreamora

BeitragMo, Sep 11, 2006 11:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Du verstehst nicht: MOVEENTITY ist relativ zur Position, da darf KEIN P\X etc mehr drin sein. Nur das was ich dir oben hingeschriebne habe, 0,0, 1.0/FPS

Am besten versuchst du erst einmal die gundlegenden Befehle zu erlernen bevor du was zu schiessen versuchst, da du scheinbar noch nicht einmal den Unterschied zwischen PositionEntity, MoveEntity und TranslateEntity verstanden hast.

Da stellt sich mir ernsthaft die Frage ob eigentlich die Bewegung des Bullets falsch ist (mit meinem Code oben) oder ob deine Bewegung des Spielers komplett falsch ist, was man eigentlich aufgrund der elementaren Fehler beim Bullet annehmen müsste.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Christoph

BeitragMo, Sep 11, 2006 11:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Du machst das grundlegent falsch:

Wenn die Maustaste gedrückt wird musst du das Bullet (am besten mit ql:positionentity) auf der Stelle des Spielers positionieren.

Dann musst du in die Funktion Updateshoot() reinschreiben:
Code: [AUSKLAPPEN]
moveentity p\Model,0,0,1

the FR3AK

BeitragMo, Sep 11, 2006 16:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Very Happy Cristoph hats richtig gemacht Wink
Jetzt geht es!Musste zwar noch n bissle herumprobieren...
THX Christoph^^ THX Den anderen wo geholfen habn Wink

Aber wenn ich da bei PositionEntity noch +1.5 oder so dahinter mach,erscheint das bullet zwar an der position aber wenn ich mich drehe und dann wieder schieße kommt es an einem anderen Punkt heraus...ich weiß auch warum aber ich kanns nicht erklären Rolling Eyes

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMo, Sep 11, 2006 17:50
Antworten mit Zitat
Benutzer-Profile anzeigen
the FR3AK hat Folgendes geschrieben:
...Aber wenn ich da bei PositionEntity noch +1.5 oder so dahinter mach,erscheint das bullet zwar an der position aber wenn ich mich drehe und dann wieder schieße kommt es an einem anderen Punkt heraus...

Wenn du direkt bei Positionentity ein Objekt umpositionieren möchtest, dann muss auch die drehposition des Spielers bzw. kamera berücksichtigt werden.

the FR3AK

BeitragMo, Sep 11, 2006 17:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie soll ich dass dann beheben?Mit z.B. einem PIVOT oder so an der Waffenendung? Rolling Eyes

Christoph

BeitragMo, Sep 11, 2006 18:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Wieso, die Idee ist doch gar nicht schlecht:

Einfach ein Pivot an das Ende der Waffe, mit parent befestigen Wink .

Dann
Code: [AUSKLAPPEN]
Positionsentity p\Model,entityx(punkt),entityy(punkt),entityz(punkt)
rotateentity p\Model,0,,entityyaw(Player),0
 

Dreamora

BeitragMo, Sep 11, 2006 18:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Entweder das oder du berechnest die Position mit TFormPoint
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

the FR3AK

BeitragMo, Sep 11, 2006 18:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei dem Pivot hab ich entweder nen Fehler gemacht oder es geht nicht...da passiert das gleiche im Versuchs mal mit TFormPoint oder so Rolling Eyes

Ich find aber mit der Suche nix gescheites wo mir das erklärt...

Christoph

BeitragMo, Sep 11, 2006 19:11
Antworten mit Zitat
Benutzer-Profile anzeigen
ql:TFormpoint

the FR3AK

BeitragMo, Sep 11, 2006 19:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie soll ich das in meinem Game Benutzen?
 

Dreamora

BeitragMo, Sep 11, 2006 22:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Indem du den Punkt der in der lokalen Transformation der Waffe vor ihr liegt in Weltkoordinaten transformierst.

Das ist das gleiche was der Pivot tut. Sprich der ist einfacher für deinen Bedarf, du musst ihn nur richtig positionieren und vor allem als Child von deiner Waffe erzeugen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

the FR3AK

BeitragDo, Sep 14, 2006 14:59
Antworten mit Zitat
Benutzer-Profile anzeigen
OK hat sich erledigt!THX @ all helpers^^

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group