Türen Problem

Übersicht BlitzBasic Beginners-Corner

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.

PhillipB

Betreff: Türen Problem

BeitragMi, Apr 13, 2011 20:57
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Wink
mfg
PhillipB.

Dottakopf

BeitragMi, Apr 13, 2011 21:09
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Cool

~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´

BeitragMi, Apr 13, 2011 21:11
Antworten mit Zitat
Benutzer-Profile anzeigen
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 und einen konstanten x-Wert benutzt.
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.

Xeres

Moderator

BeitragMi, Apr 13, 2011 21:13
Antworten mit Zitat
Benutzer-Profile anzeigen
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
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

PhillipB

BeitragMi, Apr 13, 2011 21:19
Antworten mit Zitat
Benutzer-Profile anzeigen
@ Xeres : Das sind ja nur Zwischen speicher Wink
@ 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

BeitragMi, Apr 13, 2011 21:25
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, Apr 13, 2011 23:00
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Laughing

~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

BeitragDo, Apr 14, 2011 17:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja eher nicht.
Animationen kann ich nicht erstellen Confused .
Aber trotzdem danke.
Ich dachte ehr du hilfst mir mit der anderen Lösung aber naja.

BladeRunner

Moderator

BeitragDo, Apr 14, 2011 17:21
Antworten mit Zitat
Benutzer-Profile anzeigen
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

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group