# X-Shooter Game



## Developer_X (23. Dez 2009)

Hi, ich wollte mal ein kleines Game präsentieren, dass ich mit den neu erworbenen Mathematik Kenntnissen erworben habe, programmiert habe.

Man kann es sich hier runterladen:
http://www.imperatorclan.kilu.de/X-Shooter.zip
für WindowUser: Einfach auf Run.bat klicken
für andere: Startet die Jar so wie ihr alle Jars startet

Ich hoffe es ist einiger maßen spiel bar, es funktioniert wie folgt:

*Steuerung:*
Mit den Pfeiltasten könnt ihr nach links und rechts.
Mit einem rechtsklick könnt ihr nach oben springen.
Mit einem links klick könnt ihr schießen.
Wenn ihr keine Munition mehr habt müsst ihr sie aufladen mit Mausrad hoch, 
um eure Waffe zu wechseln, einfach Mausrad runter.
mit STRG könnt ihr ebenfalls springen.

*Objekte:*
Die Blauen großen Kasten könnt ihr mit eurem Scharfschützengewehr zerstören und kriegt dadurch punkte.
Die roten kleinen Kästen könnt ihr mit eurem Maschienengewehr zerstören und kriegt dadurch punkte.
Die Roten kugeln die runter fallen, geben euch munition.
Die Blauen Kästen die runter fallen, verletzen euch, ihr verliert leben.

Viel Spaß, 
Developer_X
Developer_X


----------



## Zenic (23. Dez 2009)

Ich kann das Spiel zwar hier nicht testen, aber ich habe schonmal einen Verbesserungsvorschlag. Du solltest vielleicht eine zusätzliche Möglichkeit für den Waffenwechsel und das Aufladen der Munition anbieten, denn nicht jeder Maus hat ein Mausrad. (Mac?, Notebook) Die übrigen Pfeiltasten wären zum Beispiel noch frei.

Zenic


----------



## Quaxli (23. Dez 2009)

Intuitiv ist das Ding irgendwie nicht bedienbar. 

Ein paar Dinger sind mir schon mal aufgefallen:
Warum hat das Ding eine bat-Datei dabei? Man kann jars auch so starten.
Noch besser wäre natürlich Webstart.
Man kann das Spiel nicht abbrechen. Oder hab ich was übersehen?
Der grüne Strahl und der Cursor sind nicht synchron.
Ich finde es etwas frickelig, wenn ich (als Rechtshänder) die Figur mit den Cursor-Tasten steuern soll, das Zielen aber nur mit Maus geht. Hier wäre es wünschenswert, wenigstens noch zusätzlich die Tasten WASD abzufragen.

Soweit von mir...


----------



## Developer_X (23. Dez 2009)

erstens: Es ist eine Batch Datei für alle Windows User dabei, denn nicht alle PCs sind so darauf eingestellt, Jars einfach so zu starten, bei mir zum Beispiel geht das nicht, ich könnte es um stellen, machs aber nicht :lol: .
Gut ich verbesser mal eure Vorschläge:

WASD verwenden zur steuerung,
ESC    verwenden zum schließen
 Mit den tasten ENTF nachladen und ENDE zum wechseln


Das mit dem Synchronisieren lasse ich mal so stehen, da es ein zusätzlicher Schwierigkeits faktor sein soll, 
denn wenn die Kugel so fliegen würden wie der cursor, wäre es einfach und langweilig, wenn sie so fliegen wie das Nachtsichtgerät es vorzeigt, ist es besser finde ich,
ich mach daraus übrigends auch ne weihnachts edition^^


----------



## javimka (23. Dez 2009)

Welche konkreten mathematischen Erkenntnisse hast du denn hier einfliessen lassen? Polarkoordinaten?

Nach einiger Zeit, bin ich immer besser mit der Steuerung zureckgekommen und eignentlich ist es noch ganz lustig. Etwas verwirrend ist der grüne Laserstrahl, der nicht dahin zeigt, wo der Cursor hinzeigt. Mit dem Scharfschützengewehr, muss man ja dann doch genau auf die blauen Blöcke schiessen, damit sie zerstört werden. Da dachte ich zu Anfang, nur die Richtung des Strahls sei wichtig.

Manchmal, wenn man klickt, schisst es nicht. Das passiert, wenn man die Maus ganz leicht bewegt, während dem Klick. Du solltest dem Panel, das den MouseListener registriert hat noch einen MouseMotionListener anhängen und dort mouseDragged überschreiben, dann funktioniert das auch.


----------



## Heady86 (23. Dez 2009)

Kleiner Tipp:


> Mit den tasten ENTF nachladen und ENDE zum wechseln



macht keinen Sinn mehr wenn du die Steuerung auf WASD umlegst.


----------



## Paddelpirat (23. Dez 2009)

Du könntest dich ja auch mal an einem Menü versuchen, indem der Benutzer die Tastenbelegung seinen wünschen anpassen kann. Ist zwar nicht das Wichtigste, aber da du dich ja anscheinend häufiger an Spielen versuchst, wäre das sicherlich ein Programmteil, den du immer wieder verwenden könntest.


----------



## OliverKroll (23. Dez 2009)

Nett.
Mein Notebook ist von 2003, ich habe deshalb nur 2 bis 5 Bilder pro Sekunde.
Mich persönlich würde immer der Programmtext interessieren - wenn sich das machen ließe.


----------



## Developer_X (23. Dez 2009)

http://www.imperatorclan.kilu.de/X-Mas-Shooter.zip

Da ist die neue Version mit Hilfs HTML ich habe die Steuerung sehr stark vereinfacht, und dem Spieler mehr Möglichkeiten und Freiraum gelassen, aber dafür auch den Schwierigkeitsgrad mit den Eiszapfen erhöht.

Developer-X


----------



## Steev (23. Dez 2009)

@DevX:
Tut mir leid das sagen zu müssen. Aber ich raffe das Spiel nicht...

Mal kann man schießen, dann kann man wieder nicht schießen. Und was sind das für Vierecke die Überall rumfliegen?
Gibt es vieleicht so eine Art Anleitung oder so etwas?


BTW:
Bei mir ruckelt das Spiel auch ziemlich. Ich nehme an, dass ein Großteil des Spieles über die Standardzeichenmethoden und nicht als Bitmaps gezeichnet wird. Sollte das der Fall sein, so kannst du das Spiel um einiges beschleunigen, wenn du die Primitiven in Bitmaps zeichnest und dann nur die einmal gerenderten Bitmaps zeichnest. Erstaunlicherweise ist es nämlich performanter eine 100x100 Bitmap zu zeichnen als ein 100x100 Rectangle füllen und zeichnen zu lassen.

Edit:
Ok, du hast ja jetzt eine HELP.html und andere Grafiken...


----------



## Developer_X (23. Dez 2009)

Bitmaps, noch nie was davon gehört, zeig mal anhand des folgenden Codes wie das geht.

```
public class Game
{
Image image;

public Game()
{
load();
//...
draw();
}
public void load() throws Exception
{
image = ImageIO.read(new File("sources/X.png");
}
public void draw()
{
g.drawImage(image,0,0,50,50,this);
}
}
```

Danke wenn dus mir erklären könntest.
Bei mir ruckeln die Spiele übrigstens nie, aber die anderen beschweren sich immer, KA warum.


----------



## Developer_X (23. Dez 2009)

Paddelpirat hat gesagt.:


> Du könntest dich ja auch mal an einem Menü versuchen, indem der Benutzer die Tastenbelegung seinen wünschen anpassen kann. Ist zwar nicht das Wichtigste, aber da du dich ja anscheinend häufiger an Spielen versuchst, wäre das sicherlich ein Programmteil, den du immer wieder verwenden könntest.



Das ist ne echt schlaue Idee von dir, werd ich mal machen, man kann ja die Key Ereignisse einfach in einem Int in ne Datei speichern und genauso gut wieder rauslesen.

Developer_X


----------



## Steev (23. Dez 2009)

Developer_X hat gesagt.:


> Bitmaps, noch nie was davon gehört, zeig mal anhand des folgenden Codes wie das geht.



Das mit den Bitmaps ist eigendlich eine ganz simple Sache. Ich nehme mal an, dass du in etwa so etwas gemacht hast:
[Java]public void paint(Graphics g) {
  g.setColor(Color.BLUE);
  g.fillRect(x, y, 200, 200);
}[/Java]

Da du ja mehrere Objekte hast, wird also diese Standardzeichenmethode mehrmals aufgerufen und saugt somit enorm viel Performance.

Daher würde ich das ganze anhand o.g. Beispiels wie folgt machen:
[Java]private BufferedImage yourRectangle = null;
public void paint(Graphics g) {
  if (yourRectangle == null) {
    yourRectangle = new BufferedImage(200, 200, BufferedImage.TYPE_INT_ARGB);
    Graphics2D g2 = yourRectangle.createGraphics();
    g2.setColor(Color.BLUE);
    g2.fillRect(0, 0, 200, 200);
  }
  g.drawImage(x, y, yourRectangle, null);
}
[/Java]


----------



## ice-breaker (23. Dez 2009)

Developer_X hat gesagt.:


> Danke wenn dus mir erklären könntest.
> Bei mir ruckeln die Spiele übrigstens nie, aber die anderen beschweren sich immer, KA warum.



möglicherweise weil ein schneller Prozessor jeden Scheiß wegsteckt, den man produziert, ein langsamer aber nicht?


----------



## Ein Keks (24. Dez 2009)

schießt vielleicht bei jeden 10. klick wenn überhaupt also da musst du echt nochma was dran ändern
desweiteren wenn du schon gif grafiken benutzt dann nutzt doch auch gleich den alpha kanal mit - die weißen ränder sind hässlich^^
benutzt du eigentlich nur den standart Thread oder hast du noch nen zusätlichen als gameloop da es bei mir wunderbar läuft (pentium 4 mit 3,2 GHz ^^) 
ist es eigentlich gewollt dass da immer eine reihe von paketen ist sollten die nicht etwas mehr verteilt sein? 
spielidee ist zwar ganz nett aber gibt noch einige verbesserungen (warum zucken die ganzen balken eigentlich so rum wenn man springt?) 
und die sounds sind wohl geschmackssache aber mich nerven die furchtbar(vorallem wenn man getroffen wird) wie wärs mit ner funktion zum muten?



			
				Developer_X hat gesagt.:
			
		

> Das ist ne echt schlaue Idee von dir, werd ich mal machen, man kann ja die Key Ereignisse einfach in einem Int in ne Datei speichern und genauso gut wieder rauslesen.


guck dir mal Properties an


----------



## Developer_X (24. Dez 2009)

Haste dir überhaupt Hilfe.html angesehen?
Da steht doch klar und deutlich, dass man schießen kann mit STRG.
Ich empfehle dir
zile mit der maus,
schieße mit STRG und bewege dich mit den Pfeiltasten

Developer_X


----------



## Meldanor (24. Dez 2009)

Ich hab leider das Problem, dass ich mir das Spiel nichtmal runterladen kann 
Error 404 : Page not found

EDIT: Bin doof, hab das "alte" genommen ^^


----------



## Developer_X (24. Dez 2009)

Meldanor hat gesagt.:


> Ich hab leider das Problem, dass ich mir das Spiel nichtmal runterladen kann
> Error 404 : Page not found
> 
> EDIT: Bin doof, hab das "alte" genommen ^^



lol
aber sag mal wie findest dus?


----------



## tuxedo (24. Dez 2009)

ice-breaker hat gesagt.:


> möglicherweise weil ein schneller Prozessor jeden Scheiß wegsteckt, den man produziert, ein langsamer aber nicht?



Also ein Intel Q6600 4x2.4Ghz, 4GB Ram und Ubuntu 9.10 64bit beschleunigen das Ding auch nicht. Läuft leicht ruckelig und die Bedienung ist mehr als "seltsam". Es kracht und lacht ständig ("Lach und Krach Geschichten" ROFL). Mehr aber auch nicht. 

Ich würde das "Spiel" als "frühe Alpha" bezeichnen. Mehr aber noch nicht.


----------



## tuxedo (24. Dez 2009)

tuxedo hat gesagt.:


> Also ein Intel Q6600 4x2.4Ghz, 4GB Ram und Ubuntu 9.10 64bit beschleunigen das Ding auch nicht. Läuft leicht ruckelig und die Bedienung ist mehr als "seltsam". Es kracht und lacht ständig ("Lach und Krach Geschichten" ROFL). Mehr aber auch nicht.
> 
> Ich würde das "Spiel" als "frühe Alpha" bezeichnen. Mehr aber noch nicht.



P.S.



> !!! Möge die Macht mit dir sein !!! --Willkommen auf der Startseite des IMPERATOR_CLANs-- !!! Schließt euch unserem CLAN an oder sterbt !!!



ROFLMAO *You made my day* Wie alt seid ihr denn?

P.P.S.

Die Help-HTML:

Der Knüller. *You made my day [RELOADED]* ...

Blau schrift auf roten Hintergrund. Das ist SUPER lesbar. Glückwunsch zur geglückten Hilfe-Seite.


----------



## Meldanor (24. Dez 2009)

Also auf meiner "HÖLLENMASCHINE" (4 Kern Prozessor AMD Phenom II 820, 4GB DDR-3 RAM, Geforce 9800GTX/GTX +, WinXP 32Bit) läuft das Spiel einwandfrei.
ICh würde mich jedoch tuxedo in dem Punkt anschließen(nicht so niedermachend sein an Weihnachten, Herr Pinguin), dass das Spiel eine relativ frühe BEta ist.
Ok, ich bin selber interessierter Spieler und vllt. zu sehr verwöhnt, doch den Sinn des Spieles verstehe ich nicht. Eventuel ein Ingame Tutorial, was man machen muss.
Desweiteren ist es schwer, sich mit dem Spiel anzufreunden, wenn man gleich reingeworfen wird und es überall kracht und lacht.
Was ich jedoch cool finde, ist dieser Laser ^^ Ich weiß nicht, mir gefällt der Effekt einfach ^^


----------



## radiac (24. Dez 2009)

Hab das Spiel auch mal getestet.

Also... ein Spiel ist doch ein Spiel, wenn es Spass macht, oder irre ich mich?
Ich finde, das Spiel macht kein Spass.
Da fehlt noch sooo viel.

Irgendwie finde ich es auch nicht so sonderbar, da es irgendwie schon 1000 andere Spieler dieser Art gibt. Wenn es sich um ein übungsSpiel handelt, dann ist es okay. Aber das als Release zu nennen, finde ich noch mehr als früh.

Ich hoffe, meine ehrliche Kritik nimmst du mir nicht böse, denn nur so wird man besser .

Ein Frohes Fest und lasst euch alle schön beschenken!!! :applaus:


----------

