Gegenstände von der Wand abprallen lassen...
Übersicht

![]() |
TheProgrammerBetreff: Gegenstände von der Wand abprallen lassen... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi.
Ich möchte Handgranaten in mein Spiel einbauen und brauche dazu das Wissen, wie man Gegenstände (die Granaten) im richtigen Winkel von einer Wand abprallen lässt. Bei Antworten bitte mit Bsp ![]() Code: [AUSKLAPPEN] If EntityCollided(granate,2) Then ... Endif Danke |
||
aktuelles Projekt: The last day of human being |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
einfach den Bewegungsvektor an der Wand abprallen lassen. Bei Ebenen in XY oder ZY richtung heisst das einfach x bzw. z invertieren
ansonsten geht das nur über ne matrix-vektor multiplikation oder du nimmst tokamak |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
TheProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
![]() |
||
aktuelles Projekt: The last day of human being |
![]() |
ChrisAttack |
![]() Antworten mit Zitat ![]() |
---|---|---|
inventieren = umdrehen
tokamak = physikengine |
||
B3D
MSVC++ DX9SDK |
![]() |
TheProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kann mir da bitte jemand ein
Beispiel geben? |
||
aktuelles Projekt: The last day of human being |
Affje |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wie bindet man tokamak eigentlich ein?? | ||
www.drachengarde.tk
Guckst da Hier |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
den tokamakwrapper nehmen und wie angegeben in die userlib befördern mit der decls.
danach einfach die objekte definieren und tokamak rechnen lassen. Beispiel wofür Programmer? wie gesagt für Achsenflächen steht es da und für den Rest gibts kein Beispiel, da du definitiv zu wenig mathe verstehst für das thema, sorry ( kommt dann irgendwann in der 10-12 ) |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
TheProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
![]() |
||
aktuelles Projekt: The last day of human being |
INpac |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hmm, würde ebenfalls Tokamak benutzen, um ungewollte Bugs in der Abprallroutine zu vermeiden und somit den Spieler zu ärgern ![]() Wenn dein ganzes Level ein einziges Mesh ist, benutze den Code aus dem Bsp "Toka Car.bb" o.ä., das bei der Engine beiliegt. Da gibts ne Function "MakeTokaCollider()", die dir ein Mesh, in dem Fall dein Level als Toka-Objekt einliest. Für die Granaten erstellst du dann immer jeweils ein Toka-Objekt (RigidBody > TOKRB_Create()), und gibts dem ganzen am besten einen Radius (TOKRB_Addsphere( toka_obj, radius# )). Dann errechnest du mit TFormVector, TformedX() etc den Vektor aus, mit dem das Toka-Obj weggeworfen wird, also mit TOKRB_ApplyImpulse toka_obj, TFormedX()*wurfspeed, TFormedY()*wurfspeed, .... |
||
![]() |
TheProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kannst mir doch trotzdem n' Beispiel geben,
was ich nur einfügen muss und froh bin. |
||
aktuelles Projekt: The last day of human being |
![]() |
TheProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wo bekomme ich dieses Tokamak her? | ||
aktuelles Projekt: The last day of human being |
INpac |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nein ![]() Type granate field mesh field toka ... end type function ThrowGrenade() g.granate = new granate g\mesh = ... g\toka = tokrb_create() tokrb_addsphere( g\toka, 1 ) ; ähh, da bin ich mir jetzt nicht mit den paras sicher...: tformvector 0,0,1,cam,0 ws# = wurfspeed = 10 ; zB tokrb_apllyimpulse g\toka, tformedx()*ws, tformedY()*ws, tformedZ()*ws end function function UpdateGrenades() for g. ... g\x = tokrb_getx() g\y = tokrb_gety() g\z = tokrb_getz() g\rx = tokrb_getpitch() ... positionentity g\mesh, g\x,g\y,g\z rotateentity g\mesh, g\rx,g\ry,g\rz ... next end function Natürlich darfste nicht TOKSIM_Advance() vergessen ![]() hab ich jetzt alles ausem Standt geschrieben, keine Garantie, sollte klappen |
||
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] nx# = CollisionNX(b\mesh,col)
aus einem projekt. seinerzeit habe ich irgendwas falsch gemacht und es etwas verhunzt. aber ganz falsch düften die berechnungen nicht sein. ny# = CollisionNY(b\mesh,col) nz# = CollisionNZ(b\mesh,col) cpit# = (ATan2(ny,nz)+360) Mod 360 cyaw# = (ATan2(nx,nz)+360) Mod 360 b\pit# = -b\pit + cpit*2 + 180 ;Abs(b\pit-cpit)*2*Sgn(b\pit-cpit) b\yaw# = -(+b\yaw - cyaw*2);Abs(b\yaw-cyaw)*2*Sgn(b\yaw-cyaw) b\speed = b\speed*.6 - b\grav*.3 b\grav# = 0 RotateEntity b\mesh,-b\pit,b\yaw,0 ![]() |
||
MrKeks.net |
![]() |
TheProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe jetzt ein weitertes Problem:
Wenn ich schreibe: Code: [AUSKLAPPEN] If EntityCollided(granate,2) Then End Endif Das funktioniert noch nicht mal. übrigens... Code: [AUSKLAPPEN] EntityType granate,1 EntityType level,2 ... Collisions 1,2,2,2 hab ich. Könnt ihr mir helfen? |
||
aktuelles Projekt: The last day of human being |
INpac |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm...
gibts denn gar keine Kollision? haste UpdateWorld? |
||
![]() |
TheProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab's schon anders gelöst... | ||
aktuelles Projekt: The last day of human being |
HOT-BITGast |
![]() Antworten mit Zitat |
|
---|---|---|
Hi,
das ist aber Super, wenn du das anders gelöst hast ! Warum läßt du dann die anderen dumm sterben ? Zuerst viel fragen, und wenn eine Antwort gefunden hast, dann gibts keinen Kommentar oder die Lösung ? Toni |
||
![]() |
TheProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab das Problem etwas umständlich gelöst,
aber es funktioniert: Ich lasse einen Pivot dieselbe Flugbahn fliegen, wie die Granate (der Pivot hat ja keine Kollision) Wenn sich die X, Y oder Z - Koordinaten der beiden Objekte unterscheiden, hat die Granate einen Gegenstand berührt... |
||
aktuelles Projekt: The last day of human being |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group