8. Grup – Qostebek Projesi

Bir Oyunlu Chat Projesi…

Gelişmeler için arşiv

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ü :

dama12

Haftalık Rapor 1

Kullanıcılara ID verdik, (Rastgele long türünde sayı üreterek) kullanıcıları buna göre ayırdedeceğiz.

Client ve Server tarafına liste yenileyici Threadler eklendi, yenileme tuşları kaldırıldı.3sn.’de bir yenileniyor artık.

Enter tuşunu yakalama özelliği eklendi. Giriş yaparken, mesaj yollarken, listede seçili kişi ile konuşma başlatırken enter tuşunu kullanabiliyoruz. Böylece “Gönder” ve “Konuş” tuşları kaldırıldı.

Konuşma başlatmak için çift tıklama özelliği de sağlandı.

Smileyler dahili hale getirildi. Daha önce harici klasörden alınan resimler, program içinden gösterilir oldu.

Messenger’de bulunan “Yazıyor..” özelliği eklendi. Karşı taraf  yazarken bunu bilebileceksiniz.

Bağlantı kurulurken progress  bar gösterilmesi sağlandı. (intermediate özelliği true olarak).

Kullanıcı sayısını gösteren label eklendi. Örn: “3 kullanıcı bağlı.”

Konuşma penceresi esnek hale getirildi. Tam ekran yazışma yapabileceksiniz.

Nasıl yaptık?

ID üreten metod:

Rastgele long sayı üretildi, 19 haneli bir sayı.Aynı gelme ihtimali (10^19 -1)’de 1…

public String UserIDGenerator() {
String gen;
Random r = new Random();
gen = “” + Math.abs(r.nextLong());
return gen;
}

Liste yenileyiciler:

Bir thread yazıp, listenin bulunduğu class’ı parametre verdik. Sonsuz bir döngü kurup, yenileme metodunu çağırttık. Her seferinde de 3000 ms. uyuttuk.

Enter tuşunu yakalamak:

Enter tuşunun keyCode’nun 10 olduğunu bulduk ve keyPressed özelliğinde bunu kontrol ettik.

if (evt.getKeyCode() == 10) {
mesajYolla();
}

Çift tıklama :

önceki tıklama ile şimdi tıkladığı arasında 1 saniye varsa, konuşma başlat.

long ilkT = 0;
private void jList1MouseClicked(java.awt.event.MouseEvent evt) {
long sonT;
sonT = System.currentTimeMillis();
if ((sonT – ilkT) < 1000) {
konusmaBaslat();
}
ilkT = sonT;

}

Dahili Smileyler:

smiley metodu yazdık ve smiley dosyasını parametre verdik. smiley metodu da bunu mesaja ekledi ve paketten resmi getirdi.

public void smiley(String img) {
String bas, son, rsm;
//…
rsm = this.getClass().getResource(img).toString();
jEditorPane2.setText(bas + “<img src=\”" + rsm + “\”>” + son);
// …
}

Yazıyor Özelliği :

Kullanıcı mesaj yazarken karşı tarafa “<Writing>” mesajını, yazmayı bitirdiğinde “</Writing>” mesajını yolladık. Alıcı da gelen mesaja göre Yazıyor labelini gösterdi veya gizledi.

Qostebek’in özellikleri!

Akıllı köstebeğimizin yeteklerini merak ettiğine göre söyleyelim:

  • Yazı Tipi Desteği Yazdığınız yazıların özelliklerini istediğiniz gibi ayarlayabileceksiniz.
  • Gülücük Karşı tarafa yüz ifadeleri yollayabileceksiniz.
  • Titreşim biraz kopya çekerek, titretiyoruz.
  • Çoklu Konuşma Desteği aynı anda birkaç kişi ile anlık sohbet edebileceksiniz.
  • Oyun Oynama konuştuğunuz kişiyle küçük oyunlarımızı oynayabileceksiniz.
  • Yapmayı düşündüğümüz oyunlar:
    • Dama
    • TicTocToe
    • Taş Kağıt Makas

Şimdilik tasarladığımız özellikler bunlar, zaman belki daha da ilerletmemize imkan verecektir..

Eski Yazılar »
Takip Et

Get every new post delivered to your Inbox.