Ich hab hier vor längerer Zeit mal 'n paar dämliche Fragen zu BlitzBasic gestellt. Da gings um ein Game das ich grad programmmierte. (damals haben mich ein paar gefragt, ob ich den code nich mal posten könne) Endlich ist es mehr oder weniger spielbar, hat immer noch viele Fehler und ist wahrscheinlich für alle ausser mir fast unverständlich gecodet aber immerhin läufts mal. Es geht um Blocks, den Breakoutklassiker, den ich mal ein wenig nachgeproggt habe. Im Anhang könnt ihr den code als gezipte Word-Dokumente(Editor+Spiel) und die Programmdateien (bitte nach C:\Programme\ entpacken) mit immerhin 3 levels downloaden.
Der Editor ist noch ziemlich unübersichtlich, die wichtigsten Funktionen wären:
-linksklick: block setzen
-rechtsklick: farbe wählen(nur über farbigen rechtecken)
-esc:beenden und speichern
-der levelpfad muss noch von hand eingegeben werden
Ich hoffe ich habe für Fragen genug Zeit, es kann aber manchmal vielleicht auch ein wenig dauern;-(
Simon
PS: Am code kann von mir aus beliebig viel rumgebastelt und verbessert werden, ich wäre jedoch froh davon zu wissen, damit ich nicht was doppelt progge.
hab mir das heute mal runtergeladen, jedoch verzweifelt eine executable gesucht.
Da ist mir eingefallen, dass das ebstimmt noch so wie früher ist und das mehr oder weniger eine Interpreter sache ist. Habe es dann mal gespielt: Also ist ganz lustig: Du hast noch etwas Probleme mit den Kollesionsabfragen, deswegen gibt es ein paar bugs. Aber so macht es einen ganz guten eindruck.
Zwei Mankos:
1.) der Quellcode... Wirklich schön ist der nicht. Gotos niemals verwenden. Außerdem hast du keine Proceduren / Funktionen. Das ist alles eine lange Wurst. Da findet sich kein Mensch zurecht. Auch wenn BB nicht echt OOP unterstützt, kann man ja OOP mit jeder Sprache simulieren. So solltest du umbedingt eine "Klasse Ball" und eine "Klasse Block" haben. Da würden auch Kollisionen besser funktionieren
2.) Es mag wahrscheinlich an BB selber liegen, aber das Memory using ist grauenhaft. 12 MB im Ram. So viel verbraucht noch nicht mal mein Tomcat :-)
Also ganz klarer Tipp: Dieses Spiel sollst du ruhig fertig programmieren und dich daran freuen. Danach würde ich mir aber mal ein tutorial durchlesen was so ein paar grundzüge erklärt. Proceduren, funktionen, OOP, ... damit du es lernst ordentlichen Quellcode zu schreiben.
Auf jedenfall würde ich auch mal nach alternativen Programmiersprachen schauen. Spätestens wenn du deine Spiele weitergeben willst, (so wie hier), ist es für den Anwender unzumutbar sich eine IDE runter zu laden und damit das spiel zu starten. Man kann zwar auch mit der pro version executables erstellen, aber die pro version ist meines wissens doch recht teuer. BB ist zwar als einstieg sehr gut geeignet aber versagt schon bei semiprofessionellen sachen.
danke für die antwort, du sprichst da ein paar probleme an, die ich sebst auch schon mehr oder weniger erkannt hab.
@1.)ich hab mal das tutorial: rob's bb-kurs 2http://www.robsite.de/bbkurs2/index.htm
durchgemacht und dann halt einfach mal was ausprobiert... wie das mit OOP funktioniert kapier ich leider momentan noch nich ganz;-), hast du mir vielleicht nen Tip für n'tut?
Und was meinst du mit den Klassen?
das errinert mich an alte Programmierzeiten als ich angefangen habe mit QBasic programmieren zu lernen und wenn ich so BB sehe hat sich sooo viel ja garnicht geändert :-)
Als erstes solltest du dein Projekt erstmal so fertig machen wie du es für richtig hälst. Aber so mit Funktionen und Proceduren und OOP sollte man sich halt schon beschäftigen, sonst kommst du nicht weit.
Grundanliegen ist es ja, alles zu struktuieren. Deswegen haste ja Proceduren, die haben einen Namen und die kannste im Hauptprogramm einfach aufrufen. Beispielsweise wär in deinem Programm eine Procedur Kollesionsabfrage sinnvoll. Die rufst du halt immer auf, wenn die Procedur (dann auch Funktion) eben wahr zurückliefert, ist eine Kollesion aufgetreten, ansonsten eben nicht. Wenn due Funktion geht, rufst sie eben nur im Hauptprogramm auf und musst dir um den Rest keine gedanken mehr machen, dass erleichtert die Übersicht ungemein.
Dann kannst du Datenkapslung vornehmen. Beispielsweise hast du ja (wenn ich mich rcht eriner) 2 Variablen ballx und bally. Also diese beiden variablen representieren deinen ball. Die daten könnteste beispielsweise zu einem neuen datentyp zusammenfassen. der neue datentyp heißt dann eben ball. (enthält intern jedoch die einzelnen kordinaten).
wenn du nun beides zusammenfasst kommst du zur Objekt orientierten programmierung. Klassen sind hauptbestandteile und sind quasi genau die obigen beiden sachen zusammengfasst. Du hast eine zusammenfassung voon einzelnen variablen zu einem objekt auf welchem funktionen (dann methoden genannte) arbeiten.
Beispielsweise könnteste eine klasse ball schreiben, welche die variablen x und y enthält. außerdem die methoden move, kollesion, ballweg, ...
Dein hauptprogramm könnte dann in etwa so ausehen:
while(true) { // Also mache unendlich lange was
ball.move();
if (kollesion()) then mache da so einen block weg;
if (ballweg()) then leben=leben-1;
}
Die leben könnte man sogar noch in die bälle mit stopfen. Du siehst, dein hauptprogramm ist viel simpler und logischer als jetzt. Die OOP ist eigentlichdie technologie von heute. Am logischsten und besten unterstützt diese Java. Java ist eine Sprache mit der sich nicht umbedingt spiele gut schreiben lassen, aber mit der man sehr schön OOP lernt. Ich selbe komme nicht aus der spielewelt sondern ehr aus der enterprise Anwendungen welt.
Ansonsten wie gesagt ... ist vielleicht eine einführung in Objelkt orientiertes denken nicht ganz verkehrt. Ist nicht ganz einfach das weiß ich selber. und wenn du noch sehr jung bist, würde ich damit auch noch etwas warten.
ok. Ich denk ich werd dann dieses Spiel für meinen Bruder noch ein wenig ausbauen und mich dann für ein neues Projekt erst mal ein wenig mit OOP beschäftigen. Diese ganzen Klassen-etc-Geschichten kommen mir im Moment zwar noch ziemlich kompliziert vor, aber es gibt ja bestimmt viele gute Tuts dazu...
Und da das proggen momentan eher eine Freizetbeschäftigung für mich is, muss auch noch nich alles ganz perfekt sein.
Auf jeden Fall vielen Dank für diese Unterstützung