forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Input... (http://forum.boolean.name/showthread.php?t=12412)

baton4ik 27.04.2010 20:43

Ответ: Input...
 
Ganociy, чёрт возьми, УЧИ АЗЫ!
Во-первых, после While then не ставится!
Во-вторых: ты не знаешь, в чём ошибка? Я скажу: while выполняет операторы, расположенные между while и wend до тех пор, пока условие после while (в твоём случает это: FileType(TP$)=0) является истинным. Как только условие станет ложным, произойдёт выход из цикла. У тебя, как только текстурка не загрузится, произойдёт вход в цикл. А предусмотреть выход?

Опять повторю: УЧИ АЗЫ!

Ну, и напоследок, если ещё не понял соль цикла while:

SetBuffer(BackBuffer())
SeedRnd(MilliSecs())
Graphics3D(0,0,0,1)
i=20
Repeat
i=i-1
While i=19
Print("ololo")
Wend
UpdateWorld
RenderWorld
Flip
Until KeyHit(1)
End

Подумай, почему ololo выводится не один раз, а forever и почему программа не завершается по тыку на escape ;)


_____________________________________
Ну ладно, помогу ещё: хотя код надо переписывать (но вначале прочитать хелп ;) ).

удали позорный цикл

PHP код:

While FileType(TP$)=0 Then
Print "No texture!"
Wend 

и замени

Цитата:

If b\picked=1 Then
b\texture=LoadTexture (TP$)
EntityTexture b\model,b\texture
EntityColor b\model,255,0,0
EndIf
на

Цитата:

If b\picked=1
b\texture=LoadTexture (TP$)
If b\texture ;в блитце цикл "if b\texture" выполнится только, если это самое b\texture существует! Полезнейщая вещь ;)
EntityTexture b\model,b\texture
EntityColor b\model,255,0,0
else ... ;тут печатаешь текст и прочая лабуда
EndIf
EndIf
То бишь цикл не сработает, если текстурка не загрузилась. Как выводить сообщение о неправильной текстуре, подумай сам, покури хелп и поучи азы.


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

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