Befehle die man schon als Neuling meiden sollte.
Übersicht

![]() |
BladeRunnerModeratorBetreff: Befehle die man schon als Neuling meiden sollte. |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo erstmal!
Ich möchte euch hier einige Befehle vorstellen deren Nutzung man nicht (mehr) empfehlen kann. Dies soll euch helfen schon zu Beginn eurer 'Karriere' häufig auftretende Sackgassen zu vermeiden. All diese Befehle hatten in den Kindertagen der Computer ihre Daseinsberechtigung, teils weil es noch nichts besseres gab, teils weil Arbeitsspeicher sehr teuer war und man um jedes Byte kämpfen musste. Da BlitzBasic ein BASIC-Dialekt ist sind diese Befehle auch heute noch enthalten um eine Kompatibilität zu alten Programmen zu gewährleisten. Moderne Rechner sind jedoch weit von dem entfernt was in den Anfangstagen so existierte, und einige Konzepte haben sich grundlegend gewandelt, und so sind die im folgenden vorgestellten Befehle meist nicht nur sinnfrei sondern oft sogar kontraproduktiv. Delay ![]() Delay wird verwendet um den Computer eine gewisse Zeit lang 'anzuhalten'. Wird oftmals von Beginnern sehr ausführlich benutzt um Texte eine bestimmte Zeit lang anzuzeigen. Das Problem liegt in der Funktionsweise von Delay: Es hält euer Programm komplett an und beschlagnahmt in der Zwischenzeit alle zur Verfügung stehende Rechnerkapazität da es in einer Schleife ständig prüft ob die Pausenzeit denn schon vorbei ist. Ihr belastet also euren Rechner und euer Programm kann in der Zwischenzeit nichts weiteres mehr unternehmen. Lösung: Schaut euch MilliSecs ![]() ![]() Ihr könnt also euren Text anzeigen, aber im Hintergrund laufen trotzdem alle Animationen etc. weiter. ![]() ![]() ![]() ![]() Die Rechner früher hatten keine Grafikausgabe oder aber Sie war extremst begrenzt. Aus dieser Zeit stammen diese Befehle: Programme bestanden im Wesentlichen aus Text, alle Eingaben wurden über Tastatur vorgenommen und danach erst lief das Programm weiter. Heute sieht das selbstredend anders aus, moderne Programme sind in der Regel graphikbasiert und laufen weiter, auch wenn Eingaben vorgenommen werden. Daher sind auch diese Befehle Relikte aus vergangenen Tagen. Print, Locate und Write lassen sich ohne Weiteres durch Text ![]() Input ![]() Ein Beispiel wäre *HIER* Goto ![]() ![]() Werden gern und immer wieder herangezogen um den Programmfluß zu steuern. Leider bergen Goto als auch Gosub das Risiko in sich, unübersichtlichen Code zu erzeugen. Zudem wird das Handling von Variablen ein wenig erschwert da man für Berechnungen keine Datentrennung hat (es ist also leichter Fehler zu produzieren weil man aus Versehen einen Namen für zwei eigentlich verschiedene Variablen nimmt). Exit ![]() Code: [AUSKLAPPEN] For Count=0 To 99
Text 20,20+Count*20,Count ;WENN COUNT=5 IST, WIRD DIE SCHLEIFE VORZEITIG VERLASSEN If Count=5 Then Exit Next Mit Exit ![]() - For/Next - For/Each/Next - Repeat/Until - Repeat/Forever - While/Wend Goto ist daher in der Regel absolut unnötig, über ein Gosub könnte man in seltenen Fällen noch streiten, aber normalerweise wird euer Programm deutlich von der Benutzung von Function ![]() Eine Function ist wie ein kleines Programm im Programm, welches einen besonderen Zweck erfüllt und nur die Daten kennt die es für das Ausführen dieses Zweckes benötigt. Praktisch gesehen kann man mit Function seine eigenen BB-Befehle erstellen und benutzen wie diese auch. Der Vorteil an Funktionen liegt daran dass man sie einmal definiert, im gesamten Programm so oft benutzen kann wie man will und dass sie einen eigenen Datenraum haben, d.h. die Berechnungen in der Funktion verändern normalerweise ausserhalb nichts, es sei denn man benutzt Global ![]() ImagesCollide ![]() ![]() Eigentlich ein aktueller und auch recht sinnvoller Befehl. Leider ist er jedoch nicht mit aller Hardware kompatibel, bei einigen Grafikkarten kommt es zu Abstürzen des Programms. Daher solte man diesen Befehl vermeiden. Eine Alternative gibt es *HIER* Ich hoffe das hilft euch ein wenig bei euren ersten Schritten. Edit: Beitrag von Hectic eingepflegt. Danke. (10.01.10. 17:15) Nach Hinweis von NicDel ImagesRectColide eingepflegt. Danke. (10.01.10. 17:33) |
||
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 |
- Zuletzt bearbeitet von BladeRunner am So, Jan 10, 2010 18:15, insgesamt einmal bearbeitet
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group