Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 20.03.2007, 00:22   #1
smersh
Нуждающийся
 
Регистрация: 23.02.2007
Сообщений: 98
Написано 0 полезных сообщений
(для 0 пользователей)
if then непонятно

вопрос - понимаю глупый
объясните почему не работает (при выборе 1-2)

az1=0
az2=0
pitch#=0
QWE=2
While Not KeyDown( 1 )
If KeyDown( 2 )=True Then QWE=Input("num")
If KeyDown( 205 )=True Then pitch#=-1
If KeyDown( 203 )=True Then pitch#=1
If qwe=1 Then az1=az1+pitch#
If qwe=2 Then az2=az2+pitch#
RotateEntity zx1,0,0,az1
RotateEntity zx2,0,0,az2
RenderWorld
Text 0,20,"Pitch: "+az1
Flip
Wend
End
(Offline)
 
Ответить с цитированием
Старый 20.03.2007, 01:02   #2
mudriy
Нуждающийся
 
Регистрация: 20.10.2006
Сообщений: 66
Написано 0 полезных сообщений
(для 0 пользователей)
Re: if then непонятно

в гамаке и стоя...

Graphics3D 800,600,32,1
c = CreateCamera()
PositionEntity c,0,0,-3
d = CreateCube()
Repeat
If KeyDown(2) MoveEntity c,0,0,-0.1;<1>
If KeyDown(3) MoveEntity c,0,0,0.1;<2>
RenderWorld
Flip
Until KeyHit(1)
End

или

Graphics3D 800,600,32,1
c = CreateCamera()
PositionEntity c,0,0,-10
d = CreateCube()
Repeat
If KeyDown(2) q#=.1
If KeyDown(3) q#=-.1
MoveEntity d,0,0,q#
RenderWorld
Flip
Until KeyHit(1)
End

иначе я ничего не понял...
(Offline)
 
Ответить с цитированием
Старый 20.03.2007, 01:24   #3
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: if then непонятно

Так, начнём с того что код пишем грамотно. А тоесь:
Форма:
[blitz]If ... Then
Else
EndIf[/blitz]
Имеет лишнию штучку, "Then"
Тоесть можно писать и так:
If qwe=1 az1=az1+pitch

Вообще я бы сделал не так. Я бы использовал Select
[blitz]Select qwe
Case 1
az1=az1+pitch
Case 2
az2=az2+pitch
End Select[/blitz]

Ещё в коде есть такой критерий "Читабельность", который я считая Очень важен. Поэтому не забывай, делать свой код Читабельным.
(Offline)
 
Ответить с цитированием
Старый 20.03.2007, 01:55   #4
smersh
Нуждающийся
 
Регистрация: 23.02.2007
Сообщений: 98
Написано 0 полезных сообщений
(для 0 пользователей)
Re: if then непонятно

не то куда не ставлю не катит,
вот код

Graphics3D 800,600,16,2
SetBuffer BackBuffer()
ca=CreateCamera()
light=CreateLight()

zx1=CreatePivot ()
PositionEntity zx1,0,0,9
kb1=CreateCube(zx1)
ScaleEntity kb1,.5,.5,.5

zx2=CreatePivot (zx1)
PositionEntity zx2,0,3,0
kb2=CreateCube(zx2)
ScaleEntity kb2,.5,.5,.5
az1=0
az2=0
pitch#=0
QWE=2

While Not KeyDown( 1 )
If KeyDown( 2 )=True Then QWE=Input("num")


If KeyDown( 205 )=True Then pitch#=-1
If KeyDown( 203 )=True Then pitch#=1
If qwe=1 Then az1=az1+pitch#
If qwe=2 Then az2=az2+pitch#


RotateEntity zx1,0,0,az1
RotateEntity zx2,0,0,az2
RenderWorld
Text 0,20,"Pitch: "+az1
Flip
Wend
End

это начало . будут далее зависимые объекты
zx3....zx90
(Offline)
 
Ответить с цитированием
Старый 20.03.2007, 02:01   #5
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: if then непонятно

Всё просто, это всё Input. При нажатии "1", он делает Iput и сразу вводит единичку.
Замени эту строчку:
If KeyDown( 2 )=True Then QWE=Input("num")
На это:
[blitz]If KeyHit( 2 )
FlushKeys
QWE%=Input("num: ")
EndIf[/blitz]
Тоесть при нажатии цифры 1, происходит сброс всех нажатий, и тогда идён ввод.
(Offline)
 
Ответить с цитированием
Старый 20.03.2007, 02:10   #6
smersh
Нуждающийся
 
Регистрация: 23.02.2007
Сообщений: 98
Написано 0 полезных сообщений
(для 0 пользователей)
Re: if then непонятно

ооо так то даа
благодарю
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com