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
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
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
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 ???
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
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;
}
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:
Senin durumunda sanirim soyle:Kod:rectangle(satir, sutun, satir + yukseklik, sutun + genislik);
satir: i
sutun: 80
yukseklik: 230?
genislik: 105?
Ali
aslında rectangle()'nin bir dikdörtgen halinde aşağıya düşmesi gerekiyor
Evet.
Ali
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/
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 ?
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks