8. Grup – Qostebek Projesi
Bir Oyunlu Chat Projesi…Oto. Kaydırma Sorunu ve Çözümü
Mesaj penceremizde, yeni bir mesaj geldiği zaman, mesajların yukarı doğru kaymasını sağladık.
Bu işlemi caret(işaretçi) pozisyonunu, mesajların uzunluğuna eşitleyerek yaptık.
Kod Olarak:
int pos=jTextArea1.getDocument.getLength();
jTextArea1.setCaretPosition(pos);
Son rütuşları yaparken bu düzeltmeyi bloga yazalım istedik..
Dama Ekran Görüntüsü
Uzun süredir uğraştığımız dama hakkında ilk yazımızı yazıyoruz. Henüz tamamlayamadık ama yarısı bitti sayılır. Şuan için yoz taşların tek hamlelik hareketi ve yeme hareketini yaptık. Ayrıca karşı tarafa vardıklarında dama olabilmelerini sağladık.
Bir taşı seçtiğinizde gidebileceği yerlere taşla aynı renkte gölgeler gösteriyoruz. (Ekran görüntüsünde de görebilirsiniz.)
Bundan sonra yapacaklarımız ise, dama taşların hareketi, skor işleme, ağ üzerinden hamleyi iletip almak ve düzgün bir şekilde Qostebek’e dahil etmek.
Kodlardan örnekler veremiyoruz çünkü biraz uzunca oldu. Ayrıca damayı yaparken hiçbir Component kullanmadık gördüğünüz hemen herşey resimlerden olşmakta. Hamleleri tıklama konumlarını izleyerek gerçekleştiriyoruz.
Şuanki Ekran Görüntüsü :
Applet Sorunu ve Çözümü.
Uzunca bir zamandır Applet olarak yaptığımız oyunları Frame (swing’de diyebiliriz) içinde nasıl çalıştıracağımızı araştırıyorduk. Burada Appletin aslında bir panel olduğunu öğrendik. Yani Appletin çizim yaptığı yer bildiğimiz paneldi. Bunu da frameye eklemek de herhangi bir component eklemek demekti. Aşağıdaki kodla frameye applet ekliyoruz.Framenin psvm’sine..
frameliPencere fp = new frameliPencere();
Applet d = new damaAppleti();
fp.getContentPane().add(d);
d.init();
d.setSize(561, 561);
Applet olarak d nesnesi oluşturup bunu damaAppleti yaptık. Kullandığımız pencerenin nesnesini oluşturup Applet’i ekledik, boyutunu verdik ve init metodunu çalıştırıp başlattık.
Peki ya çizimler nasıl olacak?
Normal Image nesnesi ile bu eklenen applette resim çizimi yapamıyoruz. Bunu da Javanın sitesinde BufferedImage nesnesini kullanarak çözebileceğimizi öğrendik. Daha doğrusu resimleri dosyadan okutarak yapabiliyormuşuz..
Şöyle ki:
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
…// Global değişkenler arasına:
BufferedImage mpul;
BufferedImage kpul;
BufferedImage skpul;
BufferedImage smpul;
…// Init Metoduna : Kaynaktaki resim dosyasını al, global değişkene ver.
try {
mpul = ImageIO.read(this.getClass().getResource( “mpul.png”));
kpul = ImageIO.read(this.getClass().getResource( “kpul.png”));
skpul = ImageIO.read(this.getClass().getResource( “skpul.png”));
smpul = ImageIO.read(this.getClass().getResource( “smpul.png”));
} catch (Exception ex) {
ex.printStackTrace();
}
…//Paint Metodu : Normal Image nesnesi çizdirir gibi çiz..
g.drawImage(kpul, i*70, j* 70, this);
g.drawImage(mpul, i*70, j* 70, this);
g.drawImage(skpul, i*70, j* 70, this);
g.drawImage(smpul, i*70, j* 70, this);
