Hey Leute!
Ich möchte so langsam anfangen ein Spiel für Android zu schreiben, habe aber noch keine Ahnung wo ich am besten einsteigen kann
Deshalb brauche ich eure Hilfe
Ich habe vor die App auf „ManaWarII“ zu basieren, also ich fände es ziemlich hilfreich wenn ich einen großteil der Funktionen von ManaWarII übernehmen könnte.
Soweit ich weiß kann ich ohne bestimmte Libaries nicht auf Awt/Swing zugreifen… richtig?
Was ich ziemlich wichtig finde sind nämlich die Awt Methoden, mit denen Bilder berechnet und zerlegt werden können sowie Rectangles. Darauf basiert meine Sprite-Generation und die Kollisionserkennung.
Den Rest kann ich notfalls auch ersetzen.
Buttons, Design usw. möchte ich sowieso neu gestalten aber von den ganzen Funktionen die Awt bietet bin ich halt ziemlich abhängig…
Sound und Musik regle ich im Moment mit ein paar eigenen Klassen bzw. „Easyogg“:
[SPOILER]
package org.black_ixx.manawar.audio;
import org.black_ixx.manawar.Enums.Volume;
public abstract class AudioClip {
private String path;
public AudioClip(String path){
this.path=path;
}
public String getPath(){
return path;
}
public abstract void setVolume(Volume v);
public abstract void play();
public abstract void loop();
public abstract void stop();
}
package org.black_ixx.manawar.audio;
import java.io.IOException;
import org.black_ixx.manawar.ManaWar;
import org.black_ixx.manawar.Enums.Volume;
import org.newdawn.easyogg.OggClip;
//Für Musik (Braucht weniger Speicherplatz)
public class OGGClip extends AudioClip{
private OggClip clip;
public OGGClip(String path) {
super(path);
try {
clip = new OggClip(ManaWar.class.getResourceAsStream("/org/black_ixx/manawar/media/audio/"+path+".ogg"));
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void setVolume(Volume v) {
clip.setGain(v.getFloat());
}
@Override
public void play() {
clip.play();
}
@Override
public void loop() {
clip.loop();
}
@Override
public void stop() {
clip.stop();
}
}
package org.black_ixx.manawar.audio;
import java.net.URL;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.FloatControl;
import org.black_ixx.manawar.Enums.Volume;
import org.black_ixx.manawar.ManaWar;
//Für kurze Sounds
public class WAVClip extends AudioClip{
private Volume v;
private URL url;
public WAVClip(String path) {
super(path);
url=ManaWar.class.getResource("/org/black_ixx/manawar/media/audio/"+path+".wav");
}
@Override
public void setVolume(Volume v) {
this.v=v;
}
@Override
public void play() {
try{
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(url);
Clip clip = AudioSystem.getClip();
clip.open(audioInputStream);
FloatControl gainControl = (FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN);
gainControl.setValue(v.getInt());
clip.start();
}catch(Exception e){
e.printStackTrace();
}
}
@Override
public void loop() {
// TODO Auto-generated method stub
}
@Override
public void stop() {
// TODO Auto-generated method stub
}
}
[/SPOILER]
Wenn es für Android auch direkt eine gute API für Sounds gibt wäre ich sehr begeistert
Im Moment bin ich auf der Suche nach einem guten Start und der richtigen API für die Android Entwicklung…
Weiß jemand von euch vielleicht ob die Android API genug Funktionen und Ersatz für Awt bietet oder habt ihr vielleicht sogar eine gute Empfehlung für eine hilfreiche Engine/API für mich oder andere Android Einsteiger?
Ich wäre wirklich sehr dankbar über ein paar Antworten
Grüße
Felix