Bye J2ME - Hello J2SE Games

oneof6

Mitglied
Hi,

da ich jetzt mein Hobby, J2ME Spiele zu entwickeln, aufgegeben hab', habe ich mir ein neues Projekt vorgenommen. Hier ist also die erste DEMO (welche noch nen Codenamen trägt). Die finale Version soll "Funfair Fella" heißen. Die Demo ist komplett spielbar (2 Level). Zur Fertigstellung muss ich noch ordentliche Level machen, den Sound polieren und kleinere Dinge fixen.

Das Spiel ist pädagogisch nicht besonders wertvoll, da der Protagonist ne Menge Alkohol trinken muss. Hier mal ne kurze Beschreibung der Spielregeln:

- Je mehr Flaschen ausgetrunken werden, desto höher steigt der Alk-Spiegel
- Je höher der Alk-Spiegel, desto mehr Punkte bekommt man
- Trinkt man weiter obwohl der Alk-Spiegel auf Maximum ist, gibt's extra Punkte
- Je betrunkener der Spieler ist, desto schlechter lässt er sich steuern
Gegnerklassen:
- Schießbuden Typ, schießt auf den Spieler, wenn dieser in Feuerlinie ist
- Wahrsager, quatscht Spieler voll, verwirrt den Spieler und kehrt Steuerung um
- Security, zieht Spieler eins über, verfolgt den Spieler

Steuerung:
- strg - Feuer (eigentlich trinken)
- Pfeiltasten - Richtungssteuerung
- P - Pause

Ihr könnt ja mal raushauen wie's bisher gelungen ist!

Ciao,
OneOf6
 

Anhänge

Zuletzt bearbeitet:
Ich find dein Vorhaben klasse ... jedoch muss ich dich gleich mal entmutigen :
Ich hab mir das Zip geladen und dierekt gestartet ... es öffnete sich ein Fenster und es passierte NICHTS ...
Also das JAR aus dem ZIP extrahiert ... CMD ... und guck mal was ich da an den Kopf bekommen habe :
Code:
java -jar DrunkenJonny_DEMO.jar

java.io.IOException: mark/reset not supported
	at java.util.zip.InflaterInputStream.reset(InflaterInputStream.java:286)
	at java.io.FilterInputStream.reset(FilterInputStream.java:226)
	at com.sun.media.sound.AudioFileSoundbankReader.getSoundbank(AudioFileSoundbankReader.java:73)
	at javax.sound.midi.MidiSystem.getSoundbank(MidiSystem.java:530)
	at jonny_0_5.MusicBox.<init>(MusicBox.java:51)
	at jonny_0_5.Board.preloader(Board.java:85)
	at jonny_0_5.Board.drawTitle(Board.java:400)
	at jonny_0_5.Board.paint(Board.java:101)
	at javax.swing.JComponent.paintToOffscreen(JComponent.java:5221)
	at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1482)
	at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1413)
	at javax.swing.RepaintManager.paint(RepaintManager.java:1206)
	at javax.swing.JComponent._paintImmediately(JComponent.java:5169)
	at javax.swing.JComponent.paintImmediately(JComponent.java:4980)
	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:770)
	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:728)
	at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:677)
	at javax.swing.RepaintManager.access$700(RepaintManager.java:59)
	at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1621)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
	at java.awt.EventQueue.access$000(EventQueue.java:101)
	at java.awt.EventQueue$3.run(EventQueue.java:666)
	at java.awt.EventQueue$3.run(EventQueue.java:664)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at jonny_0_5.MusicBox.setVolume(MusicBox.java:118)
	at jonny_0_5.Board.preloader(Board.java:87)
	at jonny_0_5.Board.drawTitle(Board.java:400)
	at jonny_0_5.Board.paint(Board.java:101)
	at javax.swing.JComponent.paintToOffscreen(JComponent.java:5221)
	at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1482)
	at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1413)
	at javax.swing.RepaintManager.paint(RepaintManager.java:1206)
	at javax.swing.JComponent._paintImmediately(JComponent.java:5169)
	at javax.swing.JComponent.paintImmediately(JComponent.java:4980)
	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:770)
	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:728)
	at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:677)
	at javax.swing.RepaintManager.access$700(RepaintManager.java:59)
	at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1621)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
	at java.awt.EventQueue.access$000(EventQueue.java:101)
	at java.awt.EventQueue$3.run(EventQueue.java:666)
	at java.awt.EventQueue$3.run(EventQueue.java:664)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Was jedoch erkennbar ist : die NPE tritt erst durch die IOE auf ...
Hier noch die Anmerkung : warum machst du das im EDT ?

System : Windows 7 Ultimate x64
Java : Sun/Oracle Java 7 x86 / x64 *beide der selbe Fehler*

Hier stimmt also offensichtlich irgendwas nicht ... da ich weder Source habe noch dir diesen Fehler verschweigen möchte poste ich ich ihn einfach in der Hoffnung du bekommst das gefixed.
Was allerdings die erste Exception soll ... dazu würde ich dann doch mal gerne die Code-Zeile sehen ...
 
Mmh,

prima. Hast Du die Möglichkeit, dass mit ner 1.6er Java und 32 Bit zu testen. Vielleicht wird die Sound-API in 7 nicht mehr unterstützt?
 
Jop ... die habe ich ... auch wenn nur in Form einer VM mit XP .. aber ja .. da habe ich von 1.4 bis 7 alle drauf ... ich werd es sofort in Angriff nehmen ...

ps : Ergebnis wird via EDIT eingefügt ... dafür wäre ein doppel-Post zu viel ... also einfach mal in 5 min wieder reinschauen.

// EDIT

Ähm ok ... das könnte sich doch etwas in die Länge ziehen weil meine VM grade extreme Probleme hat und nicht mal sauber hochfährt ... geschweige denn Java irgendwie anläuft *in keiner Version ... überhaupt nix*.

Ich muss daher mal schnell eine neue VM installieren ... geschätzter Zeitaufwand : knappe 20min

Werde das Ergebnis dann vorraussichtlich in einem Post bekannt geben ... du kannst also ruhig antworten.
 
Zuletzt bearbeitet von einem Moderator:
Also bei mir gehts
XP 32bit Prof, Java 1.6

Witziges Spiel :D
Im Level 2 wurde ich erschossen...

edit:Alles implementierte geschafft :D

Aber die Taste m spinnt irgendwie...für was ist die überhaupt gut?
 
Zuletzt bearbeitet:
Also mir ist es den Aufwand schon wert ... immerhin will ich ja auch wissen was da so abgeht. Ob meine VM allerdings die Leistung bekommt die laut Einstellungen zugewiesen wurden *1CPU-Core exklusiv , 2D- und 3D-Hardwarebeschleunigung und DirectSound* ... das werd ich dann sehen ...
 
Also ohne das ich jetzt das ganze testen konnte *VM installiert noch* fällt mir anhand der Exception schon auf das es NICHT an der Sound-Engine liegen kann.
Wenn man es genau liest stimmt da was mit dem InflaterStream nicht. Darum sagte ich ja das ich dazu dann bitte doch mal die entsprechenden Zeilen sehen möchte *also deklaration und ALLE Operationen die auf den Stream angewendet werden bis einschließlich zur NPE*.

Warum ist mir das vorhin eigentlich nicht sofort aufgefallen ?
 
So,

die "M" Taste ist deaktiviert. Ich hab's jetzt auf verschiedenen Systemen getestet und wenn's abschmiert dann isses immer die alte Sound-API.
 
Zurück