Breakout-Klon (Applet!)

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hi!

Ich arbeite an einem Breakout-Klon. Ich wollte nur mal wissen, was ihr davon haltet (ist wie gesagt noch in Arbeit; bis jetzt hab ich ja noch nicht so viel).

Klick mich!
 
B

Beni

Gast
Sieht eigentlich schon gut aus. Aber: mir ist es gelungen den Ball so zu Schiessen, dass er immer zwischen zwei unzerstörbaren Elementen hin und her geht...
 
G

Guest

Gast
Oh, tut mir leid. Das stimmt, ich weiß nicht so genau was ich dagegen machen soll. Ihr könnt Enter drücken, um den Ball zurück aufs Paddel zu holen (kostet natürlich ein Leben :? :wink: )
 
B

Beni

Gast
Die Flugbahn leicht zufällig abändern? Dann würden sich die Fehler irgendwann soweit aufaddieren, dass sich der Ball löst (ohne Garantie :bae:).
 
G

Guest

Gast
Echit nicht sclehct, war auch recht viel Arbeit oder?
Mir ist dies im übrigen auch passiert?

Mit was berechnest du eigentlich geau den Winkel der Flugbahn?
Berechnest du nur immer +1/-1 auf x oder y drauf oder wie machst du das?


mfg GagamehlO
 
G

Guest

Gast
Die Flugbahn leicht zufällig abändern? Dann würden sich die Fehler irgendwann soweit aufaddieren, dass sich der Ball löst (ohne Garantie ).
Gute Idee, muss ich mal versuchen.
Mit was berechnest du eigentlich geau den Winkel der Flugbahn?
Berechnest du nur immer +1/-1 auf x oder y drauf oder wie machst du das?
Wenn du vom Paddel sprichst: Erst ermittle ich die Mitte des Balles und die Mitte des Paddels, dann berechne ich die Entfernung in Pixeln und multipliziere das so, dass für die x-Geschwindigkeit eine Zahl zwischen -1 und 1 rauskommt. Danach berechne ich die y-Geschwindigkeit.
 

Lucky Luc

Mitglied
Juhu, es hat funktioniert!!! Danke!!!!!

Also, jetzt müsst ihr nur noch lang genug warten und der Ball befreit sich von selbst.

Jetzt muss ich nur noch Bonuse einfügen (und zuerst mal zeichnen :cry: ), mehr Levels machen, eine Funktion um die Levels zu wechseln, und, falls es zu viele Levels werden, Passwörter und Passworteingabe machen und vielleicht noch ein paar andere Sachen, und mein Spiel ist fertig... :? :wink:
 

0xdeadbeef

Top Contributor
1) Maussteuerung!
2) Ball hängt immer noch fest (auch > 30 Sekunden helfen nichts).

Die Idee mit der Zufallskomponente ist im Prinzip gut, weil sie quasi die chaotische Natur solcher Vorgänge (mangels Einblick in alle Parameter) simuliert. Eventuell muß die Zufallskomponente einfach nur stärker gewichtet werden, denn viel ist nicht davon zu spüren.
Problem hierbei allerdings: es ist nicht vorhersehbar, wie lange der Ball braucht, um sich zu befreien. Wenn man Pech hat, bekommt man für 10 Minuten genau solche Zufallszahlen, die in Summe dafür Sorgen, daß der Ball in der Falle bleibt. Allerdings ist das eher ein akademischer Einwand...

Ich glaube eh, daß das Problem noch woanders liegt. Ich habe die Situation jetzt mehrfach reproduziert und jedesmal reflektiert der Ball zwischen der rechten oder linken oberen Ecke eines unzertörbaren Block und der Unterseite eines unzerstörbaren Block hin und her. Bei beiden Reflektionen wird der Ball nicht gemäß üblicher Reflektionsgesetze reflektiert, sondern genau in die Richtung, aus der er kam. Während das bei der Ecke noch irgendwie denkbar wäre, ist es bei der Unterseite einfach 100% falsch.

Überhaupt scheinst Du bei Treffern in der Nähe der Ecken immer in die Ursprungsrichtung zu relektieren, was ich für falsch halte. Ein Eckentreffer sollte eine relativ chaotische Komponente haben, aber auch nur, wenn man wirklich die Ecke trifft.
Das erklärt aber auch noch nicht, warum auch ein mittiger Treffer der Unterseite zumindest in den "Deadlock"-Situationen fälschlich mit dem Einfallswinkel zurückgeworfen wird. Ich meine auch, das im "normalen" Spiel beobachtet zu haben. IMHO ein Bug.
 

Lucky Luc

Mitglied
0xdeadbeef hat gesagt.:
1) Maussteuerung!
2) Ball hängt immer noch fest (auch > 30 Sekunden helfen nichts).

Die Idee mit der Zufallskomponente ist im Prinzip gut, weil sie quasi die chaotische Natur solcher Vorgänge (mangels Einblick in alle Parameter) simuliert. Eventuell muß die Zufallskomponente einfach nur stärker gewichtet werden, denn viel ist nicht davon zu spüren.
Problem hierbei allerdings: es ist nicht vorhersehbar, wie lange der Ball braucht, um sich zu befreien. Wenn man Pech hat, bekommt man für 10 Minuten genau solche Zufallszahlen, die in Summe dafür Sorgen, daß der Ball in der Falle bleibt. Allerdings ist das eher ein akademischer Einwand...

Ich glaube eh, daß das Problem noch woanders liegt. Ich habe die Situation jetzt mehrfach reproduziert und jedesmal reflektiert der Ball zwischen der rechten oder linken oberen Ecke eines unzertörbaren Block und der Unterseite eines unzerstörbaren Block hin und her. Bei beiden Reflektionen wird der Ball nicht gemäß üblicher Reflektionsgesetze reflektiert, sondern genau in die Richtung, aus der er kam. Während das bei der Ecke noch irgendwie denkbar wäre, ist es bei der Unterseite einfach 100% falsch.

Überhaupt scheinst Du bei Treffern in der Nähe der Ecken immer in die Ursprungsrichtung zu relektieren, was ich für falsch halte. Ein Eckentreffer sollte eine relativ chaotische Komponente haben, aber auch nur, wenn man wirklich die Ecke trifft.
Das erklärt aber auch noch nicht, warum auch ein mittiger Treffer der Unterseite zumindest in den "Deadlock"-Situationen fälschlich mit dem Einfallswinkel zurückgeworfen wird. Ich meine auch, das im "normalen" Spiel beobachtet zu haben. IMHO ein Bug.

1 ) Was hast du gegen Tastatursteuerung?
2 ) Tut mir leid, da ist etwas mit dem Upload schiefgelaufen.
3 ) Ich weiß, dass das mit den Ecken sehr extrem ist, aber würde ich den Bereich verkleinern, könnte es passieren, dass der Ball ganz durch den Stein durchgeht (somindest so wie ich das gemacht hab).
4 ) Du darfst von so einem Spiel keine realistische Physik erwarten (vor allem nicht bei mir). Es ist auch nicht besonders realistisch, das man ein Paddel ist, das man steuert, um einen Ball zu treffen, damit der Steine abträgt.
5 ) Auch wenn das jetzt eingebildet klingt: Schau dir ein paar andere Breakout-Klon-Applets an (zum Beispiel aufwww.onlinespiele1.de). Die haben vielleicht eine bessere Physik als meines, aber sind zum Teil auch sehr langweilig.
6 ) Bin ich noch nicht so erfahren mit Java (kein blutiger Newbie, aber trotzdem noch ein Anfänger). Ich hab keine Ahnung, wie ich eine bessere Physik hinkriegen soll.
7 ) Auch wenn das mit den Ecken nicht so extrem wäre, könnte es passieren, das der Ball so hängen bleibt.
8 ) Ich hab grad entschieden, dass ich vielleicht doch noch mal was an der Physik änder.
9 ) Das reicht mal für heute.
 

0xdeadbeef

Top Contributor
Lucky Luc hat gesagt.:
Was hast du gegen Tastatursteuerung?
Ich habe nichts dagegen, aber Breakout ist DAS Paradebeispiel für eine sinnvolle Maussteuerung.

Du bist gar nicht hierauf eingegangen:
Das erklärt aber auch noch nicht, warum auch ein mittiger Treffer der Unterseite zumindest in den "Deadlock"-Situationen fälschlich mit dem Einfallswinkel zurückgeworfen wird. Ich meine auch, das im "normalen" Spiel beobachtet zu haben. IMHO ein Bug.
Hast Du das jetzt geändert?

BTW: Niemand will eine "perfekte Physik" in einem Breakout-Klon. Aber Die Reflektionen an den Blöcken/Wänden usw. sollten schon einigermaßen plausibel sein, weil genau das das Spiel ausmacht. Sind sie bei Dir ja auch meistens. Bis auf diese merkwürdigen Fälle, bei denen der Ball genau in die Richtung zurückfliegt, aus der er kam - und zwar halt nicht nur an Ecken.

Allerdings hast Du Recht, daß die meisten Breakout-Clones schwach sind. Ich finde es immer erschütternd, wenn Spiele mit teils aufwendiger Grafik dann nur 45°-Winkel verwenden.
 

Lucky Luc

Mitglied
Ich wollte gerade eine Begründung schreiben, warum das passiert und ich es nicht ändern kann, als mir aufgefallen ist, dass das gar nicht stimmt. Konnte die "Ecken-Seiten-Überlappung" jetzt immerhin um 25% verringern (allerdings noch nicht neueste Version hochgeladen)

EDIT: OK, jetzt ist sie hochgeladen
 

0xdeadbeef

Top Contributor
Zumindest solltest Du das Verhalten an den Ecken nur dann benuzten, wenn der Block an dieser Ecke freisteht.
Bei einer Reihe von Blöcken ist es nicht sinnvoll, die innenliegenden Ecken wie außenliegende zu betrachten.
 
N

na-oma

Gast
habs level ma durchgespielt...am ende wirds ganz schön langwierig, weil
a) der Ball dauernd feststeckt (musste schonmal 20 sec auf einen warten...schön wie sich der Zufall immer selbst ein Schnippchen schlägt
b) die letzten Steine schwer zu erreichen sind...naja is wohl bei allen breakouts so :)


Wär dafür das Spieltempo zu erhöhen (oder den User per Pfeil Hoch und Runter selbst Tempo wählen zu lassen) bzw. vorher Schwirikgeitsgrad leicht mittel hoch abfragen.

ansonsten: die idee mit den Blitzen ist lustig, hab ich noch nirgends gesehen glaub ich. muss man sich immer entscheiden ob man flieht und den ball verliert, oder ob man stehenbleibt und den ball trotzdem verliert :lol:
 
R

Roar

Gast
hier gilt ürbigens der gleiche kommentar wie bei deinem pong: einfallswinkel ist bei dir != ausfallswinkel bei ruhendem balken...
 

Lucky Luc

Mitglied
Stimmt, Einfallswinkel != Ausfallwinkel. Das ist aber auch bei sich bewegendem Balken so. Außerdem mache ich das mit Absicht; falls du's noch nicht bemerkt hast, um so weiter der Ball von der Mitte entfernt ist, um so mehr geht er zur Seite. Ich finde das besser als ein 45°-Spiel, bei dem der Ball immer nur abprallt. Da ist dann eigentlich jeder Spielverlauf der gleiche, man muss nur den Ball treffen.
Die dritte Möglichkeit, dem Ball etwas Geschwindigkeit in die Richtung zu bewegen, in die sich der Balken bewegt, wenn der Ball aufprallt, krieg ich nun mal nicht hin (bin einfach zu schlecht).
 

0xdeadbeef

Top Contributor
Lucky Luc hat gesagt.:
Die dritte Möglichkeit, dem Ball etwas Geschwindigkeit in die Richtung zu bewegen, in die sich der Balken bewegt, wenn der Ball aufprallt, krieg ich nun mal nicht hin (bin einfach zu schlecht).

Hm, was ist daran so kompliziert? Habe es doch im Pong-Thread im Ansatz beschrieben.
Wie bewegst Du den Ball denn im Augenblick? Du mußt doch bereits sowas wie Schrittweiten in X- und Y-Richtung (deltaX, deltaY) haben, um die unterschiedlichen Abprallwinkel hinzubekommen.
Bei still stehendem Schläger kehrst Du nur das Vorzeichen der Y-Komponente um ( deltaY = -deltaY), bei bewegtem Schläger addierst Du noch einen Offset auf die X-Komponente, dessen Vorzeichen von der Bewegungsrichtung abhängt.
Also sowas wie:

Code:
// Schläger getroffen
deltaY = -deltaY
if (schlaeger.richtung == LINKS)
    deltaX -= OFFSET;
else if (schlaeger.richtung == RECHTS)
    deltaX += OFFSET;
// Geschwindigkeit beschränken
if (deltaX > MAX_SPEED)
    deltaX = MAX_SPEED;
else if (deltaX < -MAX_SPEED)
    deltaX = -MAX_SPEED;

Oder so...
Bei Pong mußt du eigentlich nur deltaX und deltaY vertauschen und OBEN/UNTEN statt LINKS/RECHTS verwenden.
 

Solour

Aktives Mitglied
1. nice
2. bei mir hat sich der ball befreien können
3. gibts mehr features als man nach 50% des 1. levels sieht?
4. ball schneller
5. richtungen müssen sich viel öfter ändern
6. maybe blinkende klötze
7. enter drücken raubt leben?
8. das ganze muss schwerer werden oder wenns erst später schwerer wird dann das 1. level kürzer
9. mehrere bälle? speed mode?

bye
 

Lucky Luc

Mitglied
1) Danke
2) Na bitte, wenigstens bei einem funktioniert es
3) Es wird neue geben (hast du die Blitze schon gesehen?)
4) Eine Option zum Wählen der Geschwindigkeit wird eingefügt
5) Was meinst du damit? Wann?
6) Gute Idee, da ich aber weder der begabteste Grafiker bin, noch so genau weiß, wie ich das am besten mach, wird das zumindest in nächster Zeit nicht gemacht.
7) Bald nicht mehr, hab ich nur gemacht als der Ball sich nicht selbst befreien konnte
8 ) Das erste Level ist jetzt viel kürzer; das Level, das im Moment da ist, soll nur mal zeigen was im Moment möglich ist zu machen.
9) Mehrere Bälle sind eingeplant. Speed Mode?

An alle:
Das Spiel hat inzwischen (auf meinem Rechner zumindest) ein paar Fortschritte gemacht:

Was schon gemacht ist:
- 4 Tutorial-Levels
- Dementsprechend eine Funktion zum Levelwechsel
- Eine Option zum Aussuchen der Geschwindigkeit
- Eine Option zum Aussuchen des Startlevels

Was in Planung ist:
- Boni (im Moment folgende: Ball schneller, Ball langsamer, Ball "teilt" sich, Extraleben, Bonuspunkte, vielleicht Paddel größer/kleiner, vielleicht "klebendes" Paddel, vielleicht "schießendes" Paddel, vieleicht vertauschte Steuerung)
- Sich bewegende Steine
- Ein Abschlussbildschirm
- Neue Gegner
- Vielleicht reine "Gegner-Level", in denen man nicht Steine abtragen, sondern einen Gegner treffen muss.

Was (im Moment) nicht in Planung ist:
- Blinkende Steine
- Bessere Physik

EDIT: OK, ich hab jetzt mal was hochgeladen
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Probleme bei Breakout - Brick kollision Spiele- und Multimedia-Programmierung 2
V Basisprinzipien Breakout-Spiel Spiele- und Multimedia-Programmierung 8
P Breakout Spiele- und Multimedia-Programmierung 19
L Abprallbedingung bei Breakout Spiele- und Multimedia-Programmierung 6
B noch ein snake klon Spiele- und Multimedia-Programmierung 2
J Moorhuhn-Klon - Nur das 1. Huhn ist "treffbar" Spiele- und Multimedia-Programmierung 8
S Minesweeper Klon Spiele- und Multimedia-Programmierung 10
G Kollisionsabfrage (Mario klon) Spiele- und Multimedia-Programmierung 6
G Pong klon mit Steuerungsprobleme Spiele- und Multimedia-Programmierung 8
B Pong-Klon. Denkfehler bei kollisionstest Spiele- und Multimedia-Programmierung 3
$ problem bei pon klon Spiele- und Multimedia-Programmierung 2
G Pong-Klon (Applet!) Spiele- und Multimedia-Programmierung 4
J SNAKE-GAME-LOOP / (Applet zu Application) Spiele- und Multimedia-Programmierung 4
H Recheckte nacheinandergenerieren lassen (Applet) Spiele- und Multimedia-Programmierung 2
Rayo Slick Applet Spiele- und Multimedia-Programmierung 12
K Java3D als Applet ohne Installation von Java3d Spiele- und Multimedia-Programmierung 6
S Applikation aus Applet erstellen Spiele- und Multimedia-Programmierung 6
ruerob Eure Meinung über Applet-game Spiele- und Multimedia-Programmierung 12
F Problem mit KeyListener in Applet Spiele- und Multimedia-Programmierung 4
H Cell Invaders Applet Spiele- und Multimedia-Programmierung 99
J Tips für ein kleines Pong-Applet Spiele- und Multimedia-Programmierung 4
B Applet startet, aber führt den Thread nicht aus Spiele- und Multimedia-Programmierung 7
Z Multiplayer Applet RPG Spiele- und Multimedia-Programmierung 9
Quaxli Applet läuft nicht auf fremder WebSeite/Forum Spiele- und Multimedia-Programmierung 11
F Von Canvas (mit BufferStrategy) zu Applet Spiele- und Multimedia-Programmierung 8
A Interaktion von J3D in einem Applet Spiele- und Multimedia-Programmierung 4
O Java3D-Applet ohne Java3D-Runtime ausführen Spiele- und Multimedia-Programmierung 2
G Linie im Applet zeichnen Spiele- und Multimedia-Programmierung 5
T Wie sprech ich das Java Applet mit PHP an? Spiele- und Multimedia-Programmierung 6
B Blender 3D in Java Applet realisieren Spiele- und Multimedia-Programmierung 2
H Tic Tac Toe / 3 Gewinnt OHNE Applet Spiele- und Multimedia-Programmierung 9
Y Applet für "Vier Gewinnt": Welche Klassen verwende Spiele- und Multimedia-Programmierung 10
Kidao Frame oder Applet oder Applet im Frame ? Spiele- und Multimedia-Programmierung 5
S 3d applet - online game Spiele- und Multimedia-Programmierung 4
F Brauche Hilfe bei Bewegung eines Rechtecks [Applet] Spiele- und Multimedia-Programmierung 5
C OpenGl Support für Applet (sun.java2d.opengl=True) Spiele- und Multimedia-Programmierung 3
C Java3D-Applet bleibt weiss! Spiele- und Multimedia-Programmierung 10
M Java3D als Applet auf der Homepaeg Spiele- und Multimedia-Programmierung 7

Ähnliche Java Themen

Neue Themen


Oben