+ Cevap Yaz
Toplam 2 sayfadan 1. sayfa 1 2 En SonEn Son
14 sonuçtan 1 ile 10 arası gösteriliyor

Konu: tetris oyunu taşı düşürmek -C-

  1. #1
    ceycey60 Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    04/2008
    Mesaj
    673
    web developer

    Varsayılan tetris oyunu taşı düşürmek -C-

    Arkadaşlar öğrenme aşamasında oldugum C dilinde bir testris oyunu yazmak istiyorum ancak sorun şu:

    şimdi diyelim ekranda bir kare var,ben bunun yukarıdan aşağıya düşmesini nasıl sağlayacağım ?

    bir döngüye alıyorum,delay() fonksiyonu ile de geciktirme yapıyorum ancak kare düşüyormuş gibi den çok ağağı inerek büyüyor

    başka bir metodu vs. var mı ,nasıl yapabilirim ??

    teşekkürler

  2. #2

    Üyelik Tarihi
    10/2002
    Mesaj
    3,071
    Ali Çehreli

    Varsayılan

    Asagi iniyorsa dogru yoldasin demektir. Indirirken bir hata yapiyorsun ve boyutlarini buyutuyorsun. O buyutme hatasini duzeltirsen calisir. Ne yaptigini bilmeden baska ne soyleyebiliriz ki...

    Ali

  3. #3
    ceycey60 Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    04/2008
    Mesaj
    673
    web developer

    Varsayılan

    yani testriste taşların aşağıya inmesini istiyorum,mesela bir karenin (rectangle() ile oluşturulmuş) nasıl ağağıya ineceğini merak ediyorum ??
    bunu nasıl yapabilirim ???

  4. #4

    Üyelik Tarihi
    10/2002
    Mesaj
    3,071
    Ali Çehreli

    Varsayılan

    Belki de hosuna gitmeyecek bir cevap: C'de ekran diye bir kavram olmadigi icin senin hangi kutuphaneyi kullandigini bilemiyoruz. Eger bir kutuphane kullaniyorsan, ekrana cizdirmek icin satir ve sutun bilgisini aliyordur. Her seferinde bir fazla satir degeri ile cizdirebilirsin.

    Eger ekrani printf'le tekrar tekrar ciziyorsan, blogu bir alt satira kaydirmak icin ondan once bir tane bos satir yazdirabilirsin.

    Ali

  5. #5
    ceycey60 Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    04/2008
    Mesaj
    673
    web developer

    Varsayılan

    Kodlar şunlar,graphic.h'ı include ettim,TURBO C de yazıyorum

    PHP Kodu:
    #include <stdio.h> 
    #include <graphics.h> 

    int main() { 
    int i=0
    int driver,mode
    int hata=0
    driver=DETECT

    initgraph(&driver,&mode,"C:\\TC\\BGI"); 
    hata=graphresult(); 

    if(
    hata != 0) { 
    printf("grafik hatasi : %d",hata); 
    exit(
    1); 


    for(
    i=0;i<100;i++) { 
    system("cls"); 
    rectangle(20,80,250,125); 
    delay(9999*9999*9999999*999999999999999999999999999999999999999); 




    getch(); 
    closegraph(); 
    return 
    0


  6. #6

    Üyelik Tarihi
    10/2002
    Mesaj
    3,071
    Ali Çehreli

    Varsayılan

    O kutuphaneyi tanimiyorum ama dongu icinde rectangle'i her seferinde degisik satir bilgisiyle cagirman gerekiyor. Eger rectangle capraz iki noktanin koordinatlarini aliyorsa, soyle bir sey deneyebilirsin:

    Kod:
    rectangle(satir, sutun, satir + yukseklik, sutun + genislik);
    
    Senin durumunda sanirim soyle:

    satir: i
    sutun: 80
    yukseklik: 230?
    genislik: 105?

    Ali

  7. #7
    ceycey60 Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    04/2008
    Mesaj
    673
    web developer

    Varsayılan

    aslında rectangle()'nin bir dikdörtgen halinde aşağıya düşmesi gerekiyor

  8. #8

    Üyelik Tarihi
    10/2002
    Mesaj
    3,071
    Ali Çehreli

    Varsayılan

    Evet.

    Ali

  9. #9

    Üyelik Tarihi
    12/2006
    Mesaj
    179
    Ceviz Üyesi

    Varsayılan

    bgidemo.c de şekillerin hareket etmesini gösteren örnek te vardı yanlış hatırlamıyorsam
    onu incele
    bir de tavsiyem eğer oyun yazmaya niyetliysen Borlandın eski kütüphanesiyle uğraşma
    mesela Allegro kullanmayı öğren 2D oyunlar için gayet kullanışlı
    http://www.talula.demon.co.uk/allegro/
    http://www.allegro.cc/

  10. #10

    Üyelik Tarihi
    01/2007
    Mesaj
    112
    Ceviz Üyesi

    Varsayılan

    Alıntı ceycey60, mesajından alıntı: Mesajı Gör
    aslında rectangle()'nin bir dikdörtgen halinde aşağıya düşmesi gerekiyor

    Bencede bir dikdörtgen halinde aşağı düşmesi lazım.
    Aynı şeyi windows altında yapmaya çalışıyorum.
    Kabaca şöyle anlatiym yaptıklarımı:
    ......
    WM_PAINT:
    ......
    Rectangle(hdc,rect.left,rect.top+j,rect.right,rect .bottom+j);
    ....
    WM_TIMER:

    j += 50; // 50 dikdörtgenin genişliği
    InvalidateRect();


    Bu şekilde yaptıgımda dikdörtgen asagiya dogru iniyor .Fakat önceki çizilen dikdörtgenlerde kalıyor.Ben önceki çizimlerin kalmasını istemiyorum.Sadece hareket eden dikdörtgen görünsün istiyorum.
    Ne yapabilirim ?

+ Cevap Yaz

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

     

Benzer Konular

  1. dama oyunu
    By programci_37 in forum Pascal / Delphi / Delphi.NET
    Cevap: 2
    En Son Mesaj: 17/06/2007, 14:22
  2. Pascalda sos oyunu
    By darlandım in forum Pascal / Delphi / Delphi.NET
    Cevap: 0
    En Son Mesaj: 29/04/2007, 22:58
  3. Commando Dos oyunu
    By kahraman72 in forum Oyunlar
    Cevap: 1
    En Son Mesaj: 02/05/2005, 16:48
  4. kosturmaca oyunu :)
    By sali in forum Oyunlar
    Cevap: 2
    En Son Mesaj: 20/09/2004, 11:32
  5. Taşı toprağı altın şehir
    By Sahin in forum Hayata Dair
    Cevap: 4
    En Son Mesaj: 13/08/2002, 16:53

Bookmarks

Mesaj Yazma Hakları

  • Yeni mesajgöndermezsiniz
  • Cevap yazamazsınız
  • Dosya ekleyemezsiniz
  • Mesajınızı düzenleyemezsiniz