Kollisionen | Ich finde meinen Fehler nicht!

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

PhillipB

Betreff: Kollisionen | Ich finde meinen Fehler nicht!

BeitragFr, Dez 31, 2010 14:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo ich habe mich mal wieder an die Kollisionen gemacht !
Also ich habe eine Bahn die fahren soll,die soll ja auf den Gleisen bleiben deswegen dachte ich mir mit Kollisionen !
Code: [AUSKLAPPEN]
;Kollisionen
EntityType map, 1
EntityType model, 2
EntityBox model, 2.0553, 0.428, -0.008, 1.6461, 0.549, 1.6461
Collisions 2,1,2,1


Doch die Bahn fährt einfach gerade aus was mache ich falsch?

Danke im Vorraus
-----------------------
Guten rutsch ins "Neue"

mfg
PhillipB.

Xeres

Moderator

BeitragFr, Dez 31, 2010 14:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Ansatz ist einfach schon mal nicht zu empfehlen. Programmiere es so, das die Bahn automatisch den Schienen folgt - funktioniert garantiert & ist einfacher um zu setzen.
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
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

PhillipB

BeitragFr, Dez 31, 2010 14:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja ich finde mit den Kollis ist es besser weil sons muss ich immer alles errechnen!
Und 2 brauche ich auch mal Kollis für ne Camera!

Ana

BeitragFr, Dez 31, 2010 15:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Eventuell sind die Gleise so zu klein? Schon mal mit richtig hohen Wänden probiert?

Und ganz ehrlich die Lösung ist wirklich nicht gut, da hat Xeres schon recht.

Folgende Probleme würden mir da spontan zu einfallen:
- Bahn dreht sich nicht in Fahrtrichtung
- Bei einem Streckenabschnitt, der 90° zur Startrichtung ist fährt sie gar nicht mehr
- je größer der Winkel zwischen Start und aktueller Richtung ist, desto langsamer wird der Zug

Eventuell einfacher wenn du einfach einen Type ala
BlitzBasic: [AUSKLAPPEN]
Type Wegpunkt
Field Pivot
Field vorgaenger.wegpunkt
Field nachfolger.wegpunkt
End typ

Global Last_Wegpunkt.wegpunkt,First_Wegpunkt.wegpunkt
Function Create_Wegpunkt.wegpunkt(x,y,z)
w.wegpunkt = New wegpunkt
w\pivot = CreatePivot()
PositionEntity(w\pivot,x,y,z)
w\vorgaenger = last_wegpunkt
If last_wegpunkt <> Null Then
last_wegpunkt\nachfolger = w
Else
First_wegpunkt = w
EndIf
last_wegpunkt = w
Return w
End Function

Function Get_Next_Wegpunkt(Zug.zugtype) ; Gehe davon aus das es ein feld W.wegpunkt gibt
If EntityDistance(zug\entity,zug\w\pivot) < KONSTANTE_MIT_MINIMALERDISTANZ
zug\w = zug\w\nachfolger
PointEntity(zug\enttity,zug\w\pivot)
EndIf
End Function


und eine Function mit der du per maus die wegpunkte setzen kannst, sollte nicht so schwer sein, wenn man die Hilfe durchsucht gibs da massig befehle (Die ich aber vergessen hab Very Happy müssten was in richtung camerpickmode, terrainx usw sein.)
Don't only practice your art,
but force your way into its secrets,
for it and knowledge
can raise human to divine

PhillipB

BeitragFr, Dez 31, 2010 15:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok soganz verstehe ich die wegpunkte aber nicht naja!
und wie soll ich jetz die kollis für die camera machen?

Ana

BeitragFr, Dez 31, 2010 15:37
Antworten mit Zitat
Benutzer-Profile anzeigen
soweit ich das sehen kann stimmt das schon so wie du es machst, und für die camera ist das auch okay wenn sie ein child vom zug ist oder so,


Und der Gedanke ist recht simpel.

Du setzt unsichtbare Dinger (Pivot) die eigentlich nichts haben außer einer Position und die sollen nach einander abgefahren werden, wenn du genug davon in eine Kurve packst, fällt auch nicht so auf, dass dein Zug nicht tatsächlich eine Kurve macht, sondern sich nur jedem Punkt zu dreht.
Das Ganze habe ich in einen Type verpackt der sich auch noch gleich merkt wer der Punkt vor und hinter ihm ist, damit falls der Zug die Minimaledistanze (Diese muss unbedingt größer als die halbe aktuelle Geschwindigkeit (Wobei Geschwindigkeit hier heißt Längeneinheiten pro Frame)sein) zu seinem aktuellen angesteuerten Wegpunkt erreicht hat, gleich den Nächsten übermittelt bekommen kann.

Edit: Eventuell solltest du meinen Code auch sorgsamer durch gehen, ich kenne deinen Wissensstand nicht, aber nach 4 Minuten sagen "Versteh ich nicht aber naja!" ist eine schwache Leistung
Don't only practice your art,
but force your way into its secrets,
for it and knowledge
can raise human to divine

PhillipB

BeitragSa, Jan 01, 2011 16:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Trotzdem würde ich gerne wissen wie ich das mit den Kollisionen hinbekomme villt. kann mir ja einer helfen!

Ana

BeitragSa, Jan 01, 2011 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
wie schon gesagt im grunde stimmt es schon was du gemacht hast, aber eventuell sind deine Schienen nicht hoch genug so das die bahn drüber rutschen kann
Don't only practice your art,
but force your way into its secrets,
for it and knowledge
can raise human to divine

PhillipB

BeitragSa, Jan 01, 2011 16:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe auch schon probiert die Bahn gegen die Wand zu fahren sie fährt einfach durch!

Ana

BeitragSa, Jan 01, 2011 17:17
Antworten mit Zitat
Benutzer-Profile anzeigen
updateworld verwendest du in der main schleife?
Don't only practice your art,
but force your way into its secrets,
for it and knowledge
can raise human to divine

PhillipB

BeitragSa, Jan 01, 2011 18:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja verwende ich!

Ana

BeitragSa, Jan 01, 2011 18:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Also das Stück Code was du gepostet hast ist richtig, der Fehler liegt woanders.
Don't only practice your art,
but force your way into its secrets,
for it and knowledge
can raise human to divine

PhillipB

BeitragSa, Jan 01, 2011 18:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Ana hat Folgendes geschrieben:
Also das Stück Code was du gepostet hast ist richtig, der Fehler liegt woanders.

Ok! Also ich finde nichts Crying or Very sad

Ana

BeitragSa, Jan 01, 2011 18:40
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn du magst kann ich mir mal den gesamten code anschauen, aber versprechen kann ich nichts.
Don't only practice your art,
but force your way into its secrets,
for it and knowledge
can raise human to divine

PhillipB

BeitragSa, Jan 01, 2011 19:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Via PM oder hier?

Ana

BeitragSa, Jan 01, 2011 19:50
Antworten mit Zitat
Benutzer-Profile anzeigen
PM denke ich wäre besser, so ein Code ist ja doch was intimes Wink
Don't only practice your art,
but force your way into its secrets,
for it and knowledge
can raise human to divine

BastianA

BeitragDo, Jan 06, 2011 16:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Ahoi und B2T,

der Zug soll ja in der Geschwindigkeit veränderbar sein;)

Den Code verstehe ich, wie man ein Pivot setzt auch, nur ich versteh nicht was genau dann für eine Kurve geschrieben werden muss?

Ich programmiere zwar schon länger mit B3D, habe auch Kollisionen und andere Spielerein (Türen, Verkehr) doch das checke ich nicht.

Ein Code hätte ich eig. schon, allerdings bräuchte ich einen, der mit Koordinaten funktioniert. Außerdem bräuchte ich eine Berechnungsmethode für den Radius.
Siehe aber den Thread:
https://www.blitzforum.de/foru...p;start=20

Mfg

Ana

BeitragDo, Jan 06, 2011 17:28
Antworten mit Zitat
Benutzer-Profile anzeigen
BastianA hat Folgendes geschrieben:
der Zug soll ja in der Geschwindigkeit veränderbar sein;)
Den Code verstehe ich [...]
Mfg


offenbar nicht, die Konstante muss nur größer sein als die je zu erreichende geschwindigkeit, kann aber auch durch eine Variable ersetz werden die ein bisschen weniger als die halbe geschwindigkeit beträgt, nur würd dann eventuell eher gedreht wenn der Zug schneller ist.

Wenn du wirklich die mathematisch Methode willst, lies dir mal am besten durch was Bogenmaß sind, ich glaube das würde dein Problem lösen.

Wenn du Anfang und Endpunkt einer Kurve mit konstantem Winkel hast, kannst du die beiden Senkrechten zu den Kurvenabschnitten des Anfangs/Endpunktes nehmen, ihren schnittpunkt bestimmen, den Winkel von ihm in Bogenmaß umrechen und mal Distanz des Schnittpunkt zu Anfang/Endpunkt nehmen und erhälst deinen gesuchten Radius, wenn ich mich nicht irre.
Don't only practice your art,
but force your way into its secrets,
for it and knowledge
can raise human to divine

BastianA

BeitragDo, Jan 06, 2011 21:07
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, aber genau das, es Geschwindigkeitsabhängig ist, will ich ja nicht. Ich werde einfach meinen eigenen Code etwas modifizieren, weil der Code ist nicht gerade sehr toll Wink

Ana

BeitragFr, Jan 07, 2011 1:43
Antworten mit Zitat
Benutzer-Profile anzeigen
in dem Fall musst du dir wohl einfach mal ein Mathebuch schnappen und es selber machen.

Ich kann dir nur die Annährung durch verschiedene Punkte und die Radius für konstante Kurven Methode sagen, mehr fällt mir nicht ein und die Abhänigkeit will ich ja gerade meiden durch die konstante nimm sie für 500 km/h und es ist unabhänig, wenn dein zug nie über 150 kommt oder so.

Viel erfolg wünsch ich
Don't only practice your art,
but force your way into its secrets,
for it and knowledge
can raise human to divine

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group