Ich entwickle gerade ein 2D Java Spiel mit Swing als meiner primären Zeichenkomponente. Jedes Objekt hat einen Schatten (BufferedImage), aber jeder Schatten überlappt andere Schatten. Ist es möglich, dass sich die Schatten nicht überlappen? Weil ich immer noch möchte, dass die Schatten über den Spieler ziehen, wenn das Objekt darunter ist, und nicht, wenn das Objekt über dem Spieler ist. Hier ist ein Bild für Klarheit:Java Spiel 2D überlappende Schatten mit Swing
Ich habe bei Alpha Blending sah, ich denke, ich brauche auslagern? Ich habe auch daran gedacht, alle Schatten (ohne Transparenz) auf eine Ebene zu zeichnen und dann mit Transparenz zu zeichnen, aber dann wird nicht wie zuvor über den Player und andere Objekte gezeichnet.
Ich habe ein Draw-Objekt, das ein JPanel ist und überschreibt die paintComponent-Methode. In dieser Methode zeichne ich den Boden des aktuellen Raums und dann iteriere ich über die Liste der Objekte, die zum aktuellen Raum gehören, und rufe die Zeichenmethode jedes Objekts auf, um alles zu zeichnen.
Das Objekt Streck-Verfahren:
public void draw(Graphics g) {
if (visible && checkInScreen()) {
// The required drawing location
int drawLocationX = getX() - globalCameraX;
int drawLocationY = getY() - globalCameraY;
if (shadow) {
g.drawImage(shadowImages.get(imageIndex),
drawLocationX + shadowOffset.x + (getImageWidth()/2),
drawLocationY + shadowOffset.y, null);
}
g.drawImage(images.get(imageIndex), drawLocationX, drawLocationY, null);
//Collisionbox
if (SHOW_COLLISION_BOXES){
g.setColor(Color.WHITE);
g.drawRect(drawLocationX + getCollBoxX(), drawLocationY + getCollBoxY(), getCollBoxW() - getCollBoxX(), getCollBoxH() - getCollBoxY());
}
}
}
Ich entschuldige mich, wenn diese Frage schon gefragt worden, aber ich konnte nicht etwas Ähnliches wie diese finden.
Zeichnen Sie alle Ihre Schatten auf einer Ebene ist eine gute Idee. Wenn du deine Schatten zuletzt zeichnest, warum werden sie nicht auf Spieler und Objekte zeichnen? – eldo
Aber würde nicht der Schatten dann über das Objekt zieht, dass „den Schatten wirft“? Da die Schatten sind teilweise hinter dem Objekt –
Nö, wenn Ihr Schatten nur Teile, die jetzt sichtbar sind. Ein Baumschatten wird also niemals den Baum selbst bedecken. – eldo