Brauche hilfe bei Tutorial Code
Übersicht

mevsmpBetreff: Brauche hilfe bei Tutorial Code |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Sry das ich das wieder hervorhole, jedoch hab ich ein Problem mit diesem Code:
wenn ich in der Hauptschleife (game_haupt) ein Model lade und es anzeige, und dann ins Menü oder in die Pause gehe, dann wieder zurück ins game, dann hab ich plötzlich 2x Models!! Also jedesmal wenn er wieder in die Hauptschleife geht, wird das Model nochmal geladen und angezeigt. Das gleiche gilt auch für lights....... Hab schon zig Methoden ausprobiert um diesen Problem zu lösen, nichts hat geklappt.. ![]() ![]() Oder muss ich das Model in einem anderem Abschnitt laden? Nur wo? Hier nochmal der Code vom Tutorial: Code: [AUSKLAPPEN] Graphics 1024,768,16,2
SetBuffer BackBuffer() SetFont(LoadFont("Comic Sans MS",30,1)) Const game_pause = 1 Const game_menue = 2 Const game_haupt = 3 Const game_over = 4 Global game_zustand = game_menue ;Wichtig. Hauptschleife. Hier wird das ganze Spiel verwaltet. Repeat Select game_zustand Case game_menue GameMenue() Case game_haupt GameHaupt() Case game_pause GamePause() End Select Until game_zustand = game_over End Function GameMenue() Local temp_zustand = game_zustand FlushMouse() FlushKeys() Repeat ClsColor 0,0,0 Cls Color 0,0,255 Text GraphicsWidth()/2,100,"ICH BIN DAS MENUE!!!",1,1 Color 255,255,255 Text GraphicsWidth()/2,400,"START" Color 255,255,255 Text GraphicsWidth()/2,500,"ENDE" If MouseHit(1) If RectsOverlap(MouseX(),MouseY(),1,1,GraphicsWidth()/2,400,StringWidth("START"),StringHeight("START")) game_zustand = game_haupt ElseIf RectsOverlap(MouseX(),MouseY(),1,1,GraphicsWidth()/2,500,StringWidth("ENDE"),StringHeight("ENDE")) game_zustand = game_over EndIf EndIf If KeyHit(1) End EndIf Flip Until game_zustand<>temp_zustand End Function Function GameHaupt() Local temp_zustand = game_zustand Local x = GraphicsWidth()/2 Local y = GraphicsHeight()/2 Local h = 0 FlushKeys() FlushMouse() Repeat ClsColor 200,200,200 Cls h = (h+1) Mod 360 Color 0,0,255 Text x+Sin(h)*50,y-Cos(h)*100,"ICH BIN DAS SPIEL!! Escape Taste für Menue/Space für Pause",1,1 If KeyHit(57) game_zustand = game_pause EndIf If KeyHit(1) game_zustand = game_menue EndIf Flip Until game_zustand<>temp_zustand End Function Function GamePause() Local temp_zustand = game_zustand FlushKeys() FlushMouse() Repeat ClsColor 255,0,0 Cls Color 0,0,255 Text GraphicsWidth()/2,GraphicsHeight()/2,"ICH BIN DIE PAUSE!!!",1,1 If KeyHit(57) game_zustand = game_haupt EndIf Flip Until game_zustand<>temp_zustand End Function |
||
![]() |
Chester |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich nehme an, du hast hast die LadeRoutine in der Function GameHaupt() reingesteckt, allerdings wird die Function, ja immer wieder neu geladen, wenn man die Pause verlässt. Deshalb mach ma die LadeRoutinen außerhalt der MainLoop. | ||
dark19Gast |
![]() Antworten mit Zitat |
|
---|---|---|
Ich seh da nix von Models geschweige denn von irgetwelchen 3d Funktionen | ||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] PSEUDOCODE:
Wenn Modellgeladenvariable gleich null ,dann lademodell und setze Modellgeladenvariable auf eins.... Kann man auch in eine Funktion packen. |
||
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 |
mevsmp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
HI, danke schonmal für euren hilfe, aber einiges ist mir noch net ganz klar geworden:
@Chester: Ja genau. In GameHaupt. Aber wenn ich die LadeRoutine wo anders hinpacke, kommt immer eien Meldung das die Variable zB drache=loadMD2 nicht existiert. Wohin soll ich sie denn dann hinpacken?? @dark19: in diesem Code sind keine md2, weil das das Original von einem Tutorial ist. Ich hab meins natürlich verändert. @BladeRunner: "Wenn Modellgeladenvariable gleich null ,dann lademodell und setze Modellgeladenvariable auf eins...." Das Prinzip habe ich verstanden und auch schon ausprobiert. Aber mit welchen Befehlen genau soll ich das machen? Oder wie stellst du dir das vor? |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Chester: Du musst die variable global definieren bevor du die funktion aufrufst. dann ist das kein problem | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
mevsmp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Kann denn keiner mal was konkretes sagen???
Vielleicht mit Beispiel????????? please mfg mevsmp |
||
![]() |
Chester |
![]() Antworten mit Zitat ![]() |
---|---|---|
Na du musst das machen, was Dreamora gesagt hatte, wenn du die Sachen außerhalb der MainLoop ladest musst du sie Global definieren, also gant einfach Global vor die Variable schreiben. | ||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Im Prinzip musst Du meinen PseudoCode nur eins zu eins in BASIC übersetzen. Daher glaube ich nicht dass Du das Prinzip verstanden hast. | ||
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