Yani, bazı oyun var örneğin Pong almak varsayalım. Açıkçası, genellikle grafik sınıflara oyun mantığı karıştırmak istemiyorum konuşan, bu yüzden top veya Paddle için sınıf aslında onları çizer Jpanel gelen sepearte olduğunu. Topu topu, bugünkü konumu için hareket mantığı, isabet algılama, vb Ancak, benim Topu sınıfında Swing ve awt gelen grafik sınıfları kullanmak için kötü bir uygulamadır vardır? Örneğin, hit kutusunu belirlemek için bir java.awt.Rectangle kullanacak olsaydım. Bu sınıfta çizmeme rağmen, onu kullanıyorum. Ya da koordinatları depolamak için Java.awt.Point kullanacak olsaydım. Ben diğer bölümleri ile grafik karıştırmamaya bu sitede defalarca söylendi çünkü arada mi?
, Soruyorum nedenidir. olmayan grafikleri sınıf Dikdörtgen kullanma: (bu kötü bir uygulama mı?)
public class Ball {
static Rectangle hitbox = new Rectangle(0,10,20,20);
static void checkHit() {
if(hitbox.intersects(Paddle.hitbox) //do something
}
}
Benim Grafik sınıfı:
public class DrawMyStuff extends JPanel {
void paintComponent(Graphics g) {
super.paintComponent(g);
setBackground(Color.BLACK);
Graphics2D g2d = (Graphics2D) g;
g2d.draw(Ball.hitbox);
}
}
Bu, çoğunlukla öznel bir mesele olacak, ama vermek örnekler mükemmel ince olduğunu söyleyebilirim. Kendi Nokta ve Dikdörtgen sınıflarınızı uygulayacak olursanız, AWT'nin kullandıklarıyla neredeyse aynı olurdu - ve eğer durum buysa, neden rahatsız oluyorsunuz? –
Sorunuzda evet/hayır olması zordur. Eğer salıncak uygulaması yapıyorsanız ve kodunuz swing uygulamasından başka bir şey olmayacaksa, o zaman evet diyebilirim ki java.awt.Rectangle' sınıfını kullanmakta fayda var .. ama başka bir şey yapmayı planlıyorsanız Eğer android uygulaması için kodunuzu kullanırsanız, aslında gerçeği hatırlatmak gerekir, size salıncak/awt jar dosyaları sağlamak gerekir. ve sadece bir sınıf için projeye karmaşık bir kütüphane eklemek veya hatta bir yöntem bile – user902383