Kollisionen
Übersicht

![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
also dann hoch mit ihm:
BlitzBasic: [AUSKLAPPEN] MoveEntity RealBus,0,1,0 ..also ein positiver y-Wert...oder vieleicht sogar hoch höher... experimentiere! Ein Pivot verhält sich jetzt wieder komplett anders als das echte 3D-Model. Daher kann nun auch das Fallen aus 6 ode aus 3 schon funktionieren. BlitzBasic: [AUSKLAPPEN] ;********************************************* Experimentiere! |
||
![]() |
PhillipB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ah ok ich habs jetzt so Code: [AUSKLAPPEN] MoveEntity RealBus,0,11,0 ; Bus innerhalb des Pivot verschieben
Nur jetzt schwebt die 1 achse immer wenn man runter fährt wie könnte man das lösen? Das model in der 3d verschieben oder gibt es irgent einen trick für beide achsen? |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du erstellst zwei neue Pivots, die als Sensoren funktionieren. Sie sind Kinder des Hauptpivots, aber nach jeweils bis zur Achse vorne und hinten verschoben.
Zum besseren Verständnis machst du diese Sensoren während der Testphase sichtbar, indem Du keine Pivots, sondern Spheres erstellst und den 3D-Bus komplett ausblendest (z.b. 100 Einheiten nach oben setzen) Du kannst jetzt den Abstand dieser Pivots zum Boden berechnen und dann den Hauptpivot solange neigen, bis die beiden Sensoren in etwa den erwünschten Soll-Wert "Achse->Boden" melden. |
||
![]() |
PhillipB |
![]() Antworten mit Zitat ![]() |
---|---|---|
meinst du so? doch die Achse1 fällt nie auf den Boden!
Code: [AUSKLAPPEN] O405=CreatePivot()
PositionEntity O405, 0,12,0 EntityType O405, 1 RealBus=LoadMesh("O405\O405.3ds") EntityParent RealBus,O405 MoveEntity RealBus,0,11,0 ; Bus innerhalb des Pivot verschieben Achse2=CreateCube(O405) EntityType Achse2, 1 Achse1=CreateCube(O405) MoveEntity Achse2, 0, -Gravi#,0 EntityType Achse1, 1 PositionEntity Achse1, 0,0,5.86 MoveEntity Achse1, 0, -Gravi#,0 Ich hoffe du kannst mir noch weiter helfen |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
hier mal ein kleines Beispiel:
BlitzBasic: [AUSKLAPPEN] ; Collisions Example Fahrzeug auf Berg-/Tal-Strecke #Nachtrag.... so jetzt noch die Erklärung, gestern Nacht um halb drei war ich einfach zu müde.... Also, wenn du dir das "Fahrzeug" in dem Beispiel ansiehst, bemerkst Du die beiden roten "Sensoren". Sie wurden als Child des Pivot vorn und hinten angebracht: BlitzBasic: [AUSKLAPPEN] Sensor1=CreateSphere(8,Sphere) Das Pivot wird gefahren und gedreht, so kann es je nach Straßenverlauf nach vorne oder hinten kippen. Solange dreh#=0 dreht sich gar nix: BlitzBasic: [AUSKLAPPEN] speed#=.1 Jetzt fällt das Pivot Richtung Erde. Das geschieht jetzt nicht mehr mit MoveEntity, sondern mit TranslateEntity, damit es auch dann senkrecht nach unter gezogen wird, wenn es auf einer 45° Straße fährt. in diesem Fall würde ein MoveEntity es ja senkrecht zur Straße absenken. Durch das Translate sind jetzt möglicherweise Kollisionen aufgetreten. Dies hat dazu geführt, dass die Sensoren nicht komplett mit dem Pivot mitverschoben wurden. Da sie sich genau 0.2 in Y-Richtung unter dem Pivot befinden sollten, muss ich nun nur noch vergleichen, ob sie noch 0.2 weit weg sind. Wenn nein, dann hat eine Kollision stattgefunden: BlitzBasic: [AUSKLAPPEN] HinterY#=0.2+EntityY(Sensor1) Dabei gibt es drei Fälle für mögliche Kollisionen: - vorn und hinten gleichzeitig - nur vorne - nur hinter War es nur auf einer Seite, dann deshalb, weil das Pivot nicht parallel zur Straße steht. Deshalb wird jetzt gedreht. In einem letzten Schritt wird der Fall des Pivot zurückgenommen, die Fallgeschwindigkeit auf ein Minimum reduziert und die Sensoren wieder in Ihre Ausgangsposition gebracht. BlitzBasic: [AUSKLAPPEN] TranslateEntity sphere, 0,AntiSpeed,0 Die Welt muss nochmal neu berechnet werden, dann kommt das Rendern. Da bei der nächsten Runde speed# viel kleiner ist, wird es nun viel vorsichtiger auf die Straße gesetzt. So pegelt sich langsam ein stabiler Abstand ein. |
||
![]() |
PhillipB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also vielen dank für dein Tut aber ich komme jetzt ziemlich durch einander!
Weil ich verstehe nicht wie ich das dann mit der Drehung hinkriegen soll! Weil die drehung ist ja konztant bei dir! Wie könnte ich das jetzt verändern das es zu meinem code past. Trotzdem vielen dank für deine Mühe! |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
wie meinst Du das mit "konstant"? Die Drehung ist die meiste Zeit=0. Bei mir pegelt sich der Bus nach ein paar Sekunden ein.
Wo sollte jetzt das Problem liegen, diese Idee in Deinen Code zu integrieren? Das Pivot hast Du doch schon, fehlen nur die 2 Sensoren. Beim Pivot schaltest Du die Kollisonserkennung aus und dafür bei den Sensoren an. Dann heißt es wieder mal in Experimenten die richtigen Werte finden: -Tiefe (Y) der Sensoren im Pivot -mind. Fallhöhe des Pivots -ev. neue Position des 3D Models im Pivot. -speed# -dreh# das alles musst du experimentell bestimmen. |
||
![]() |
Sir Gauss der III |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ Midimaster
wäre es nicht einfacher für PhillipB wenn beide Punkte an ihrer Position bis zur Collision nach unten bewegt werden, der Winkel zwischen ihnen mit VectorPitch ausgelesen wird und dann der Bus entsprechend gedreht wird? so hatte ich das Prob damals gelöst. Ich frag nur deshalb da ich mal das Programmchen getestet hab und es recht wacklig wirkte. hab aber nicht näher rein geschaut in den Code, muss ich zugeben. |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich bleibe ja weiter dabei dass es einfacher für Phillipb wäre das Programmieren an einem wesentlich unkomplizierteren Beispiel zu erlernen bevor er sein Busspiel machen will (nach alledem was er bislang Preis gegeben hat leidet er nämlich an dem häufigsten aller HobbyprogrammiererSyndrome: Er überschätzt masslos was er -derzeit- leisten kann.)
Bevor er nicht Grundlegend in der Lage ist einen Programmablauf zu verstehen ist es - man verzeihe mir die deutliche Wortwahl - Perlen vor die Säue ihm anhand eines solchen Beispieles was beibringen zu wollen. Denn wie man ja anhand seiner Antworten ersehen kann versteht er es nicht wirklich und ist weiter darauf bedacht alles per Copy und Paste in seinen Code einzufügen. Ich schätze deinen Hilfewillen wirklich sehr, Midimaster, aber ich glaube fest daran dass Deine Hilfe erst fruchten wird wenn PhillipB sich mal am Riemen reisst und ein paar Wochen in die Basics investiert. Solange er nicht mal die grundlegenden Kontrollstrukturen beherrscht kannst du ihm viel von Pivots und Gravitation erzählen, es wird nichts bringen. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Cedric30003 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also jetzt will ich mich hier mal zu Wort melden:
Vorab: mir ist es jetzt auch egal wenn ich dafür rausfliege. @BladeRunner: Ich habe irgendwie das Gefühl dass du auf gut Deutsch gesagt denkst (Sorry für die Wortwahl, passt aber am besten) Ich bin gut, alle anderen sind scheiße, die könnens doch eh nicht. solllen die doch einfachere sachen machen So kommt mir das hier vor! Und @midimaster: Dein Beitrag zum Thema Man kann es auch an einem BusSpiel lernen finde ich sehr richtig! Wenn man es nicht zusammenhängend erklärt, verstehen die meisten es auch nciht. Das wäre so als ob du schreiben ohne stift lernen sollst. Ich habe BlitzBasic (soweit ich es shcon kann) auch während der Programmerstellung gelernt. So, dass musste jetzt sein. gez.: Cedric |
||
![]() |
BlitzMoritz |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Cedric 30003: Deine unbeherrschte Reaktion bringt für PhillipB nichts, für Midimaster nichts und für Bladerunner auch nichts. Kläre persönliche Differenzen auf Wunsch per PN.
Bladerunner öffentlich persönliche Überheblichkeit vorzuwerfen, geht doch an der Sache vorbei. Er und andere müssen ein gewisses "Jammerspiel" bereits seit längerem ertragen, außerdem bemüht er sich (im Gegensatz zu den "Worten", die du ihm unterschiebst) um höfliche, aber klare und sachlich-vernünftige Formulierungen. Wenn Midimaster seinen (auch in meinen Augen irgendwie nicht mehr nachvollziehbaren) pädagogischen Eifer gleichsam missionarisch ausleben will, ist das seine Sache und sicherlich sehr ehrenwert. Bladerunners Zweifel sind aber ebenso nachvollziehbar und in gewisser Weise ebenso pädagogisch inspiriert, wenn man 'mal genauer nachdenkt. Irgendwie geht es nicht an, dass sich ein Mod in seinem Einsatz um das Niveau des Forums für jeden etwas härteren Besenstrich rechtfertigen soll, mit dem er hier "saubermachen" will. |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Cedric, mir geht es hier nicht drum ob ich besser oder schlechter bin als andere. Es ist meine Aufgabe hier in dem Laden Ordnung zu halten. Und mir fällt einfach auch dass Phillip eine Menge Fragen stellt, deren Antwort er sich aus einem einfachen Grund nicht selbst geben kann: weil er nicht genug Grundwissen hat um solche Themen schon zu bearbeiten.
Für mich ist die Konsequenz eine ganz einfache: Ich rate ihm eben dieses Grundwissen zu erwerben. Das würde auch das Forum von einer Menge Traffic und einige Nutzer hier von viel (derzeit leider sinnfreier) Arbeit entlasten. Es bringt eben nix, PhillipB Pivots zu erklären wenn er (und das erkennt man an seinem Code noch sehr deutlich) noch schwere Probleme damit hat überhaupt Abfragen und Schleifen zu realisieren. Ich glaube einfach fest daran dass es ihm gut tun würde anfands kleinere Brötchen zu backen. Auf 3D zu verzichten und erstmal die grundlegenden Befehle so sicher zu verstehen, dass er sie auch sinnvoll nutzen kann. Wenn bei Dir der Eindruck entsteht, ich wollte mich auf Kosten von Anfängern profilieren tut mir das leid, denn das ist sicher nicht meine Intention. Ich versuche nur zu helfen und dabei eine gewisse Ökonomie einzuhalten. Und wie an anderer Stelle schonmal erklärt bin ich was PhillipB angeht schon ein wenig ruppiger, weil er bislang alle Ratschläge ignoriert hat und einfach weiter die Copy&PasteNummer durchzieht. Mit der lernt er aber nichts und stiehlt im Endeffekt einigen hier die Zeit. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Jumper |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ganau so ist es!
Das wird noch eine Weile so weitergehen mit den Grundsatztfragen und irgendwann schmeißt Phillip die Programmiererei hin, weil er von dem kopierten Code absolut nichts versteht und den Überblick über das eigene Programm verliert, was jetzt nicht abfällig klingen soll! Das nützt keinen was: Phillip gibt frustriert ein ansich schönes Hobby auf, und das Forum hat einen User weniger. Viel besser wäre es doch sich zunächst an etwas leicherem zu üben: ein Breakout, ein Asteroids oder ein simples Pong, und auf 3D zunächst ganz zu verzichten. Dabei lernt er automatisch die Grundlagen der Programmierung und fördert das logische Denken für einen sinnvollen Programmaufbau. Wenn das klappt, hat man ein Erfolgserlebinis, was zum Weitermachen motiviert. Danach kann er immer noch sein Lieblingsspiel in 3D machen, was selbst bei der Beherrschung der Grundlagen noch schwer genug wird. Aber dann wird Phillip eher verstehen was man ihn versucht zu erklären. |
||
![]() |
PhillipB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was soll den das jetz es wird gesagt hör auf dann mach was einfacheres ich hab doch jetz garnix mehr gesagt! Außerdem verstehe ich die cods außer momentan den von Midnaster nicht!
Und ich finde es eine frechheit wie hier die Leute heruntergezogen werden. Viele denken hier wie auch cedric sagt alle zu übermächtig. Ich errinere "ihr wart auch mal anfänger". Ich habe auch schon eine menge selbst geschrieben,ich habe mich an codes versucht etc. vieles heraus gefunden nur halt bei diesem thema was ich shcon eine lange zeit verfolge halt noch nicht den grundsatz der kollis habe ich ja verstanden nur halt das mit der verlagerung bzw. drehung nicht aber wer weiß villt. kriege ich es ja noch hin. Bis dann. und viel spaß beim proggen oder herunter ziehen anderer leute. (MFG) PhillipB. P.S.:Es gibt aber auch noch nette unter euch die ich jetzt hier nich nennen kann aber die anderen wissen schon wen ich meine und wen nicht! |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Phillip, ja ich war auch mal Anfänger. Und ich bin meinen Weg gegangen. Aber ich habe laufen gelernt bevor ich rennen wollte. Zumindest hab ich das Rennen nur im stillen Kämmerchen versucht ![]() Als ich Programmieren lernte gab es noch keine Internetforen dazu, weil es simpel noch kein Internet gab, und ich habe es trotzdem gelernt. Fehler um Fehler haben mich weitergebracht. Bei Dir vermisse ich dieses Fehler machen und selbst korrigieren ein wenig. Du kommst mit deinen zu hoch gegriffenen Plänen her, fragst, verstehst die Antwort nicht und fragst weiter, ohne dass dir eine der Antworten was nützt. Ich wiederhole mich mal wieder: ich will Dich nicht runterziehen. Ich empfehle Dir nur deutlich erstmal kleiner zu denken. Edit: und ich wüsste nicht was daran verwerflich wäre dass Du die Leute nennst von denen Du dir geholfen fühlst. Auch wenn ich da wieder anmerken muss dass ich mal schätze es ist die Fraktion von der Du bislang am problemlosesten Code kopieren konntest. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
- Zuletzt bearbeitet von BladeRunner am Do, März 03, 2011 20:39, insgesamt 2-mal bearbeitet
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Na ja. Wir haben mit 2D-Spielen angefangen, mit Schleifen, Abfragen und Variablen, nicht mit Kollisionen und realistischen Wettereffekten. | ||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
Jumper |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
PhillipB hat Folgendes geschrieben: und viel spaß beim proggen oder herunter ziehen anderer leute.
Das siehst Du völlig verkehrt! Keiner hat behauptet das Du das Programmieren nicht schaffen könntest. Nur wirst Du Deine gesetzten Ziele nicht erreichen, was ganz eindeutig aus Deinen Fragen hervor geht. Meine ehrliche Meinung habe ich dazu gesagt, ohne Dich runterziehen zu wollen. Aber das willst Du scheinbar nicht verstehen ![]() Ich habe genau wie Bladerunner das Programmieren erlernt, als es noch kein Internet gab. Das war 1984, und natürlich waren die Ziele nicht so hoch gesteckt, und meine ersten Programme waren aus heutiger Sicht einfach schrecklich. Aber das man überhaupt was hinbekommen hat, motivierte zum Weitermachen. Nicht zuletzt darum bin ich auch nach 27 Jahren noch mit Spaß dabei. Wer weiß was geworden wäre, hätte ich meine Ziele damals auch zu hoch gesteckt. Vermutlich wäre mein Hobby dann jetzt ein anderes. Es ist absolut nicht böse gemeint, wenn Dir mehrere User raten zunächst mit 2D zu beginnen, sondern eher ein gut gemeinter Rat. Denke mal in Ruhe darüber nach. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group