forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Исправьте код (http://forum.boolean.name/showthread.php?t=1994)

Тарас Шевченко 26.11.2006 19:21

Исправьте код
 
Вложений: 2
Привет всем. Учу Блитц 3Д и для изучения решил написать простенькую стрелялку дабы набраться опыта.
1 - Посмотрите мой код и скажите как сделать чтобы анимация останавливалась.
2 - Подскажите как сделать поворот мышкой? И пробовал типа if mouse(x) но у меня чето не выходит.

Хочу камеру на подобии GTA: San Andreas.

НУБ 27.11.2006 18:16

Re: Исправьте код
 
Ты волшебное слово забыл :)

Diplomat 27.11.2006 18:18

Re: Исправьте код
 
1.За анимацию отвечает отдельный кусок кода. Клавишами лишь задавай ему режимы работы.
Код:

AnimMode=0
IF KeyDown(Key)=1 THEN ;Move
    MoveEntity...
    AnimMode=1
END IF
IF AnimMode=0 THEN Animate... ;Idle anim
IF AnimMode=1 THEN Animate... ;Move anim

2.
Код:

TurnEntity Entity, MouseYSpeed()*SensY, MouseXSpeed()*SensX,-EntityRoll(Entity)
В дисциплинарном плане:
0. Темы мусолились на форуме не раз. Достаточно заюзать Поиск
1. Не надо флудить. Если не отвечают- значит ответят позже. Если позже не ответили- значит такой был вопрос.

Удач!

P.S. 2НУБ: Опередил меня! Волшебное слово было "ВПОИСКБЫСТРОНАХ!!!", я полагаю? :)

jimon 27.11.2006 18:24

Re: Исправьте код
 
для людей же зделано
http://boolean.name/showthread.php?t=15


млин опередили меня :)

Тарас Шевченко 02.12.2006 18:20

Re: Исправьте код
 
Для поворота мышкой пробовал:
If MouseX()>0 Then
TurnEntity cub,0,-1,0
Else
TurnEntity cub,0,1,0
EndIf

получилось, но когда поворачиваешь поворот не останавливается. Что делать?

jimon 02.12.2006 18:32

Re: Исправьте код
 
не MouseX а там команда со скоростью ... MouseXSpeed вроде или чето того

KRIK 02.12.2006 22:19

Re: Исправьте код
 
Мне кажется (если я тебя прально понял) тебе стоит после

Repeat


Написать следующий код:
Код:

angy#=-MouseYSpeed()*0.1
TurnEntity cam,angy#,0,0
angx#=-MouseXSpeed()*0.1
TurnEntity cub,0,angx#,0
MoveMouse GraphicsWidth()*0.5, GraphicsHeight()*0.5

Далее я думаю тебе не составит труда поставить ограничения по осям, да и скорость вращения.

HolyDel 03.12.2006 13:52

Re: Исправьте код
 
Цитата:

Сообщение от Тарас Шевченко
Для поворота мышкой пробовал:
If MouseX()>0 Then
TurnEntity cub,0,-1,0
Else
TurnEntity cub,0,1,0
EndIf

получилось, но когда поворачиваешь поворот не останавливается. Что делать?

как ЭТО могло получится.
я в ШОКЕ.
я так понимаю, это куб поворачивается в одну сторону если мыш прижат к левой стенке монитора и в другую если не прижат
:DF 20 F4 20 D8 CE CA C5 20 CD C0 D5 2E:

KRIK 03.12.2006 16:14

Re: Исправьте код
 
2HolyDel
Ну чё тут удивляться-то ??? Человек начал изучать БЛИТС.. А при начале изучения можно ещё и не такое написать! ;)

Тарас Шевченко 06.12.2006 15:18

Re: Исправьте код
 
Мышкой попробую сам разобраться, а остановку анимации ну хоть убейте - не могу! Помогите исправьте сам код чтобы у вас все работало, а я что только не делал. Плиз, помогите!

Тарас Шевченко 06.12.2006 20:13

Re: Исправьте код
 
Цитата:

Сообщение от KRIK
Мне кажется (если я тебя прально понял) тебе стоит после

Repeat


Написать следующий код:
Код:

angy#=-MouseYSpeed()*0.1
TurnEntity cam,angy#,0,0
angx#=-MouseXSpeed()*0.1
TurnEntity cub,0,angx#,0
MoveMouse GraphicsWidth()*0.5, GraphicsHeight()*0.5

Далее я думаю тебе не составит труда поставить ограничения по осям, да и скорость вращения.

Да, спасибо KRIK, это именно то, что мне нужно! Но как поставить ограничения по осям? C можешь переделать мой код, чтобы например при отпускании клавиши вперед анимация ходьбы отключалась?

impersonalis 06.12.2006 20:27

Re: Исправьте код
 
запутался в коде =/

KRIK 06.12.2006 21:23

Re: Исправьте код
 
2Тарас Шевченко
Код:


angy#=-MouseYSpeed()*0.2
m=m+angy#
If m>20 Then m=20
If m<-20 Then m=-20
RotateEntity cam,m,0,0
angx#=-MouseXSpeed()*0.1
TurnEntity cub,0,angx#,0
MoveMouse GraphicsWidth()*0.5, GraphicsHeight()*0.5

Вот тут ограничения по оси У! Чтобы изменить ограничение поменяй в условии с переменной m (где написанно 20) на любое нужное число.
На счёт анимации, надо глянуть, ща времени нет.

Тарас Шевченко 06.12.2006 22:48

Re: Исправьте код
 
2 KRIK: спасибо! Как будет время помоги с анимацией.

HolyDel 07.12.2006 03:04

Re: Исправьте код
 
If KeyHit(17) Animate cub,2,.5,walk
If KeyHit(31) Animate cub,2,.5,walk
If KeyDown(17)=0 And KeyDown(31)=0 And AnimSeq(cub)<>stand And AnimSeq(cub)<>shot Then Animate cub,2,.3,stand
If Animating(cub)=0 Then Animate cub,2,.3,stand
If MouseHit(1) Animate cub,3,.5,shot


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

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