BPS #12: Speichern & Laden - Auswertung

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Xeres

Moderator

Betreff: BPS #12: Speichern & Laden - Auswertung

BeitragSo, Sep 18, 2011 21:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Na, dann zeigt doch mal, was ihr so geschafft habt!

Das war die Aufgabe

Postet hier eure Ergebnisse, Codes, Gedanken. Lernt von den anderen, seht euch deren Quelltext an und versucht euren eigenen zu verbessern.

Diskussion
Postet zu euren Codes stets eine kurze Erklärung mit euren Gedanken in denen ihr simpel gesagt die Frage "Wieso habe ich XY auf diese Art gelöst?" beantwortet. Beiträge, die nur den Code enthalten werden wir aus dem Thread entfernen.

Nächste Aufgabe
In zwei Wochen, wird die Musterlösung nach editiert und die nächste Aufgabe eingestellt.

Viel Spaß & viel Erfolg!

Musterlösung:
BlitzBasic: [AUSKLAPPEN]
;* Scancodes als Konstanten - nur zur besseren Lesbarkeit
Const KEY_ESC = 1, KEY_RETURN = 28
Const KEY_Q = 16, KEY_W = 17, KEY_E = 18
Const KEY_A = 30, KEY_S = 31, KEY_D = 32

;* Die Variablen werden mit den Standardwerten initialisiert
Local gfx_w=512, gfx_h=512
Local color_R=0, color_G=128, color_B=0

;* Falls der Speicherstand existiert...
If FileType("optionen.save")=1 Then
Local FileStream = OpenFile("optionen.save")
;* ...wird die Datei geöffnet, und ausgelesen
color_R = ReadInt(FileStream)
color_G = ReadInt(FileStream)
color_B = ReadInt(FileStream)
CloseFile(FileStream)
;* nicht vergessen Dateien zu schließen!
EndIf
;* Die Variablen enthalten nun entweder die Standardwerte ODER die geladenen.

Graphics(gfx_w, gfx_h, 0, 2)
SetBuffer(BackBuffer())
Local FrameTimer = CreateTimer(60)
ClsColor(color_R, color_G, color_B)
Color(0,0,0)

Repeat
Cls

;* Mit den Tasten Q/A, W/S, E/D lässt sich die Hintergrundfarbe ändern.
;* Mod wird hier benutzt, um die Variablen auf Werte zwischen null und 255 zu begrenzen
If KeyDown(KEY_Q) Then color_R = ( color_R + 2 +256) Mod 256
If KeyDown(KEY_A) Then color_R = ( color_R - 2 +256) Mod 256
If KeyDown(KEY_W) Then color_G = ( color_G + 2 +256) Mod 256
If KeyDown(KEY_S) Then color_G = ( color_G - 2 +256) Mod 256
If KeyDown(KEY_E) Then color_B = ( color_B + 2 +256) Mod 256
If KeyDown(KEY_D) Then color_B = ( color_B - 2 +256) Mod 256
ClsColor(color_R, color_G, color_B)

Color(0,0,0)
Rect((gfx_w/2) - 64, (gfx_h/2)-16, 128, 32)
Color(255,255,255)
Text(gfx_w/2, gfx_h/2, color_R+", "+color_G+", "+color_B, 1, 1)

Flip(0)
WaitTimer(FrameTimer)
Until KeyHit(KEY_ESC)

;* Bevor das Programm beendet wird, speichern wir die Variablen-Werte:
;* WriteFile wird eine neue Datei erstellen:
FileStream = WriteFile("optionen.save")
;* Auf die richtige Reihenfolge beim Speichern achten!
WriteInt(FileStream, color_R)
WriteInt(FileStream, color_G)
WriteInt(FileStream, color_B)
;* Und wieder: Nicht vergessen ordentlich zu schliessen:
CloseFile(FileStream)

;* Nach dem Speichern kann beendet werden.
End
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)

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group