[QUOTE=IDC]Ganz nett, wirklich
Ich finde die Idee der verschiedenen Skills ganz gut! Ich würde das Allerdings nicht mit drei verschiedenen Tasten für drei verschiedene Skills arbeiten, sondern stattdessen eine Art Inventar implementieren! Geschmacksache…
Verschiedene Maps sind natürlich auch schön. Sowie du das umsetzt ist das allerdings sehr unvariabel und macht einen map creator auch sehr schwierig!!
Noch lässt sich das Spiel auch sehr schwer spielen, da die Charaktere etwas zu langsam unterwegs sind.
Und wo ich mich noch gefragt ob das Absicht ist:
Der schwarz-rote Hampelman springt bei mir vom Boden bis fast an den obersten Spielfeldrand und das erschien mir etwas komisch!
EDIT:
Ach ja, wieso heißen die .class dateien a-,b-,c-,d.class und A-,B-,C-,D.class???[/QUOTE]
Erstmal Danke fürs Austesten
Wie würde denn dein Skill Inventar aussehen?
Ich habe noch geplant in den Einstellungen jedem Nutzer zu erlauben eigene Tasten festzulegen dann sollten die Skills auch etwas einfacher einsetzbar sein.
Die Geschwindigkeit der Charakter werde ich noch etwas anpassen und die Sprunghöhe von der „Shadow“ Figur ist auch Absicht.
Im Moment ist das in etwa so:
Shadow:
Hüpft sehr hoch
Ist langsam
Mittel-Gute Skills
Flamos:
Hüpft sehr niedrig
Mittel schnell
Gute Skills (Feuerschaden)
Assassine:
Hüpft Mittel-hoch
Schnell
Eher schlechte Skills
Was die Klassen angeht:
Vor einer Weile als ich noch mehr Plugins für Bukkit (Minecraft) geschrieben habe wurden mir einmal ein Plugin „gestohlen“ (also jemand hat es kopiert/bearbeitet und dann als sein eigenes verkauft). Seitdem greife ich auf Programme zurück die meinen Code schützen und die Klassen und Methoden umbenennen.
Ich poste mal den Code des Inventar’s das ich für ein eigenes Spiel verwende und passe ihn etwas an:
import game.Settings;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Point;
import java.util.LinkedList;
import listener.InventoryChangedEvent;
import listener.InventoryChangedListener;
public class Inventory {
private InventoryChangedListener icl = null;
private LinkedList<Holdable> inventarObjects = new LinkedList<>();
private int selectedSlot = 0;
public void setSelectedSlot(int newSelected_Slot) {
if (newSelected_Slot >= inventarObjects.size()) {
newSelected_Slot = 0;
} else if (newSelected_Slot < 0) {
newSelected_Slot = inventarObjects.size() - 1;
}
selectedSlot = newSelected_Slot;
}
public int getSelectedSlot() {
return selectedSlot;
}
public Holdable getSelectedObject() {
if (selectedSlot >= inventarObjects.size()) return null;
return inventarObjects.get(selectedSlot);
}
public void addInventoryObject(Holdable h) {
inventarObjects.add(h);
selectedSlot = inventarObjects.size() - 1;
if (icl != null) icl.inventoryChanged(new InventoryChangedEvent());
}
public void removeInventoryObject(Holdable h) {
inventarObjects.remove(h);
if (icl != null) icl.inventoryChanged(new InventoryChangedEvent());
}
public void removeSelectedInventoryObject() {
inventarObjects.remove(selectedSlot);
if (icl != null) icl.inventoryChanged(new InventoryChangedEvent());
}
public LinkedList<Holdable> getInventoryObjs() {
return inventarObjects;
}
public void addInventoryChangedListener(InventoryChangedListener icl) {
this.icl = icl;
}
public void removeInventoryChangedListener() {
this.icl = null;
}
public void draw(Graphics g, Point pos, Dimension imageSize) {
int counter = 0;
for (Holdable toDraw:inventarObjects) {
g.drawImage(Image_s.getResizedImage(toDraw.getSlotImage(), imageSize.width, imageSize.height), pos.x+(counter*(imageSize.width+10)), pos.y, null);
if (counter == selectedSlot) {
g.fillRect(pos.x+(counter*(imageSize.width+10)), pos.y+imageSize.height, imageSize.width, 4);
}
counter++;
}
}
}```
Einige Methoden weisen auf andere Klassen hin, aber sie sind doch relativ selbsterklärend ;)
[QUOTE=iFelixxxx;68945]Seitdem greife ich auf Programme zurück die meinen Code schützen und die Klassen und Methoden umbenennen.[/QUOTE]
Naja, wenn dir ein besseres Gefühl gibt...
Das lässt dann auch vermuten das du nicht gewillt bist deinen Source Code mal zu veröffentlichen, damit wir ihn hier mal überprüfen können und vielleicht Tipps geben?!
Ich poste mal den Code des Inventar’s das ich für ein eigenes Spiel verwende und passe ihn etwas an:
import game.Settings;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Point;
import java.util.LinkedList;
import listener.InventoryChangedEvent;
import listener.InventoryChangedListener;
public class Inventory {
private InventoryChangedListener icl = null;
private LinkedList<Holdable> inventarObjects = new LinkedList<>();
private int selectedSlot = 0;
public void setSelectedSlot(int newSelected_Slot) {
if (newSelected_Slot >= inventarObjects.size()) {
newSelected_Slot = 0;
} else if (newSelected_Slot < 0) {
newSelected_Slot = inventarObjects.size() - 1;
}
selectedSlot = newSelected_Slot;
}
public int getSelectedSlot() {
return selectedSlot;
}
public Holdable getSelectedObject() {
if (selectedSlot >= inventarObjects.size()) return null;
return inventarObjects.get(selectedSlot);
}
public void addInventoryObject(Holdable h) {
inventarObjects.add(h);
selectedSlot = inventarObjects.size() - 1;
if (icl != null) icl.inventoryChanged(new InventoryChangedEvent());
}
public void removeInventoryObject(Holdable h) {
inventarObjects.remove(h);
if (icl != null) icl.inventoryChanged(new InventoryChangedEvent());
}
public void removeSelectedInventoryObject() {
inventarObjects.remove(selectedSlot);
if (icl != null) icl.inventoryChanged(new InventoryChangedEvent());
}
public LinkedList<Holdable> getInventoryObjs() {
return inventarObjects;
}
public void addInventoryChangedListener(InventoryChangedListener icl) {
this.icl = icl;
}
public void removeInventoryChangedListener() {
this.icl = null;
}
public void draw(Graphics g, Point pos, Dimension imageSize) {
int counter = 0;
for (Holdable toDraw:inventarObjects) {
g.drawImage(Image_s.getResizedImage(toDraw.getSlotImage(), imageSize.width, imageSize.height), pos.x+(counter*(imageSize.width+10)), pos.y, null);
if (counter == selectedSlot) {
g.fillRect(pos.x+(counter*(imageSize.width+10)), pos.y+imageSize.height, imageSize.width, 4);
}
counter++;
}
}
}```
Einige Methoden weisen auf andere Klassen hin, aber sie sind doch relativ selbsterklärend ;)
Naja, wenn dir ein besseres Gefühl gibt...
Das lässt dann auch vermuten das du nicht gewillt bist deinen Source Code mal zu veröffentlichen, damit wir ihn hier mal überprüfen können und vielleicht Tipps geben?![/QUOTE]
Vielen Dank :) Ich werde mir den Inventar Code genauer ansehen und womöglicherweise sogar Inventare zu ManaWar hinzufügen.
Ich entschuldige mich für die späte Antwort. Aus schultechnischen Gründen habe ich es nicht früher geschafft. Habe gerade ziemlich viel zu tun.
Wegen dem Source Code:
Ich bin momentan noch unsicher:
Auf der einen Seite möchte ich meinen Code schützen, da ich nicht will dass mir nochmal etwas gestohlen wird,
aber auf der anderen Seite ist der Code wirklich nicht so sehr einzigartig und ein durch ein paar Tipps würde ich sicher etwas lernen.
[QUOTE=iFelixxxx]
Ich entschuldige mich für die späte Antwort. Aus schultechnischen Gründen habe ich es nicht früher geschafft. Habe gerade ziemlich viel zu tun.[/QUOTE]
Ich habe FERIEN
:laola:
Habe vor ein paar Stunden die neue Version hochgeladen: ManaWar Downloads
Sie beinhaltet neue Charaktere, einen Netzwerk Modus, neue Skills, kleine Verbesserungen und vieles mehr!
Tip: Press „Z“ while browsing through the Characters to select the hidden „Zrughie“ Character.
Sobald ich die übrigen Fehler behoben habe und Sounds hinzugefügt habe werde ich ManaWar etwas mehr „veröffentlichen“ bzw. zum Download anbieten.
Meldet euch einfach wenn ihr einen Fehler findet
Ich würde mich über konstruktive Kritik und Bewertungen freuen