forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   Помогите доделать игру!MidletPascal. (http://forum.boolean.name/showthread.php?t=7233)

Mark Castle 27.10.2008 12:21

Ответ: Помогите доделать игру!MidletPascal.
 
Цитата:

Сообщение от odd (Сообщение 89560)
Продолжаем разбор кода. Накой х проверять переменные q и u если они строкой раньше были изменены на 15 и 0? Переменная u со значением 0 никогда не будет одновременно <43 и >38. Так что ничего странного нет, что sledujushcajaprocedura НИКОГДА не вызовется.

Ну у меня такой принцип:некий мужик сверху кидаецо всякими хернями(ну типа ящики,бомбы и т.д.).Эти херни надо ловить некой платформой,а если поймал то надо вызвать процедуру,которая кидает другой предмет с другой координатой.


if (q>x) and (q<(x+19)) and (u<43) and (u>38) then bombarding; //если предмет попал на указанную плоскость(на платформу),значит вызываем процедуру;


Затем процедура bombarding:
procedure bombarding;
begin
q:=15;
u:=0;
if (q>x) and (q<(x+19)) and (u<43) and (u>38) then sledujushchajaprocedura; // т.е. если предмет опять попал на платформу,дальнейшей процедурой закидываем его на х*ен на другие координаты;
end;

:SOS:
Но я почемуто не врубаюсь,почему не вызываецо <sledujuschajaprocedura>.Подскажите если че не правильно сделал.

Piligrim 27.10.2008 21:19

Ответ: Помогите доделать игру!MidletPascal.
 
тебе же odd объяснил, что условие
Код:

and (u>38)
никогда не выполниться, потому что строкой ранее ты
Код:

u:=0;

Mark Castle 27.10.2008 21:38

Ответ: Помогите доделать игру!MidletPascal.
 
Цитата:

Сообщение от pilgrim (Сообщение 89617)
тебе же odd объяснил, что условие
Код:

and (u>38)
никогда не выполниться, потому что строкой ранее ты
Код:

u:=0;

А что нада сделать?

dimanche13 27.10.2008 22:18

Ответ: Помогите доделать игру!MidletPascal.
 
клево! у тя с переменной "u" баг какой-то, возьми другую к примеру "y" или "i" я видел с ними все работает у других.

Mark Castle 28.10.2008 14:24

Ответ: Помогите доделать игру!MidletPascal.
 
Все,исправил.Процедура вызываеца,а следующую вызвать не может,хотя там по логике вроде все правильно!
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::
procedure aaaaaaa;
begin
Q:=70;
U:=0;
if (q>x) and (q<(x+19)) and (u<43) and (u<38 ) then
begin
halt;
end;
end;
procedure bombarding;
begin
q:=50;
u:=0;
if (q>x) and (q<(x+19)) and (u<43) and (u<38 ) then
begin
aaaaaaa;
end;
end;
Это пахать не хочет!Не вызывает процедуру aaaaaaa;!!!!!!!!!!!!!!!!В чем проблема?

Mark Castle 28.10.2008 14:43

Ответ: Помогите доделать игру!MidletPascal.
 
procedure aaaaaaa;
begin
Q:=70;
U:=0;
if (q<x) and (q>(x+19)) and (u<43) and (u<38 ) then
begin
halt;
end;
end;
Что неправильного в условии if (q<x) and (q>(x+19)) and (u<43) and (u<38 ) then
begin
halt;
end;
end;?????????????????????????????????????????????? ????????

Cliffe Snake 28.10.2008 16:12

Ответ: Помогите доделать игру!MidletPascal.
 
2Mark Castle. Чувак, у тебя с логикой полный пипец.
Цитата:

Что неправильного в условии if (q<x) and (q>(x+19)) and (u<43) and (u<38 ) then
( u<43 ) and ( u<38 ) это равносильно ( u<38 )
Иди почитай теорию по связке логических выражений. Я думаю, вряд ли кто на форуме захочет учить тебя таким ЭЛЕМЕНТАРНЫМ вещам.
Ясный пень, что у тебя ничё не работает.
И кому интересно я говорил, что для вызова процедуры из других процедур нужно использовать FORWARD;?
:punish:
После строки
PHP код:

procedure aaaaaaa

Вставь эту
PHP код:

Forward


Mark Castle 28.10.2008 16:34

Ответ: Помогите доделать игру!MidletPascal.
 
Цитата:

Сообщение от Cliffe Snake (Сообщение 89670)
2Mark Castle. Чувак, у тебя с логикой полный пипец.

( u<43 ) and ( u<38 ) это равносильно ( u<38 )
Иди почитай теорию по связке логических выражений. Я думаю, вряд ли кто на форуме захочет учить тебя таким ЭЛЕМЕНТАРНЫМ вещам.
Ясный пень, что у тебя ничё не работает.
И кому интересно я говорил, что для вызова процедуры из других процедур нужно использовать FORWARD;?
:punish:
После строки
PHP код:

procedure aaaaaaa

Вставь эту
PHP код:

Forward


Тоесть:


procedure aaaaaaa;
forward;

begin
Q:=70;
U:=0;
if (q<x) and (q>(x+19)) and (u<38 ) then
halt;
end;

procedure bombarding;
begin
q:=50;
u:=0;
if (q>x) and (q<(x+19)) and (u<38 ) then

aaaaaaa;

end;

так?

Romanzes 28.10.2008 17:04

Ответ: Помогите доделать игру!MidletPascal.
 
Чувак, еще раз.
По-моему, тебе все-таки нужно условие (q>x) and (q<x+19) and (u>38 ) and (u<43).
Делай так:
procedure bombarding;
begin
if (q>x) and (q<x+19) and (u>38 ) and (u<43) then
begin
q:=50;
u:=0;
aaaaaaa;
end;
end;
А то ты сначала присваиваешь u значение "0", а потом проверяешь, лежит ли u в интервале [38,43]. Это бессмысленно.
PS: Рискуешь попасть в мемы.

Mark Castle 31.10.2008 12:39

Ответ: Помогите доделать игру!MidletPascal.
 
а приведите хто нибудь пример использования библиотеки Lib_sprite для столкновения с другим спрайтом.А то я шота не врубаюся...


Часовой пояс GMT +4, время: 11:47.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot