Vielen Dank für alle weiteren Punkte
. Den Source Code werde ich Morgen veröffentlichen. Zuerst habe ich aber noch jede Menge Kommentare eingefügt, damit das Lesen auch möglichst einfach wird. Muss mir noch überlegen, ob ich ein zwei wichitge Zeilen doch lieber nicht veröffentliche, weil sich sonst jeder beliebig hohe Highscores uploaden kann, wie es ihm passt
@agentone
Bei mir ist jedes Level eine Klasse. Dies aus dem einfachen Grund, dass es so viel viel leichter für mich ist, diese zu implementieren. Wie erfreulicherweise bereits erkannt worden ist, habe ich versucht, eine gosse Vielfalt in die Levels zu bringen. All diese kleinen Elemente (der Teufel steckt im Detail), sind einfacher direkt im Code zu realisieren. Würde ich jedes Level in XML-Files speichern, die dann einlesen und in ein Level parsen, hätte ich jetzt noch keine 3 Level geschafft
@Atze und Steev
Die Auswertung, ob der Ball einen Block getroffen hat hängt von den vier Punkten ganz oben, unten, links und rechts des Balls ab. Das ganze ist noch etwas kompliziert, weil ein Block auch in zwei oder vier Teile geteilt sein kann, wenn er über den Rand hinausgeht, und das auch dann stimmen muss. So kann es schon vorkommen, dass das Auge eine Kollision sieht, das Programm aber nicht. Vielleicht fällt mir etwas ein, wie ich das noch verbessern kann.
Eine Legende der Items mit Beschreibung ist unten auf der Webseite. Vielleicht werde ich die auch mal in das Programm implementieren. Aber wie du schon herausgefunden hast sind violette/lila Steine böse und die anderen richten keinen Schaden an.
@Apo
Zu einfach darf das Spiel ja nicht werden
. Manche spielen alle 30 Levels locker in einem Zug durch, andere scheitern schon im zweiten. Deswegen finde ich es schon wichtig, dass es mehr böse lila Items als Leben, Goldene Bälle und Items zum schiessen gibt. Den unbelibten Items kann man ja auch ausweichen und mit etwas Übung kann man auch mit einem sehr kleinen Pad noch lange überleben.
Es muss im Spiel auch mal Rückschläge geben, also wenn du ein riesiges Pad hast erhöht sich die Wahrscheinlichkeit, dass du einem lila Item nicht ausweichen kannst und dann verlierst du die gesamte Breite des Pads. Das ist auch insofern wichtig, weil es sein kann, dass man so viele gelbe Items auffängt, dass das Pad grösser als die Spielbreite wird und so nicht mehr manövrierfähig ist. Ein einziger lila Stein löst dann dieses Problem. Umgekehrt restauriert ein gelber Stein ja auch ein ganz klein gewordened Pad. Das ist in einigen Levels auch wichtig, die gerade aufgrund vieler lila Items so schwierig sind.
Du hast Recht, die Haftigkeit könnte bestehen bleiben, wenn sich die Bälle teilen. Allerdings mag ich das Haft-Item sowieso nicht, da bin ich froh, wenn es wieder weg ist
Das mit dem Cursor bei der Highscoreliste habe ich sofort repariert, nun erscheint der Cursor. Vielen Dank für den Hinweis
@Quaxli
Du hast absolut Recht, das gefällt mir auch nicht. Wenn die Maus die Komponente verlässt, kriege ich aber keine MouseEvents mehr und kann das Pad nicht mehr setzen. Hilfe würde die Klasse MouseInfo mit getPointerInfo(), die wiederum ist in Applets aber nicht erlaubt. Mal überlegen, wie ich das machen könnte. Besser geht es jedenfalls, wenn du das Programm downloadest und dann maximierst, dann hast du den ganzen Bildschirm für die Maus.
Immerhin habe ich die Situation abfangen können, wenn man wie wild am klicken/schiessen ist und auf ein anderes Fenster klickt, welches dann in den Vordergrund kommt, dass dann das Spiel pausiert wird. Könnte ich natürlich auch machen, wenn die Maus das Fenster verlässt, aber das könnte störend sein.
@Zenic
Eine Tastatursteuerung wäre prinzipiell sicher eine gute Idee, aber nicht ganz einfach. Wie schnell soll das Pad sein, soll eine Beschleunigung erfolgen usw. Aber ich mach mal ein paar Versuche, dann sehe ich ja, wie es klappt.
Die Highscoreliste hat tatsächlich etwas lange. Liegt auch daran, dass die Daten zuerst gedownloadet werden müssen. Muss ich korrigieren, guter Hinweis
Die sollte dann auch per Button ersichtlich sein, da hast du schon recht. Zuerzeit ist sie online verfügbar:
Vajanoid Rangliste
Freut mich, dass es schon so viele bekannte Namen aus dem Forum geschafft haben, einige sind auch sehr sehr weit gekommen.
F2 und F3 sollte ich wohl wirklich auseinander nehmen. Mir ist nichts besseres eingefallen, weil ich das von alten (Microsoft?) Spielen so kenne. Was schlägst du vor?
Das "level" könnte ich eigentlich wirklich weglassen. Allerdings ist es nicht das einzige, was man da reinschreiben kann, es gab da mal ein paar Cheats. Genau diese Dinge sollte man vielleicht besser nicht im Source Code finden
Wenn du die Pause beendest, bewegt sich das Pad immer zur Maus hin. Ist also keine beabsichtige Schikane und eigentlich auch kein Fehler. Während der Pause bewegt sich das Pad nicht, weil das als verwirrend bezeichnet wurde ^^. Viellecht implementiere ich mal einen riesigen Katalog an Optionen, wo sich jeder sein Spielverhalten selber definieren kann
Nochmals vielen Dank für alle Rückmeldungen, ich arbeite weiter daran.