Kollision funktioniert nicht ganz
Übersicht

dont_know_to_useBetreff: Kollision funktioniert nicht ganz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hey
In diesem Code fliegt ein Laserschuss auf ein Objekt zu, sobald der Schuss auf dem Objekt aufprallt, soll ein Sprite dort angezeigt werden, dummerweise passiert gar nichts, der Schuss fliegt einfach durch das Objekt hindurch, das ist mein Code: BlitzBasic: [AUSKLAPPEN] EntityPick(laser,12) Ich bin mir nicht sicher was falsch ist. ![]() |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
EntityPick hat nichts mit Collisions zu tun - das wird das größte Problem sein. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
dont_know_to_use |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Selbst wenn ich das wegmache, dem Laser und dem Objekt per EntityType verschiedene Werte zuweise und das ganze mit Collisions prüfe, bleibt es das gleiche. ![]() |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mal sehen... du brauchst:
EntityType ![]() ![]() ![]() ![]() ![]() |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
dont_know_to_use |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
EntityRadius brauche ich doch nur bei runden Objekten? Die Sache ist die, dass das Objekt, was von dem Laser getroffen wird, ein Auto ist, also nicht rund. ![]() Ansonsten habe ich alles. |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Welchen Kollisionstyp gibst du denn an? Und in welcher Reihenfolge? | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
dont_know_to_use |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Moment, vielleicht liegt das Problem woanders. Funktioniert Collisions auch dann, wenn es schon vor EntityType kommt? Mein Code schaut ungefähr so aus:
BlitzBasic: [AUSKLAPPEN] EntityType auto,2 Die Kollision an sich funktioniert auch, aber das Sprite wird nicht an der Kollisionsstelle angezeigt. |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann werde dir doch bitte erst mal klar, was - oder wo - eigentlich das Problem ist. Aus einem nicht lauffähigen Beispiel kann man nur das gröbste herauslesen.
Hier sehe ich jedenfalls nichts gravierendes - ob es in dieser Reihenfolge funktioniert, sollte ja schnell offensichtlich sein. Wenn du weißt, was los ist, schreib ein lauffähiges Mini-Beispiel, das den Fehler demonstriert, und das hier schnell verbessert werden kann. Vielleicht siehst du währenddessen ja schon, was passiert. Das debuging ist aber erst mal dein Bier. In diesem Sinne: Prost & viel Erfolg. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ich würde Collisions![]() dem Schuss würde ich als Kugel-Kollision und das Auto als Polygon-Kollision erstellen und dann benötigst du EntityRadius ![]() Als optimierung würde ich aber erst mal mit EntityDistance ![]() |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
![]() |
ZEVS |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn es dir um Geschwindigkeit geht, würde ich nicht auf EntityDistance zurückgreifen, sondern die Abfrage selbst machen. Die Wurzelfunktion von EntityDistance![]() Eine Möglichkeit wäre es z.B., eine Box-Kollision zu berechnen, was schneller sein kann. Aber auch bei einer Kugel-Kugel-Kollision kommt man um die Wurzel herum: Code: [AUSKLAPPEN] Radius1+Radius2 < Sqr(VektorX*VektorX+VektorY*VektorY+VektorZ*VektorZ) |()^2
(Radius1+Radius2)*(Radius1+Radius2) < VektorX*VektorX+VektorY*VektorY+VektorZ*VektorZ Die Summe der Radien kann man einmal ausrechnen. Die Vektoren sind immer VektorA = A1-A2 (mit A als X, Y und Z). Das zur Geschwindigkeit. @dont_know_to_use: Das Beispiel erscheint mir nicht sinnvoll. Der Laser wird ja wohl nicht unmittelbar vor der Kollisionsprüfung intalisiert. Ich kann mich Xeres' Bitte nur anschließen. ZEVS |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group