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

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

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

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

Ответ
 
Опции темы
Старый 04.02.2007, 19:48   #1
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Координаты

Const typecube1=1
Const typecube2=2
 
Graphics3D 640,480,16,2
 
Global a#,b#;
a#=1.23;
b#=NoDrob(a#);
 
Const UPS=60
 
cam=CreateCamera()
l=CreateLight()
 
fontA=LoadFont ("arial",32)
SetFont fontA
 
period=1000/UPS
time=MilliSecs()-period
 
cube=CreateCube()
PositionEntity cube,b,0,10
EntityType cube,typecube1
EntityColor cube,237,210,22
 
cube2=CreateCube()
PositionEntity cube2,-8.76,0,10
EntityType cube2,typecube2
 
Collisions typecube1,typecube2,3,2

Repeat
     Repeat
          elapsed=MilliSecs()-time
     Until elapsed
     ticks=elapsed/period
     tween#=Float(elapsed Mod period)/Float(period)
     
     For k=1 To ticks
          time=time+period     
 If KeyHit(1)FreeFont fonta: End
  If KeyDown(203) Then MoveEntity cube,-b#,0,0
  If KeyDown(205) Then MoveEntity cube,b#,0,0
          
          UpdateWorld     
     Next
     
     RenderWorld tween
Text 0,0,""+b#
Text 0,30,""+EntityX(cube)
Text 0,60,""+EntityX(cube2)
     Flip
Forever
 

Function NoDrob(x#)
Return (x);
End Function
При столкновении этих двух кубиков хотелось бы, что бы у желтого кубика координаты округлялись и куб "занимал позицию округленной координаты. То есть пытаюсь избежать погрешностей.
(Offline)
 
Ответить с цитированием
Старый 04.02.2007, 20:47   #2
Errthou
Оператор ЭВМ
 
Регистрация: 22.01.2007
Сообщений: 32
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Координаты

В чем проблема конкретно? Вычислить координаты? Отбросить дробную часть? Или присвоить полученные координаты кубу?
(Offline)
 
Ответить с цитированием
Старый 04.02.2007, 21:05   #3
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Re: Координаты

Нужно сначала:
1) Вычислить коордн.
2) Отбросить дробную часть
3) затем присвоить координаты кубу
(Offline)
 
Ответить с цитированием
Старый 05.02.2007, 13:19   #4
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Re: Координаты

Но если честно, то там по-моему все сделанно, кроме как присвоить целочисленную координату кубу, исправив его "неправильную" (нецелочисленную) координату
(Offline)
 
Ответить с цитированием
Старый 05.02.2007, 17:15   #5
Errthou
Оператор ЭВМ
 
Регистрация: 22.01.2007
Сообщений: 32
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Координаты

Ну тогда PositionEntity тебе в руки
(Offline)
 
Ответить с цитированием
Старый 05.02.2007, 18:19   #6
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Re: Координаты

Сообщение от Errthou
Ну тогда PositionEntity тебе в руки
Я примерно знаю что делает эта команда, но, как видно из моего кода, мне к сожалению до сих пор не удалось после столкновения с белым кубиком установить желтый кубик в целочисленную координату
(Offline)
 
Ответить с цитированием
Старый 05.02.2007, 18:27   #7
Diplomat
Дэвелопер
 
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений
(для 164 пользователей)
Re: Координаты

Заведи переменную "CubeMoveMode", в которой храни необходимый режим размещения для своего кубика: 0- свободное перемещение, 1- размещение по целочисленной координате. В нужный момент присваивай ей 1, а в ненужный- соответственно 0.
А потом- простое ветвление: IF CubeMoveMode=1 THEN PositionEntity Cube, Int(EntityX(Cube,1)),...
Или я чего-то не понял? Т.к. не сильно вчитывался...
(Offline)
 
Ответить с цитированием
Старый 08.02.2007, 21:36   #8
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Re: Координаты

Сообщение от Diplomat
Заведи переменную "CubeMoveMode", в которой храни необходимый режим размещения для своего кубика: 0- свободное перемещение, 1- размещение по целочисленной координате. В нужный момент присваивай ей 1, а в ненужный- соответственно 0.
А потом- простое ветвление: IF CubeMoveMode=1 THEN PositionEntity Cube, Int(EntityX(Cube,1)),...
Или я чего-то не понял? Т.к. не сильно вчитывался...
К сожалению я не понял, что ты мне хочешь предложить! Можно поподробнее?
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перемещение и координаты Peter 3D-программирование 6 27.08.2009 15:49
Текстурные координаты вручник Lighthouse 3D-программирование 3 19.07.2009 14:00
Координаты в изометрии MiXaeL Математика 7 31.01.2009 16:56
Координаты крысы в 3Д shybovycha PureBasic 9 18.06.2007 17:42
Координаты бушуют Progger_Leo 3D-программирование 7 27.12.2006 20:54


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


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