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

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

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

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

Ответ
 
Опции темы
Старый 07.12.2006, 13:11   #1
mudriy
Нуждающийся
 
Регистрация: 20.10.2006
Сообщений: 66
Написано 0 полезных сообщений
(для 0 пользователей)
необходим совет

Вот код:
Главный цикл:
Repeat
 If KeyDown(203) ;поворот <-
  pa#=pa#+1
 End If
 If KeyDown(205) ;поворот ->
  pa#=pa#-1
 End If
 If KeyDown(200) ;вперед
  xa1#=xa#
  za1#=za#
  xa#=xa#+g#*Cos(pa#+90)
  za#=za#+g#*Sin(pa#+90)
  If (xa#<-31)Or(xa#>31)Or(za#<-31)Or(za#>31) 
   xa#=xa1#
   za#=za1#
  EndIf
 End If
 If KeyDown(208) ;назад
  xa1#=xa#
  za1#=za#
  xa#=xa#-g#*Cos(pa#+90)
  za#=za#-g#*Sin(pa#+90)
  If (xa#<-31)Or(xa#>31)Or(za#<-31)Or(za#>31)
   xa#=xa1#
   za#=za1#
  EndIf
 End If
 If KeyDown(18) ;стрейф ->
  xa1#=xa#
  za1#=za#
  xa#=xa#+g#*Cos(pa#)
  za#=za#+g#*Sin(pa#)
  If (xa#<-31)Or(xa#>31)Or(za#<-31)Or(za#>31) 
   xa#=xa1#
   za#=za1#
  EndIf
 End If
 If KeyDown(17) ;стрейф <- 
  xa1#=xa#
  za1#=za#
  xa#=xa#-g#*Cos(pa#)
  za#=za#-g#*Sin(pa#)
  If (xa#<-31)Or(xa#>31)Or(za#<-31)Or(za#>31)
   xa#=xa1#
   za#=za1#
  EndIf
 End If
 If KeyHit(1) ;выход
  Exit
 End If
 If n>=1
   polet_igrok()
  ;Animate q,1,n/2,0,0
 EndIf
 If KeyHit(57) ;выстрел 
  If n=0 Then vistrel_igrok(xa#,za#,pa#)
 End If
 RotateEntity q,0,pa#+180,0
 PositionEntity q,xa#,0,za#
 RotateEntity c,90,pa#,0
 PositionEntity c,xa#, 10,za# ; вид сверху
 UpdateWorld 
 RenderWorld
 Flip
Forever
Процедуры:
Type vi
Field x#,y#,p#
End Type
Global n=0
Global st1=CreateSphere(5)
HideEntity st1
EntityColor st1,255,255,255
ScaleEntity st1,0.15,0.15,0.15
Function vistrel_igrok(vix#,viy#,vip#)
 st.vi=New vi
 st\x#=vix#
 st\y#=viy#
 st\p#=vip#
 PositionEntity st1,st\x#,1,st\y#
 ShowEntity st1
 n=1
End Function
Function polet_igrok()
 For st.vi=Each vi
  If n=20 
   Delete st
   HideEntity st1
   n=0
  Else
   n=n+1
   st\x#=st\x#+5*g#*Cos(st\p#+90)
   st\y#=st\y#+5*g#*Sin(st\p#+90)
   PositionEntity st1,st\x#,1,st\y#
  EndIf 
 Next 
End Function
не понимаю, почему при нажатии вперед+пов_влево(+стрейф_любой) или назад+...+... - выстрела не происходит (if -> false(?!)) ... если кто знает, объясните пожалуйста... вперед+вправо(+ любой_стрейф) - работают прекрасно...
(Offline)
 
Ответить с цитированием
Старый 07.12.2006, 15:19   #2
KRIK
Бывалый
 
Регистрация: 19.09.2005
Сообщений: 649
Написано 3 полезных сообщений
(для 3 пользователей)
Re: необходим совет

Хм... довольно интересно.. Но вроде как бы код то и там и там одинаковый (на сколько я посмотрел). По идее всё должно быть норм. А ты пробовал начинать сначала нажимать стрейф и пробовать стрелять сразу, а не после стрелок ?
(Offline)
 
Ответить с цитированием
Старый 07.12.2006, 16:05   #3
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Re: необходим совет

Можно выкладывать КОМПИЛИРУЕМЫЙ исходник?!
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 07.12.2006, 16:44   #4
jimon
 
Сообщений: n/a
Re: необходим совет

impersonalis
+1
 
Ответить с цитированием
Старый 08.12.2006, 15:54   #5
mudriy
Нуждающийся
 
Регистрация: 20.10.2006
Сообщений: 66
Написано 0 полезных сообщений
(для 0 пользователей)
Re: необходим совет

нажимать не пробовал, но пробовал функцию, v_i вставлять в разные места и даже делать несколько ее копий...
вот...Вложение 2443...
(Offline)
 
Ответить с цитированием
Старый 09.12.2006, 02:01   #6
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: необходим совет

[imho]
не думаю что это програмная ошибка, попробуй сменить клавиши, ингода бывает такое, что нажимаеш несколько клавиш и ниче не работает.
[/imho]
(Offline)
 
Ответить с цитированием
Старый 09.12.2006, 15:36   #7
mudriy
Нуждающийся
 
Регистрация: 20.10.2006
Сообщений: 66
Написано 0 полезных сообщений
(для 0 пользователей)
Re: необходим совет

Понятно... у меня еще вопрос есть...
доп. у меня два файла с анимациями, мне надо просмотреть эти анимации одновременно (за один проход цикла - в моем примере)... мне придется делать еще 1 файл анимации?..
(Offline)
 
Ответить с цитированием
Старый 09.12.2006, 15:55   #8
mudriy
Нуждающийся
 
Регистрация: 20.10.2006
Сообщений: 66
Написано 0 полезных сообщений
(для 0 пользователей)
Re: необходим совет

HolyDel, ты прав...
(Offline)
 
Ответить с цитированием
Старый 10.12.2006, 01:31   #9
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: необходим совет

За один проход цикла просмотреть анимацию будет проблематично, будет один вызов UpdateWorld и RenderWorld.
Если имелось ввиду возможность наложения анимации на модель, то есть такие комманды LoadAnimSeq. Тогда мжно делаь так
[blitz]
mesh=loadanimmesh("Body.b3d")
walk=loadanimseq("walk.b3d")
idle=loadanimseq("idle.b3d")
[/blitz]
собсно mesh будет указателем на модель и файл модели должен содежать сетку объекта и кости, два других файла должны содержать кости и их анимацию (моделлеры, поправьте если не так).
walk и idle содержат номер секвенции анимации для хотьбы и простоя соответственно
(Offline)
 
Ответить с цитированием
Старый 10.12.2006, 21:40   #10
mudriy
Нуждающийся
 
Регистрация: 20.10.2006
Сообщений: 66
Написано 0 полезных сообщений
(для 0 пользователей)
Re: необходим совет

Понятно... спасибо, но наверное легче переменную на разные виды анимаций завести, тогда и команду animate один раз использовать придется...
еще вопр ("вопросы, вопросы требуют ответов"): можно ли из блица на модель (3ds), положить текстуру или задать ей цвет (entitytexture и entitycolor - не работают)?
(Offline)
 
Ответить с цитированием
Старый 11.12.2006, 01:56   #11
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: необходим совет

предыдушее сообщение было посвящено b3d моделям.

посмотри здесь, для задания цвета анимированной модели, для текстурирования анимированной модели придеццо поменять одну строчку
http://www.boolean.name/showthread.php?t=2073
(Offline)
 
Ответить с цитированием
Старый 11.12.2006, 10:49   #12
mudriy
Нуждающийся
 
Регистрация: 20.10.2006
Сообщений: 66
Написано 0 полезных сообщений
(для 0 пользователей)
Re: необходим совет

ясно... пока все...
(Offline)
 
Ответить с цитированием
Старый 19.12.2006, 02:44   #13
mudriy
Нуждающийся
 
Регистрация: 20.10.2006
Сообщений: 66
Написано 0 полезных сообщений
(для 0 пользователей)
Re: необходим совет

Снова вопрос...
когда смотрел хелп (не помню какой, но он точно был на русском), заметил одну команду (ее название, собственно, я и хочу спросить)... она очищает буфер (что ли?) нажатых клавиш...
Если кто помнит и хочет подсказать, жду ответ...
(Offline)
 
Ответить с цитированием
Старый 19.12.2006, 02:53   #14
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: необходим совет

FlushKeys()
(Offline)
 
Ответить с цитированием
Старый 19.12.2006, 07:23   #15
mudriy
Нуждающийся
 
Регистрация: 20.10.2006
Сообщений: 66
Написано 0 полезных сообщений
(для 0 пользователей)
Re: необходим совет

Спасибо, выручил...
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь и совет kp500 JAVA Micro Edition 3 06.02.2010 23:42
Совет космонавта FrankH Личное творчество 5 31.01.2008 12:13
НУЖЕН СОВЕТ Horror 3D-программирование 20 02.11.2006 03:56
Нужен совет! KRIK Delphi 7 14.10.2006 14:47
ODE: требуется совет спеца! reskator 3D-программирование 15 10.09.2006 22:59


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


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