Türen Problem
Übersicht

![]() |
PhillipBBetreff: Türen Problem |
![]() Antworten mit Zitat ![]() |
---|---|---|
hallo, ich habe mal wieder ein Problem un hoffe ihr könnt mir dabei helfen.
Undzwar probiere ich Türen zu programmieren. Zuerst gehen sie nach vorne und dann zur seite. Was mache ich falsch die Tür bewegt sich immerweiter und auch die achsen sind irgentwie falsch. Obwohl ich zuerst x und dann y gemacht habe. Die werte habe ich mit Anim8or ausgerechnet. Code: [AUSKLAPPEN] Graphics3D 640,480,16,2
SetBuffer BackBuffer() cam1=CreateCamera() PositionEntity cam1,0,5,-5 TurnEntity cam1,45,0,0 tram = LoadAnimMesh ("tram.3ds") d1_1 = FindChild (tram,"d1_1") Global tuer1_status# = 0 Global Tuertimer = CreateTimer (60) Global tuer1_1_x# = 0 Global tuer1_1_y# = 0 While Not KeyHit(1) Include "Kamera.bb" MilliSecs () MoveEntity d1_1 ,tuer1_1_x,tuer1_1_y,0 If KeyDown (46) And tuer1_status = 0 Then tuer1_status = 1.5 EndIf If tuer1_status = 1.5 Then tuer1_1_x = tuer1_1_x + 0.001 EndIf If tuer1_1_x > 0.011 And tuer1_status = 1.5 Then tuer1_1_x = 0.111 tuer1_status = 1.6 EndIf If tuer1_status = 1.6 Then If tuer1_1_y = 0 tuer1_1_y = tuer1_1_y + 0.001 ElseIf tuer1_1_y > 0.0091 Then tuer1_1_y = 0.0091 tuer1_status# = 2 Tuertimer = MilliSecs() + 8000 EndIf EndIf ;DebugLog tuer1_status DebugLog tuer1_1_x UpdateWorld RenderWorld Flip Wend End Hier ein Download damit man es besser versteht http://buswelt2.bu.funpic.de/Tram.3ds Vielen Dank im Voraus ![]() mfg PhillipB. |
||
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
ich hab deinen code überflogen und mir ist das aufgefallen: Code: [AUSKLAPPEN] Millisecs() was soll das bezwecken ?? .... Code: [AUSKLAPPEN] include Kamera... Was zum geier ^^... includes gehören NICHT in eine LOOP. öffne einmal deine include ganz am anfang des Projekts und gut is zudem hast du in deiner Mainloop ein Moventity drin. mit werten die nie auf 0 zurückgesetzt werden --> Darum hört die tür auch ncith auf davon zu fliegen... Ich schlage dir 2 lösungsmöglichkeiten vor: 1. Die schnellste und einfachste varriante ist, das du die Tür bewegung in deinem Modeller als Animation speicherst,.. welche beim öffen vorwärts... und beim schließen wieder rückwärts abgespielt wird... Als Modus "nur 1mal abspielen" Siehe dazu in unserer Hilfe unter "Animation" und seine parameter. Klarer Vorteil: Nur 1mal ne tür machen(nix mehr coden), Positionieren, ein Funktion auf Distanz zwischen spieler und tür basteln und tadaaaa du kannst türen setzten wie du gerade lustig bist ohne noch denken zu müssen --> cool 2. Erstelle 2 Pivots. Der erste legt fest wie weit die tür sich "nach vorne" bewegt" und der zweite definiert wie weit "sie zur seite geht" --> lass nun mit hilfe von Entitydistanz und co.. die tür bis zum ersten pivot gleiten. --> Sobald pivot 1 erreicht. lass diese zum Pivot 2 gleiten. Dies hat im Vergleich zur ersten Möglichkeit den Vorteil, dass du bei jeder tür selbst definieren kannst wie sch die tür bewegen soll. Hardgecodete Türen so wie du es machst, sind nicht dynamisch genug... sprich kacke ![]() ~EDIT~ erstelle gleich nach Graphics() 800,600.... einen Timer Code: [AUSKLAPPEN] FPStimer = createtimer( 60 ) und in der loop lässt du dein Spiel über den timer Zeitlich steuern. Nur so läuft dein Spiel überall gleich Code: [AUSKLAPPEN] Repeat cls waittimer(FPStimer) ;irgendwelche funktionen Updateworld() Renderworld() Flip 0 Unitl Keyhit(1) Bitte setze als Paramater zu Flip noch die "0"... Somit wird die 60 FPS Grenze aufgehoben... Flip 0 IMMER in verbindung mit einem Timer.. sonst.. gehts ab wie schnitzel xD Gruß Dottakopf |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
- Zuletzt bearbeitet von Dottakopf am Mi, Apr 13, 2011 21:22, insgesamt 5-mal bearbeitet
![]() |
Johannes´ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich kann mir zwar nicht vorstellen, wozu du die y-Achse zur Seitwärtsbewegung brauchst, aber schauen wir den Code an. Du erhöhst den x Wert der Tür für kurze Zeit. Dass sich danach die Tür noch bewegt ist nicht weiter erstaunlich, da du ja Moveentity![]() Für den y-Wert prüfst du, ob er gleich null ist, dann vergrößerst du ihn. Im Folgendem wird der y-Wert nicht mehr erhöht, da der größer als null ist. |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] If tuer1_status = 1.5 Then Keine gute Idee, denn 1.5 != 1.499999. Floats nie auf Gleichheit prüfen.
|
||
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) |
![]() |
PhillipB |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ Xeres : Das sind ja nur Zwischen speicher ![]() @ Dottakopf: gute idee.Gibt es einen Beispiel code dafür? Entitydistanz und co.. . Was außer Entitydistanz brauche ich denn dafür noch? Danke für die schnellen Antworten. mfg |
||
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: @ Dottakopf: gute idee.Gibt es einen Beispiel code dafür? Entitydistanz und co.. . ah ich liebe diese Sätze, vorallem da sie im Forum so "gut" ankommen. Nungut die Anwort auf deine Frage: Code: [AUSKLAPPEN] "Ja es gibt Beispiele dafür..."
.... da postet man ne allround lösung, etz muss man ihnen noch das coden abnehmen Gruß Dottakopf |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ach... weil mir gerade so langweilig ist, und ich das auch in mein aktuelles Projekt mit einbinden möchte.
(und ich den code für die Tür mitsammt modelln fertig habe) geb ich heute noch ein kleines Tutorial mit Sourcen Frei.... Bin nur noch am überlegen ob ich es auch gleich mit Types zeige... naja die reine funktionsweise wird gleich bzw. Später noch in einem Tut zu sehen geben. dein Glückstag ![]() ~Edit~ So es ist jetzt 23:54.. also bin ich heut damit tatsächlich noch komplett fertig geworden. Hier wird Ihnen geholfen : https://www.blitzforum.de/foru...950#387950 |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
![]() |
PhillipB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja eher nicht.
Animationen kann ich nicht erstellen ![]() Aber trotzdem danke. Ich dachte ehr du hilfst mir mit der anderen Lösung aber naja. |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Er hilft dir, investiert seine Zeit für dich, obwohl du bislang nicht wirklich durch Eigenleistung glänzt und dann MOTZT du auch noch?
~GESCHLOSSEN~ Es reicht. Lern es selbst. |
||
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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group