PDA

Tam Sürümünü Görmek İçin : Turbo C++ Graph Dongu sorunu


mrtvrl
29/04/2008, 14:44
Ben Turbo C++ da Ping-pong oyunu yapmak istiyorum ama do{ dongusunun icine key=getch(); koydugum zaman hareket eden topun ilerlemesi icin sürekli bir tusa basmam gerekiyor. ve cleardevice dada sorun var.
yardımcı olursanız cok sevinirim. :hey:

#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "graphics.h"
#include "dos.h"

int main(){
int driver,mode,key,x=150,y=150,i=0,zorluk,b1x1=150,b1 x2=280,sans=0;
int ksy=7,ksx=7;
int errcode=0;
driver=DETECT;
//printf(" Zorluk seviyesi (1-20) : ");
//scanf("%d",&zorluk);
initgraph(&driver, &mode, "c:\\tc\\bgi");
errcode=graphresult();
if(errcode!=0){
// printf("graph error: %d",errcode);
exit(1);
}
do{
setfillstyle(8,6);
setcolor(1);
bar3d(35,b1x1,40,b1x2,4,3);
setfillstyle(4,7);
setcolor(5);
bar3d(550,y-50,555,y+50,4,8);
randomize();
setcolor(7);
setfillstyle(3,2);
line(50,100,550,100);
line(50,97,550,97);
line(50,400,550,400);
line(50,403,550,403);

setcolor(4);
circle(x,y,15);
setfillstyle(1,4);
floodfill(x,y,4);
delay(20);
cleardevice();
x=x+ksx;
y=y+ksy;
if(x>535){
ksx=-5+(random(2));
}
if(x<60){
ksx=random(2)+5;
}
if(y>385){
ksy=-5+(random(2));
}//else{ break; }
if(y<117){
ksy=random(2)+5;
}//else{ break; }
if((x<60 && y<b1x1) || (y>b1x2 && x<60)){
//printf("Kalan Sans : %d\n",2-sans);
cleardevice();
getch();
//break;
sans++;
if(sans==3){
cleardevice();
//settextjustify(RIGHT_TEXT,CENTER_TEXT);
settextstyle(3, HORIZ_DIR,9);
outtext("GAME OVER ");
getch();
}
}
/*
if(x>535 && y<b1x1 && y<b1x2){
outtext("yenildinn");
break;
}
*/
key=getch();
if(key=='s'){ b1x1++; b1x2++; }
if(key=='w'){ b1x1--; b1x2--; }

}while(sans<3);

getch();
closegraph();
return 0;
}


bluekid
29/04/2008, 16:45
kbhit kullan
http://www.cprogramming.com/fod/kbhit.html

mrtvrl
29/04/2008, 21:04
benim sorunum uygulamadan cıkamamak değil.
do{
icinde key=getch(); kullandıgım icin sürekli bir tusa basmamı bekliyor.
istedigim tusa bastıgımda barları hareket ettirecek, her ne olursa olsun topun hareketi devam edecek.
yardım lütfen.

acehreli
29/04/2008, 23:10
mrtvrl, bluekid getch() kullan demedi ki... bluekid'in gosterdigi sayfadaki "It will not wait for a key to be pressed"in Turkcesi, "Bir tusa basilmasini beklemez"dir. Tam senin istedigin sey...

Ali

mrtvrl
30/04/2008, 09:11
hmm ksr bakmayın cevaba internet cafede baktım. tam anlayamamısım özür dilerim yardımlarınız icin tesekkurler.