İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Sinema Dizi Akıllı Ev Motosiklet Mikromobilite Kripto Para Sağlık Teknolojileri Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

Delphi 7 köstebek oyunu

jeandark18.11.20119 cevap6.489 görüntüleme
#1
merhaba arkadaşlar burada yeniyim olurda yanlış bi şe yazmışsam beni mazur görün lütfen sizlere sorunumu paylaşmak istiyorum.

vize ödevinde delphi 7 programlama dili üzerinden köstebek oyunu yapmamı istedi hoca .s

size köstebek oyununu açıklamama izin verin


resimdede görüldüğü gibi bi tokmak, yuvalarından çıkan kötebekleri vurmaya çalışıyor. benim
yapacağım programda aynen buna benzeyecek yanin fare imleci tokmak şeklinde olup 6 tane köstebek yuvası tarlada olacak. vuyalarından çıkan köstebekleri tokmakla vurup ölmelerini sağlayacam. işte tüm program bu kadar tek sorun da ben bunu nasıl bi yol izleyerekten yapmam lazım veya benim bunu nasıl yapmam lazım sizlerden ricam bana yardımcı olmanız
Cevaplar
#2
Önce resimleri ayarla. Resmin biri tarla ve köstebek yuvalarından diğeri tokmak sonuncusu ise köstebek. Yalnız köstebek 3-5 resimden oluşacak. Tarla resmi arka plan olarak sabit, tokmak mouse hareketini takip edecek, köstebekler ise tarla üzerindeki yuvadan gözükecek. Image gibi bileşenleri kullanabilirsin.
jeandark Konuyu açan
#3
Çok teşekkür ederim ama şu sorun da var ben tokmak olan fareyi köstebege vurduğum zaman nasıl bi kod kullanmalıyım ki köstebek yerinden kaybolsun ve bi kaç saniye içinde tekrar yerinden çıksın?
#4
sabit beş adet köstebek yuvası resmin olur. ayarladığın zamanlamaya göre yuva resminin yerine köstebekli yuva resmi koyarsın. köstebekli yuva resmine tıkladığında, hemen resmi değiştirip yine boş yuva resmi koyarsın, puanı 1 arttırırsın. çok basit aslında.

Zamanlama konusunda şunu yapabilirsin. Kullanacağın dile göre, zamanlayıcı mikro saniye cinsinden ise 1 saniye 1000 mikro saniye ile ifade edilecektir. Bu durumda 10 saniyelik bir zamanlayıcı ayarlayalım örneğin

Timer zamanlayici = 10000; //10 * 1000 
zamanlayici.start();


Köstebekleri yuvalarından nasıl çıkartırız ?
while ile bir sonsuz döngü oluştur ve her döngüde köstebek yuvaları için zamanlama gelmiş mi kontrol et. Örnek kod yazacağım.


while (oyuncalisiyor == 1)
{
   if (zamanlayici.counter() / 1000 == 2 && kostebek1.isnotshowing() ) // zamanlayıcı timer' ı 2000 ise, yani 2. saniyede ise sonuç doğru olur
   {
     kostebek1.show();
   }

   if (zamanlayici.counter() / 1000 == 4 && kostebek1.isnotshowing() ) // zamanlayıcı timer' ı 4000 ise, yani 4. saniyede ise sonuç doğru olur
   {
     kostebek2.show();
   }

   if (zamanlayici.counter() / 1000 == 6 && kostebek1.isnotshowing() ) // zamanlayıcı timer' ı 6000 ise, yani 6. saniyede ise sonuç doğru olur
   {
     kostebek3.show();
   }

   if (zamanlayici.counter() / 1000 == 8 && kostebek1.isnotshowing() ) // zamanlayıcı timer' ı 8000 ise, yani 8. saniyede ise sonuç doğru olur
   {
     kostebek4.show();
   }

   if (zamanlayici.counter() / 1000 == 10 && kostebek1.isnotshowing() ) // zamanlayıcı timer' ı 10000 ise, yani 10. saniyede ise sonuç doğru olur
   {
     kostebek5.show();
   }
}


Zamanlayıcı kontrolünde mod da alabilirsin. ben bölme yapıp, katını hesapladım. Aynı zamanda kostebek 1 i kontrol ediyorum ki, tekrardan göstermek için çalışmasın. Yazdığım sahte kod çok kirli tabi, özensiz yani. Fakat yine de bir fikir verebilir diye düşünüyorum.
oyundan çıkmak için oyuncalisiyor değişkenine 1 den farklı bir değer verirsin. Aklımda kalan en basit şekli ile böyle çalışır. İnşallah yazdığım örnek kodun size yararı olur. Saygılar. :clover:

---------- Post added at 21:32 ---------- Previous post was at 21:16 ----------

Küçük bir düzeltme: kopyala yapıştır yaptığımdan sahte kodda kostebek1.isnotshowing() ifadesi her bir satırda kendi nesnesine göre ayarlanmalı.
#5
Çıkan köstebek formun neresinde? Bunun biliyor muyuz? Evet.
Fare formun neresine tıklıyor? Biliyor muyuz? Evet.

Köstebekleri Timer ile kontrol edebilirsin. Diyelim 5 köstebek yuvan var. Boş olan yuvayı Yuva1 := 0 olarak gösterirsin. Köstebek yuvadan çıktığında Yuva1 := 1 olarak gösterirsin. Köstebeği dumar Yuva1 := 2 olarak gösterirsin. Köstebek 2sn sonra kaybolur.

Formun üzerine tıklandığında şu sorguyu yaparsın. Tıklanan koordinat neresi? >> Koordinatta yuva var mı? >> Yuvada köstebek var mı?
jeandark Konuyu açan
#6
ooooooooo beyler inanılmasınız :thumbup: ÇOK TEŞEKKÜR EDERİM HEMEN uygulamaya başlıyorum
jeandark Konuyu açan
#7
çok özür dilerim... ama bu programı bi türlü yapamıyorum 3 gündür kafayı yiyecem .s sizin için bi sakıncası yoksa bu programı yapabilr misiniz sizden rica ediyorum
#8
jeandark dedi: ↑
çok özür dilerim... ama bu programı bi türlü yapamıyorum 3 gündür kafayı yiyecem .s sizin için bi sakıncası yoksa bu programı yapabilr misiniz sizden rica ediyorum
Özel mesaj kutuna bakabilirmisin

--- Mesaj Güncellendi ---

Arkadaşın e-postasına dosyayı gönderecektim ama bana e-postasını göndermedi bu sebeple isteyen herkes indirsin diye aşağıdaki adrese yükledim. Fazla beklentiniz olmasın eksik ve geliştirilmesi lazım. Belki beğenen çıkar :biggrin:

http://depositfiles.com/files/z7qley6rp
jeandark Konuyu açan
#9
sdmh dedi: ↑
Özel mesaj kutuna bakabilirmisin

--- Mesaj Güncellendi ---

Arkadaşın e-postasına dosyayı gönderecektim ama bana e-postasını göndermedi bu sebeple isteyen herkes indirsin diye aşağıdaki adrese yükledim. Fazla beklentiniz olmasın eksik ve geliştirilmesi lazım. Belki beğenen çıkar :biggrin:

http://depositfiles.com/files/z7qley6rp
hocam cok teşekkür ederim benim için bi ütopyasınız :D canı gönülden size teşekkürlerimi sunuyorum . BU BANA İLAÇ GİBİ GELDİ. :)
Misafir
#10
kardeş şu oyunu bizede yolla hele :D

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.