Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2011, 17:41   #1
Lips!!
Новичок
Джуниор
 
Регистрация: 17.04.2011
Сообщений: 2
По умолчанию Немогу разобратся с задержкой

Сейчас пишу на борланде 3.1 игру похожую на марио..
так вот.. немогу избавится от такой проблемы когда зажимаеш кнопку на секунду.. и отпускаеш
то персонаж продолжает бежать ещё секунды 2-3
задержку использую delay
хотя мб и даже и не взадержке дело
объясните если кому не сложно в чём моя ошибка?)


#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <stdlib.h>
void f_(int,int);
void f(int,int);
void s(int,int,int,int,int);
int min(int,int,int,int,int);
void main()
{
int x=2,y=23,ax=0,ay=0,n,i,h=0,m=0,hard ,score=0,live=1,lvl=1,nap=1;
char a[20][78]=
{
" ################################### ##########", //19
" #", //18
"", //17
"", //16
"", //15
"", //14
"", //13
"", //12
"", //11
"", //10
"", //9
"", //8
"", //7
"", //6
"", //5
"", //4
"", //3
"", //2
" # ########", //1
" ##### " //0
}
;
// ay ax
textbackground(1);
clrscr();
randomize();
while(h!=1 && h!=2 && h!=3)
{
gotoxy(1,10);
cprintf("1.Easy");
gotoxy(1,11);
cprintf("2.Normal");
gotoxy(1,12);
cprintf("3.Expert");
h=getch();
h=h-48;
}
hard=h;
clrscr();
for(i=0;i<20;i++)
{
for(n=0;n<78;n++)
{
gotoxy(n+2,23-i);
cprintf("%c",a[i][n]);
}


}


gotoxy(1,24);
cprintf("########################## ################################### ##################");
for(i=3;i<25;i++)
{
gotoxy(1,i);
cprintf("#");
gotoxy(80,i);
cprintf("#");
}
gotoxy(1,3);
cprintf("########################## ################################### ##################");
gotoxy(79,4);
cprintf("E");
// gotoxy(2,23);
// cprintf("@");
f(x,y);

while(x!=79 || y!=4)
{
gotoxy(20,2);
cprintf("ax=%i ay=%i",ax,ay);
//
m=0;
for(i=ax-1;i<ax+1;i++)
{
for(int u=ay-1;u<ay+1;u++)
{
if(a[ay][ax]<hard+2)
{
m++;
gotoxy(2-ax,23+ay);
cprintf("*");
}
}
}



//
s(m,score,live,lvl,hard);
h=getch();
if(h==100 && x<79 && a[ay][ax+1]!=35) //BnPaBo
{
f_(x,y);
x++;
ax++;
f(x,y);
nap=0;
}
///
if(h==97 && x>2 && a[ay][ax-1]!=35) // BJleBo
{
f_(x,y);
x--;
ax--;
f(x,y);
nap=1;
}
if(h==119 && ax>0 && nap==1 && a[ay+1][ax-1]!=35) // BBepx <
{
f_(x,y);
y--;
ay++;
x--;
ax--;
f(x,y);
if(a[ay][ax-1]!=35 && x>2)
{
f_(x,y);
ax--;
x--;
f(x,y);
if(a[ay-1][ax-1]!=35 && x>2)
{
f_(x,y);
ax--;
ay--;
y++;
x--;
f(x,y);
}
}
}
if(h==119 && y>4 && nap==0 && a[ay+1][ax+1]!=35 && x<79) // BBepx >
{
f_(x,y);
y--;
ay++;
x++;
ax++;
f(x,y);
if(a[ay][ax+1]!=35 && x<79)
{
f_(x,y);
ax++;
x++;
f(x,y);
if(a[ay-1][ax+1]!=35 && x<79)
{
f_(x,y);
ax++;
ay--;
y++;
x++;
f(x,y);
}
}
}


while(ay>0 && a[ay-1][ax]!=35)
//if(y<23) // BHu3
{
f_(x,y);
y++;
ay--;
f(x,y);
}
}
getch();
}
void f_(int x,int y)
{
textbackground(3);
gotoxy(x,y);
cprintf(" ");
}
void f(int x,int y)
{
gotoxy(x,y);
cprintf("@");
delay(400);
sleep(.4);
}
void s(int m,int score,int live,int lvl,int hard)
{
textbackground(1);
gotoxy(1,1);
cprintf("min= %i score= %i live= %i lvl= %i ",m,score,live,lvl);
gotoxy(1,2);
switch(hard)
{
case(1):cprintf("Easy");break;
case(2):cprintf("Normal");break;
case(3):cprintf("Expert");break;
}
if(m>0)
{
gotoxy(8,2);
textbackground(m+1);
cprintf("DANGER");
}
else
{
textbackground(1);
gotoxy(8,2);
cprintf(" ");
}
}
/*int min(int a[][],int ax, int ay, int hard, int m)
{
int i,u;

return(m);
} */

пока только работает движение.. на препядствия не наступает.. за границы не уходит...
да и уровень ещё даже не нарисовал пока)))
думаю вот с кнопками можно чёнибудь сделать?
есть вариант ещё с !kbhit
но с ним тож самое выходит((

Последний раз редактировалось Lips!!; 17.04.2011 в 17:45.
Lips!! вне форума Ответить с цитированием
Старый 17.04.2011, 18:08   #2
Lips!!
Новичок
Джуниор
 
Регистрация: 17.04.2011
Сообщений: 2
По умолчанию

ау!!!!!! подскажет мне ктонибудь???11
Lips!! вне форума Ответить с цитированием
Старый 17.04.2011, 18:10   #3
blacktener
Пользователь
 
Регистрация: 15.12.2010
Сообщений: 78
По умолчанию

чета твой код у меня не работает
blacktener вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DDE с задержкой sart21 Microsoft Office Excel 8 14.08.2011 19:13
немогу разобратся с js nevedimka PHP 7 03.02.2011 14:44
немогу разобратся с сортировкой!!! vitaliy_n73 Microsoft Office Excel 10 21.07.2010 13:02
многострочная подсказка с задержкой dimonbest Общие вопросы Delphi 6 24.03.2008 13:13