Texturier problem!
Übersicht

![]() |
PhillipBBetreff: Texturier problem! |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo!
Ich habe mir eure beiträge zu herzen genonommen.Ich habe mal probiert eine Ampel zu erstellen doch die Ampel bekommt keine Textur! Ich habe das umschalten durch mehrere timer erziehlt,ich bekomme keine fehlermeldung aber auch keine Textur. Hier der gesamte Code:Code: [AUSKLAPPEN] Ampelmodel=LoadMesh("Signals\Ampel.3ds")
Ampel_rot=LoadTexture("Signals\rot.bmp") AmpelRot_Gelb=LoadTexture("Signals\Rot-Gelb.bmp") AmpelGrün=LoadTexture("Signals\Gruen.bmp") AmpelGelb=LoadTexture("Signals\Gelb.bmp") ;Ampelxy=LoadTexture("4.bmp") AmpelTimer1# =MilliSecs()+50000 ;Rot Phase AmpelTimer2# =MilliSecs()+500 ;Gelb(Mittel-) Phase AmpelTimer3# =MilliSecs()+50000 ;Grün Phase Ms=MilliSecs While Not KeyHit (1) If AmpelTimer1#< Ms And Ampel%=1 Then Ampel%=1.5 EndIf If AmpelTimer2#< Ms And Ampel%=1.5 Then Ampel%=2 EndIf If AmpelTimer3#< Ms And Ampel%= 2 Then Ampel%=3 EndIf If AmpelTimer2#< Ms And Ampel%= 3 Then Ampel%=1 EndIf If Ampel%= 1 Then EntityTexture Ampelmodel,Ampel_rot EndIf If Ampel%= 1.5 Then EntityTexture Ampelmodel,AmpelRot_Gelb EndIf If Ampel%= 2 Then EntityTexture Ampelmodel,AmpelGrün EndIf If Ampel%= 3 Then EntityTexture Ampelmodel,AmpelGelb EndIf Ich hoffe ihr hab das verstanden und könnt und wollt mir helfen! Mfg PhillipB. |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ampel%=1.5 -> Ampel ist ein Integer. Du versuchst aber einen Float zuzuweisen, das nur nebenbei. Nächster Fehler ist das Ms nicht aktualisiert wird. Du weißt ihm einmal vor der Hauptschleife einen Wert zu, da bleibts dann auch dabei. Insgesamt ist der Code auch recht wirr oder wie man es nennen mag, aber besser jetzt erstmal Deine Variablentypen (an vielen Stellen, der Hinweis oben ist nur beispielhaft) aus und bring den Timer in Ordnung, dann sehen wir weiter. | ||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich kann nicht glauben dass der Code keine Fehler generiert, denn du benutzt While ohne wend. | ||
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 |
Lapiz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich denke du hast einfach vergessen, wie Hubsi schon gesagt hat, den Timer zurückgesetzt.
Code: [AUSKLAPPEN] If AmpelTimer3#< Ms And Ampel%= 2 Then Ampel%=3 AmpelTimer3=Millisecs()+50000 MS=Millisecs() EndIf Aber ich würde es so machen, dass ich einen einzelnen Timer für alle Phasen mache: Code: [AUSKLAPPEN] Timer=MilliSecs()+5000
MS=MilliSecs() While Not KeyHit(1) If Timer < MS Ampel=Ampel+1 Timer=MilliSecs()+5000 MS=MilliSecs() Endif Flip Wend Dann kannst du wieder Ampel durchcheken und die Textur entsprechend zeichnen. Außerdem ist es so platzsparender. |
||
![]() |
PhillipB |
![]() Antworten mit Zitat ![]() |
---|---|---|
SRY des ist nur ein ausschnit abe ich vergessen unten steht bei mir immer Wend!
Ok aber ich will ja mehrere Phasen haben! Schon mal danke für eure Antworten. |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Darf ich dich ein letztes mal daran erinnern dass es sinnvoll ist KEINEN Ausschnitt zu posten sondern immer den kompletten Code. Wenn wir den Code nicht testen können wird es uns schwer fallen zu helfen, und wir werden rasch die Lust dran verlieren. Kannst Du Dir diese Kleinigkeit mal verinnerlichen bitte? | ||
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 |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
So kreist Du den Fehler ein:
1. Probiere zunächst, ob Deine Ampel überhaupt eine Textur annimmt: BlitzBasic: [AUSKLAPPEN] Ampelmodel=LoadMesh("Signals\Ampel.3ds") Wenn es hier schon hakt, stimmt etwas mit den Texturen oder mit dem Model nicht. 2. Probiere nun, ob Du die Textur wechseln kannst: BlitzBasic: [AUSKLAPPEN] Ampelmodel=LoadMesh("Signals\Ampel.3ds") Verwende keine Umlaute wie bei "AmpelGrün"! 3. Teste dann, ob der Timer läuft: BlitzBasic: [AUSKLAPPEN] AmpelTimer1# =MilliSecs()+5000 ;Rot Phase Es ist klüger nur einen Timer zu verwenden, der immer abläuft und dann einen Bereich betritt, in dem Du den akt. Zustand der Ampel abfragst: BlitzBasic: [AUSKLAPPEN] AmpelTimer =MilliSecs() |
||
![]() |
Dice of Darkness |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich finde diesen Ansatz ungünstig, mehrere Timer zu verwenden. Außerdem gibt es ein paar Sachen in deinem Code, die nicht so optimal sind:
![]() ![]() ![]() ![]() Code: [AUSKLAPPEN] Global Ms = MilliSecs()
aber das können wir ja nicht riechen. Auch deswegen nochmal mein Appell, lieber alles an Code zu posten. ![]() 1.) Die Ampel soll Rot sein, und zwar 50 Sekunden lang. ![]() ![]() 2.) In einem If-Block fragst du ab, in welcher Phase die Ampel gerade ist. Legen wir einfach mal fest, 1 steht für Rot, 2 für Rot-Gelb, 3 für Grün und 4 für Gelb. Was soll der If-Block bezwecken? - Nun, je nach Phase soll die Ampel eine unterschiedliche Textur bekommen. Und gleichzeitig legen wir auch noch fest, wie lang jede einzelne Phase dauern soll. Das sieht dann also in etwa so aus: Code: [AUSKLAPPEN] If phase = 1 Then
EntityTexture Ampelmodel,Ampel_rot phasenlaenge = MilliSecs() + 50000 ElseIf phase = 2 Then EntityTexture Ampelmodel,AmpelRot_Gelb phasenlaenge = MilliSecs() + 500 ElseIf phase = 3 Then EntityTexture Ampelmodel,AmpelGrün phasenlaenge = MillliSecs() + 50000 ElseIf phase = 4 Then EntityTexture Ampelmodel,AmpelGelb phasenlaenge = MilliSecs() + 500 EndIf 3.) Jetzt sollen sich die Phasen ja noch ändern. Dazu verwendest du einfach eine Schleife, z.B. While ![]() ![]() Code: [AUSKLAPPEN] While Not KeyHit(1) ;während nicht die Escapetaste gedrückt wurde
If phasenlaenge <= MilliSecs() Then ;sobald die (System-)Variable MilliSecs() so groß ist wie die phasenlaenge, also nach Ablaufen von x Sekunden If phase < 4 Then ;wenn die aktuelle Phase kleiner als 4 ist phase = phase + 1 Else ;sonst ist die vierte Phase erreicht und es geht wieder von vorne los, also bei Phase 1 phase = 1 EndIf EndIf Wend Ich hoffe, dass du den Code einigermaßen verstehen kannst und er auch bei dir funktionieren wird. Falls nicht, frage einfach nochmal nach (meinetwegen auch über PM), und lass dich nicht abschrecken, falls jemand meint "Mach die Tutorials" oder so ähnlich... Ich hab in den letzten Tagen hier so einiges gelesen, wo ich nur dachte, "mein Gott ihr tut ja so, als ob ihr nie Anfänger wart"... Mfg, Dice |
||
Gratis Spiele, Musik, Tools |
![]() |
PhillipB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe jetzt dein letztes Beispiel benutzt und noch Ampel = 1 eingefügt doch jetzt steht ampel immer auf 1 und 2! Und das unleserlich weil die Zahlen übereinander stehen!
Code: [AUSKLAPPEN] AmpelTimer =MilliSecs()
Ampel=1 While Not KeyHit (1) If AmpelTimer < MilliSecs() Then If Ampel=1 Then AmpelTimer=MilliSecs()+5000 Ampel=2 ElseIf Ampel=2 Then AmpelTimer=MilliSecs()+1000 Ampel=3 EndIf EndIf Text 100,100,Ampel Wend |
||
Lapiz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn die Zahlen übereinander stehen, hast du wahrscheinlich das CLS in der Mainloop vergessen. | ||
![]() |
PhillipB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Leider geht der code nicht die ampel wird immer noch nicht texturiert!
Ich habe an deinem code nur aus phase Ampelphase gemacht sonst 1 zu 1 übertragen! Ich hoffe ihr könnt mir helfen? P.S.:Es geht um Dice of Darkness code! |
||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oke, moment mal...
Nimm dir bitte mal n Glas Wasser dreh gute Musik auf und lehn dich zurück... und denke ein wenig nach was du tust. Du hast Dice of Darkness' Code übernommen und gleich ne Antwort geschrieben (die zumindest mal den Fehler beschreibt) - und das in weniger als einer Minute inklusive Verzögerungen durch das Internet. Sprich du hast null komma nix nachgedacht sondern nur kopiert ![]() EDIT: ok, sorry. Mein Vorwurf war nicht ganz so berechtigt. Wenn man deine Codefetzen genau vergleicht sinds ja doch die von Midimaster. Aber warum übernimmst du einfach den letzten Code? Warum hat Midimaster sich die Mühe gemacht dir die Schritte davor zu erklären? mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
PhillipB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja der geht ja nicht lese bitte meine Fehlerbeschreibung wenn cih sie schon schreibe ![]() |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
"der geht nicht...." ist eine sehr ungenaue Beschreibung. Poste bitte jedesmal die neueste Version deiner Codestelle dazu, damit wir wissen, was Du schon umgesetzt hast.
Ich hatte Dir drei Fragenstellung vorgestellt. Und dazu drei Code-Beispiele gepostet. Wie war das nun mit den 3 Beispielen? Welches hat funktioniert, welches nicht? Natürlich musst Du die Ampel wieder irgendwann von 4 auf 1 zurückstellen!!! Mein code war nicht zum Reinkopieren sondern zum Reinkapieren gedacht. Du musst ihn natürlich an deine Situation anpassen. BlitzBasic: [AUSKLAPPEN] AmpelTimer =MilliSecs() |
||
![]() |
PhillipB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die ampel wird leider immernochnicht texturiert!
Sons läd das programm Code: [AUSKLAPPEN] Graphics3D 1920,1080,32, 1
SetBuffer BackBuffer() ;Ampel Ampelmodel=LoadMesh("Signals\Ampel.3ds") Ampel_rot=LoadTexture("Signals\rot.bmp") AmpelRot_Gelb=LoadTexture("Signals\Rot-Gelb.bmp") AmpelGrün=LoadTexture("Signals\Gruen.bmp") AmpelGelb=LoadTexture("Signals\Gelb.bmp") If Ampel = 1 Then EntityTexture Ampelmodel,Ampel_rot ElseIf Ampel = 2 Then EntityTexture Ampelmodel,AmpelRot_Gelb ElseIf Ampel = 3 Then EntityTexture Ampelmodel,AmpelGrün ElseIf Ampel = 4 Then EntityTexture Ampelmodel,AmpelGelb EndIf While Not KeyHit (1) ;AMPEL If AmpelTimer < MilliSecs() Then If Ampel=1 Then AmpelTimer=MilliSecs()+5000 Ampel=2 ElseIf Ampel=2 Then AmpelTimer=MilliSecs()+1000 Ampel=3 ElseIf Ampel=3 Then AmpelTimer=MilliSecs()+5000 Ampel=4 ElseIf Ampel=4 Then AmpelTimer=MilliSecs()+1000 Ampel=1 EndIf EndIf Flip Wend End |
||
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ein kleiner Hinweis zum Selberfinden:
Wo wird die Ampel umtexturiert? Wo müsste sie umtexturiert werden? mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
- Zuletzt bearbeitet von mpmxyz am Mi, Feb 23, 2011 20:33, insgesamt einmal bearbeitet
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
RenderWorld![]() |
||
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 |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ohne Kamera wirst du nie was sehen... | ||
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 ![]() |
---|---|---|
Ich habe es auch in meinen code getest wie ich shcon sagte sie wird nich texturiert aber sons geht das programm!
Code: [AUSKLAPPEN] Graphics3D 1920,1080,32, 1
SetBuffer BackBuffer() ;Ampel Ampelmodel=LoadMesh("Signals\Ampel.3ds") Ampel_rot=LoadTexture("Signals\rot.bmp") AmpelRot_Gelb=LoadTexture("Signals\Rot-Gelb.bmp") AmpelGrün=LoadTexture("Signals\Gruen.bmp") AmpelGelb=LoadTexture("Signals\Gelb.bmp") While Not KeyHit (1) ;AMPEL If Ampel = 1 Then EntityTexture Ampelmodel,Ampel_rot ElseIf Ampel = 2 Then EntityTexture Ampelmodel,AmpelRot_Gelb ElseIf Ampel = 3 Then EntityTexture Ampelmodel,AmpelGrün ElseIf Ampel = 4 Then EntityTexture Ampelmodel,AmpelGelb EndIf If AmpelTimer < MilliSecs() Then If Ampel=1 Then AmpelTimer=MilliSecs()+5000 Ampel=2 ElseIf Ampel=2 Then AmpelTimer=MilliSecs()+1000 Ampel=3 ElseIf Ampel=3 Then AmpelTimer=MilliSecs()+5000 Ampel=4 ElseIf Ampel=4 Then AmpelTimer=MilliSecs()+1000 Ampel=1 EndIf EndIf RenderWorld Flip Wend End |
||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
CreateCamera![]() ![]() |
||
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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group