सबसे पहले एक नई कक्षा बनाएं जो WorldView
कक्षा को बढ़ाती है। मैंने अपनी नई कक्षा Background
बुलाया। तो इस नए वर्ग में paintBackground
विधि को ओवरराइड करने के लिए आपको आवश्यक सभी जावा पैकेज आयात करने की आवश्यकता होगी। यह होना चाहिए:
import city.soi.platform.*;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.ImageObserver;
import javax.swing.ImageIcon;
import java.awt.geom.AffineTransform;
अगला वर्ग के नाम के बाद यकीन है कि यह कहते हैं WorldView
फैली हैं। कुछ इस तरह:
public class Background extends WorldView
तो इस तरह Image
कुछ प्रकार Game
की चर खेल और प्रकार की एक छवि चर घोषित:
private Game game;
private Image image;
तो इस वर्ग के निर्माता में यकीन है कि प्रकार के खेल बनाने के Game
कन्स्ट्रक्टर के हस्ताक्षर में है और कॉल में super
पर आपको WorldView
प्रारंभ करना होगा, गेम शुरू करें और छवि चर शुरू करें, इस तरह कुछ:
super(game.getCurrentLevel().getWorld(), game.getWidth(), game.getHeight());
this.game = game;
bg = (new ImageIcon("lol.png")).getImage();
तो फिर तुम सिर्फ paintBackground
विधि बिल्कुल उसी तरह के रूप में आप किया था जब Player
कक्षा में paint
विधि अधिभावी ओवरराइड। बस इस तरह:
private Background image;
And in the Game constructor:
image = new Background(this);
:
public void paintBackground(Graphics2D g)
{
float x = getX();
float y = getY();
AffineTransform transform = AffineTransform.getTranslateInstance(x,y);
g.drawImage(bg, transform, game.getView());
}
अब अंत में आप कुछ इस तरह नया वर्ग तुम सिर्फ Game
वर्ग में किए गए एक वर्ग स्तर संदर्भ घोषित करने और Game
निर्माता में यह आरंभ करने के लिए, है
आखिरकार आपको बस फ्रेम में पृष्ठभूमि जोड़ना है! यही बात है कि मुझे यकीन है कि हम सब गायब थे। आप चर frame
घोषित किया गया है के बाद कुछ इस तरह करना है कि ऐसा करने के लिए:
frame.add(image);
सुनिश्चित करें कि आप सिर्फ frame.pack();
से पहले इस कोड को जोड़ते हैं। यह भी सुनिश्चित करें कि आप पृष्ठभूमि छवि का उपयोग करें जो बहुत बड़ा नहीं है!
अब यह है! मैंने देखा है कि गेम इंजन जेपीईजी और पीएनजी छवि प्रारूपों को संभाल सकते हैं लेकिन दूसरों का भी समर्थन कर सकते हैं। भले ही इससे आपके गेम में पृष्ठभूमि छवि शामिल हो, यह सही नहीं है!क्योंकि एक बार जब आप अगले स्तर पर जाते हैं तो आपके सभी प्लेटफ़ॉर्म और स्प्राइट अदृश्य होते हैं और आप जो भी देख सकते हैं वह आपकी पृष्ठभूमि छवि और गेम में शामिल किसी भी जेएलबेल/जब्बोंट्स है।
आपके उत्तर के लिए धन्यवाद। मेरे पास कुछ प्रश्न हैं- 1. संबंधित छवि कहां स्थित होनी चाहिए? क्या आप छवि का एक उदाहरण स्रोतपथ दे सकते हैं क्योंकि मुझे यकीन नहीं है कि इसे कैसे रखा जाना चाहिए। – Dew
2. कहें कि क्या मैं उपर्युक्त कोड का उपयोग करके 'पृष्ठभूमि' नामक एक वर्ग बना रहा हूं, पृष्ठभूमि कक्षा से मेरे 'गेम' वर्ग (जो दृश्य को नियंत्रित करता है, गेम विंडो का आकार) में मुझे किस विधि को कॉल करने की आवश्यकता है, पृष्ठभूमि छवि प्रकट करते हैं? कृपया एक उदाहरण दें। – Dew
यहां कोड है जिसका उपयोग मैं वर्तमान में अपनी गेम विंडो के पृष्ठभूमि रंग को सेट करने के लिए करता हूं- देखें = नया वर्ल्ड व्यू (विश्व, चौड़ाई, ऊंचाई); view.setBackground (नया रंग (230, 245, 255)); – Dew