Tokamakke

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

KHORN

Betreff: Tokamakke

BeitragFr, Aug 05, 2005 17:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi leutz...
ich schlag mich die ganze zeit mit tokamak und ich verlier immer Sad
Ich hab einen "Ball" und will, dass dieser "Ball" beim klicken in die Richtung gestoßen wird, wo man hinschaut (wo die Kamera hinzielt).
Und das ist leider gar nicht so leicht wie es sich anhört.
Ich hab schon die funktionen angeschaut, hab aber nichts gefunden, was mir helfen könnte Sad
Habt ihr ne Idee wie man das macht ?

Danke im voraus Wink


MfG

KHORN

skey-z

BeitragFr, Aug 05, 2005 19:25
Antworten mit Zitat
Benutzer-Profile anzeigen
hab selber keine ahnung von tokamak, aber vlt kann dir dieses tut helfen

http://www.makegame.de/tutorials/tokamak01.html
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter
 

KHORN

BeitragFr, Aug 05, 2005 20:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Den TUT kenn ich schon..
Leider hilft es nichts Sad


KHORN

Xaron

BeitragFr, Aug 05, 2005 21:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Was genau geht denn nicht?

Du musst halt zunächst die Stoßrichtung bestimmen:

TFormVector camera, 0, 0, kraft, camera, 0

Dann machst Du ein TOKRB_ApplyImpulse2 mit dem so transformierten Vektor (TFormedX(), ...) und setzt die Position mit PositionEntity TOKRB_Getx(tokHandle), ...

Gruß - Xaron
Cerberus X - Monkey X Reloaded!
 

KHORN

BeitragFr, Aug 05, 2005 21:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Xaron.
Hört sich interessant an, aber ich versteh nicht wieso du welche parameter übergibst..

TFormVector x#,y#,z#,src_entity,dest_entity
TOKRB_ApplyImpulse2(RigidBody%,X#,Y#,Z#,XPos#,YPos#,ZPos#)

Wie kommst du da auf Kamera usw ?
könntest du es vielleicht etwas genauer beschreiben ?
Danke Smile


MfG
KHORN

Xaron

BeitragSa, Aug 06, 2005 0:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Nun, auf die Kamera komme ich deshalb, weil Du dorthin schießen willst, wo die Kamera hinschaut. Prinzipiell solltest Du dafür natürlich die Entität nehmen, die die Richtung vorgeben soll.

Mit dem TFormVector transformierst Du die lokalen Koordinaten Deiner Kamera z.B. in die globalen Weltkoordinaten, die Du für ApplyImpluse brauchst.

Gruß - Xaron
Cerberus X - Monkey X Reloaded!
 

KHORN

BeitragSa, Aug 06, 2005 12:07
Antworten mit Zitat
Benutzer-Profile anzeigen
joaa..
soweit versteh ich es ja..
Aber das klappt nicht ganz Sad
BlitzBasic: [AUSKLAPPEN]

If MouseHit(1)
TOKRB_SetPosition rb,EntityX(cam),EntityY(cam),EntityZ(cam)
TFormVector cam, 0, 0, kraft, cam, 0
EndIf


Da bekomm ich schon die erste Fehlermeldung : Too many Parameters.
Muss anstelle von kraft einfach nur eine Zahl sein ?
Und wie soll ich das mit ApplyImpulse machen ?

Danke schonmal Smile


Gruß KHORN

Xaron

BeitragSa, Aug 06, 2005 14:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Also zunächst einmal must Du den ganzen Tokamak-Kram initialisieren.

Dann hast Du ja Deine Kamera, und in diese Richtung willst Du der Kugel einen (Billiard?) Stoß versetzen.

Du möchtest ja in Z-Richtung, also von Dir weg stoßen, also brauchst Du diese Z-Richtung transformiert in Dein Kamerasystem.

Deshalb: TFormvector 0, 0, kraft, camera, 0

Sorry, da hatte ich aus dem Kopf einen Parameter zu viel angegeben. Wink Der Wert "kraft" ist in der Tat eine Zahl...

Jetzt kannst Du diese Kraft auf Deine Kugel wirken lassen:

TOKRB_ApplyImpulse kugel, TFormedX(), TFormedY(), TFormedZ()

Wobei "kugel" Dein Tokamak-Handle der Kugel sein muss (siehe Initialisierung, wo Du ja auch die Abmessungen, Masse etc. definierst)

Nun musst Du Blitzbasic natürlich noch die neue Position geben, und zwar bei jedem Schleifendurchlauf (das ApplyImpulse rufst Du nur einmal auf):

PositionEntity kugelentity, TOKRB_GetX(kugel), TOKRB_GetY(kugel), TOKRB_GetZ(kugel)

Wobei "kugelentity" die BB-Entität der Kugel ist (z.B. mit kugelentity=CreateSphere...).

Das alles setzt voraus, dass Tokamak richtig initialisiert ist, und Du in jedem Schleifendurchlauf TOKSIM_Advance aufrufst.

Wenn es jetzt immer noch nicht klappt, zeig mir mal etwas mehr Code, auch von der Initialisierung.

Gruß - Xaron
Cerberus X - Monkey X Reloaded!
 

KHORN

BeitragSa, Aug 06, 2005 16:24
Antworten mit Zitat
Benutzer-Profile anzeigen
DAANKKEEEE Very Happy
Juhuuu ^_^

EDIT
{
Eine kleine frage hätte ich noch ^^
Wie bringt man denn die Kugel wieder zum stehen ?
TOKRB_ApplyImpulse rb,-TOKRB_GetVelocityX(rb),-TOKRB_GetVelocityY(rb),-TOKRB_GetVelocityZ(rb)
ich habs damit versucht, aber das ist nicht so genau Sad
}

MfG
KHORN

Xaron

BeitragSa, Aug 06, 2005 17:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Smile Nein, mit ApplyImpulse gibst Du der Kugel ja einen Schubs. Eigentlich bleibt sie dann wieder selbst stehen, da musst Du mal mit der Masse und vor allem mit der Reibung rumspielen.

Reibung:
TOKRB_SetLinearDamping kugel, 0.01
TOKRB_SetAngularDamping kugel,0.02


Der erste Wert ist für die Bewegung zuständig, der zweite für die Rotation. Umso näher diese Werte an 1.0 herankommen, desto stärker wird die Dämpfung.

Ansonsten kannst Du die Kugel damit "zwangsstoppen":

TOKRB_SetVelocity kugel, 0, 0, 0

Gruß - Xaron
Cerberus X - Monkey X Reloaded!
 

KHORN

BeitragSa, Aug 06, 2005 17:52
Antworten mit Zitat
Benutzer-Profile anzeigen
ok..
Ich danke dir wieder Very Happy
jetz hab ich aber wirklich alles was ich gebraucht hab Very Happy

Gruß KHORN

Xaron

BeitragSa, Aug 06, 2005 18:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Gern geschehen! Smile

Wenn Du mal was konstant beschleunigen willst, wie z.B. ein Raumschiff, nimm besser TOKRB_SetForce...

Gruß - Xaron
Cerberus X - Monkey X Reloaded!

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group