Gültigkeitsbereiche Fehler
Übersicht

![]() |
Raiden93Betreff: Gültigkeitsbereiche Fehler |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey,
ich wollte zum test mal meine Locale Variable Punkte, Punkte addieren sobald ein Wert von meiner Tilemap > 0 ist. Doch irgendwie kriege ich keine Punkte, ich habe auch schon versucht das Punkte = Punkte +1 nur in die Punkte_Zeichnen (Punkte) Funktion zu Packen. Doch auch da gab es keine Wert veränderung :/ Code: [AUSKLAPPEN] ; ####################
; Blopp it! ; #################### AppTitle "Bloop it - Alpha 0.1" Graphics 800,600,32,2 SetBuffer BackBuffer () Global FPS_Timer = CreateTimer (60) ; Daten Laden Global gfx_spiel_background = LoadImage ("gfx/spiel/hintergrund/spiel_background.png") Global gfx_spiel_ball_blau = LoadAnimImage ("gfx/spiel/bälle/spiel_bälle.png",50,50,0,5) ; Transparent MaskImage gfx_spiel_ball_blau,255,0,255 ; Schriftart Laden Global schrift_ComicSansMS = LoadFont("Impact",40) ; TileMap initialisieren Dim Map(4,8) Data 0,1,0,0,0 Data 0,0,0,0,0 Data 0,0,0,0,0 Data 0,0,0,0,0 Data 0,0,0,0,0 Data 0,0,0,0,0 Data 0,0,0,0,0 Data 0,0,0,0,0 Data 0,0,0,0,0 For y=0 To 8 For x=0 To 4 Read Map (x,y) Next Next ; Game Loop Repeat Cls ; Variablen Local Modus = 2 Local Punkte = 0 Local Level = 1 Select Modus ;Hauptmenü Case 1 ;Spiel Case 2 DrawImage gfx_spiel_background,0,0 Punkte_Ausgeben (Punkte) Level_Ausgeben (Level) Kugeln_Zeichnen (Punkte) End Select Flip (0) WaitTimer (FPS_Timer) Until KeyHit (1) ; Punkte Ausgeben Function Punkte_Ausgeben (Punkte) SetFont schrift_ComicSansMS Color 0,0,0 Text 540,58,Punkte End Function ; Level Ausgeben Function Level_Ausgeben (Level) SetFont schrift_ComicSansMS Color 0,0,0 Text 666,148,Level End Function ; Kugeln Zeichnen Function Kugeln_Zeichnen (Punkte) For y=0 To 8 For x=0 To 4 If Map(x,y) > 0 DrawImage gfx_spiel_ball_blau,((x*51)+44),((y*51)+78),Map(x,y) Punkte = Punkte +1 ;<--------- Help :P End If Next Next Return Punkte End Function |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du solltest dir vielleicht angewöhnen, die Parameter nicht exakt so zu nennen wie die Variable. Kugeln_Zeichnen gibt zwar Punkte zurück, aber diesen wert speicherst du nicht.
Code: [AUSKLAPPEN] Punkte = Kugeln_Zeichnen (Punkte)
|
||
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) |
![]() |
Raiden93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich glaube ich habe es so gemacht wie du es mir vorgeschlagen hast^^ aber irgendwie bleibt Punkte weiterhin 0.
Code: [AUSKLAPPEN] ; ####################
; Blopp it! ; #################### AppTitle "Bloop it - Alpha 0.1" Graphics 800,600,32,2 SetBuffer BackBuffer () Global FPS_Timer = CreateTimer (60) ; Daten Laden Global gfx_spiel_background = LoadImage ("gfx/spiel/hintergrund/spiel_background.png") Global gfx_spiel_ball_blau = LoadAnimImage ("gfx/spiel/bälle/spiel_bälle.png",50,50,0,5) ; Transparent MaskImage gfx_spiel_ball_blau,255,0,255 ; Schriftart Laden Global schrift_ComicSansMS = LoadFont("Impact",40) ; TileMap initialisieren Dim Map(4,8) Data 0,1,0,0,0 Data 0,0,0,0,0 Data 0,0,0,0,0 Data 0,0,0,0,0 Data 0,0,0,0,0 Data 0,0,0,0,0 Data 0,0,0,0,0 Data 0,0,0,0,0 Data 0,0,0,0,0 For y=0 To 8 For x=0 To 4 Read Map (x,y) Next Next ; Game Loop Repeat Cls ; Variablen Local Modus = 2 Local Punkte = 0 Local Level = 1 Select Modus ;Hauptmenü Case 1 ;Spiel Case 2 DrawImage gfx_spiel_background,0,0 Punkte_Ausgeben (Punkte) Level_Ausgeben (Level) Punkte = Kugeln_Zeichnen (Punkte) End Select Flip (0) WaitTimer (FPS_Timer) Until KeyHit (1) ; Punkte Ausgeben Function Punkte_Ausgeben (Punkte) SetFont schrift_ComicSansMS Color 0,0,0 Text 540,58,Punkte End Function ; Level Ausgeben Function Level_Ausgeben (Level) SetFont schrift_ComicSansMS Color 0,0,0 Text 666,148,Level End Function ; Kugeln Zeichnen Function Kugeln_Zeichnen (f_Punkte) For y=0 To 8 For x=0 To 4 If Map(x,y) > 0 DrawImage gfx_spiel_ball_blau,((x*51)+44),((y*51)+78),Map(x,y) End If Next Next f_Punkte = f_Punkte +1 ;<---- Hier sollte er eigentlich steigen. Return f_Punkte End Function |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich würde vorschlagen, du verschiebst die Variablen Deklaration vor die Hauptschleife. | ||
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) |
![]() |
Raiden93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oh jetzt gehts mensch ich dachte das ist wie bei c++ alles was in der main schleife kommt sollte Local genutzt werden.Und sobald die Variable aus der Main schleife ist ist es Global. | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group