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

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

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

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

Ответ
 
Опции темы
Старый 02.03.2010, 19:23   #1
Comment
Оператор ЭВМ
 
Регистрация: 16.09.2009
Сообщений: 23
Написано одно полезное сообщение
[Physics] Простой пример, с большими проблемами

Создал простой пример на блитце (с++), подключил физикс. Не работает кубик лежал как и лежит, не могу понять в чем дело, смотрел примеры на блитцбэйсик там последовательность действий подобная что и у меня, но у них все пашет...

#include <blitz3dsdk.h>
#include <Blitzpx.h>

int main()
{
	bbBeginBlitz3D();
	bbGraphics3D(800,600,32,2);
	
	

	int cam=bbCreateCamera();
	bbPositionEntity(cam,0,10,-20);
	int plane=bbCreatePlane();
	bbEntityColor(plane,64,128,128);
	int light=bbCreateLight();
	pxCreateWorld(1,"");
	int cub=bbCreateCube();
	int Body=pxBodyCreateCube(1,1,1,1);
	pxBodySetPosition(Body,0,10,0);
		
	while(!bbKeyHit(KEY_ESCAPE)) 
       {
		   pxRenderPhysic(60,0);
		   pxBodySetEntity(cub,Body);
		   bbUpdateWorld();
		   bbRenderWorld();
		   bbFlip();
	    }
	bbEndBlitz3D();
}
(Offline)
 
Ответить с цитированием
Старый 02.03.2010, 20:25   #2
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,743
Написано 5,461 полезных сообщений
(для 15,676 пользователей)
Ответ: [Physics] Простой пример, с большими проблемами

Проверь, двигается ли тело. Для этого выведи на экран его координаты и смотри, меняются ли они.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 02.03.2010, 20:29   #3
Comment
Оператор ЭВМ
 
Регистрация: 16.09.2009
Сообщений: 23
Написано одно полезное сообщение
Ответ: [Physics] Простой пример, с большими проблемами

Сообщение от ABTOMAT Посмотреть сообщение
Проверь, двигается ли тело. Для этого выведи на экран его координаты и смотри, меняются ли они.
Сейчас проверю, можешь мне ссылку на нормальный враппер дать, а то я и на форуме смотрел и вообщем в интеренете там все ссылки битые
(Offline)
 
Ответить с цитированием
Старый 02.03.2010, 20:42   #4
Comment
Оператор ЭВМ
 
Регистрация: 16.09.2009
Сообщений: 23
Написано одно полезное сообщение
Ответ: [Physics] Простой пример, с большими проблемами

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <blitz3dsdk.h>
#include <Blitzpx.h>

int main()
{
	bbBeginBlitz3D();
	bbGraphics3D(800,600,32,2);
	
	int cam=bbCreateCamera();
	bbPositionEntity(cam,0,10,-20);
	int plane=bbCreatePlane();
	bbEntityColor(plane,64,128,128);
	int light=bbCreateLight();
	
	pxCreateWorld(1,"take");
	int cub=bbCreateCube();
	int Body=pxBodyCreateCube(1,1,1,1);
	pxBodySetPosition(Body,0,10,0);
	char buffer[10];
	while(!bbKeyHit(KEY_ESCAPE)) 
	{
		pxRenderPhysic(60,0);
		pxBodySetEntity(cub,Body);
	    bbUpdateWorld();
	    bbRenderWorld();
		sprintf(buffer, "%f", pxBodyGetPositionY(Body));
		bbText(100,100,buffer);
		sprintf(buffer, "%f", bbEntityY(cub));
		bbText(100,200,buffer);
		bbFlip();
	}
	bbEndBlitz3D();
}
Вывод: физический объект двигается, а графический нет!!! Следовательно проблема в привзяке, только я не пойму где именно
(Offline)
 
Ответить с цитированием
Старый 02.03.2010, 20:57   #5
EvilChaotic
Мастер
 
Аватар для EvilChaotic
 
Регистрация: 05.04.2008
Сообщений: 910
Написано 530 полезных сообщений
(для 3,006 пользователей)
Ответ: [Physics] Простой пример, с большими проблемами

Попробуй перепозиционировать графический объект вручную. Находишь координаты и ротации физического, на него позиционируешь и крутишь графический, в цикле естественно..
__________________

EvilChaotic About
(Offline)
 
Ответить с цитированием
Старый 02.03.2010, 21:05   #6
Comment
Оператор ЭВМ
 
Регистрация: 16.09.2009
Сообщений: 23
Написано одно полезное сообщение
Ответ: [Physics] Простой пример, с большими проблемами

Сообщение от EvilChaotic Посмотреть сообщение
Попробуй перепозиционировать графический объект вручную. Находишь координаты и ротации физического, на него позиционируешь и крутишь графический, в цикле естественно..
Так делал, но все же хочется с нормальных средств Physix
(Offline)
 
Ответить с цитированием
Старый 02.03.2010, 21:29   #7
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 774 пользователей)
Ответ: [Physics] Простой пример, с большими проблемами

создай функцию привязки и пользуйся ей
(Offline)
 
Ответить с цитированием
Старый 02.03.2010, 21:34   #8
Comment
Оператор ЭВМ
 
Регистрация: 16.09.2009
Сообщений: 23
Написано одно полезное сообщение
Ответ: [Physics] Простой пример, с большими проблемами

Сообщение от H@NON Посмотреть сообщение
создай функцию привязки и пользуйся ей
Уже создал, но почему стандартная не пашет?
(Offline)
 
Ответить с цитированием
Старый 02.03.2010, 21:49   #9
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,743
Написано 5,461 полезных сообщений
(для 15,676 пользователей)
Ответ: [Physics] Простой пример, с большими проблемами

Вывод: физический объект двигается, а графический нет!!!
Это хорошо, что ты такой вывод сделал, но только приучи себя делать их сразу, а не ждать наводящих советов

pxBodySetEntity - это хак, она меняет координаты/поворот ентити блица прямо в памяти, вот почему она работает только в Блице 3Д, т.к. зависит от его структуры данных. И поэтому же для Ксорса такая функция своя (хотя не знаю, как сейчас, вроде, авторы её уже совсем выпилили, и правильно сделали: состыковывать изменения Ксорса и Враппера при каждом изменении чего-то там внутри - не рулит). Возможно, в Б3ДСДК, хоть это и "почти блиц3Д", структура немного иная, вот и не пашет.

Кстати в 1.100 вроде, версии, блица, уже глюки полезли со стандартной pxBodySetEntity, видимо, Марк наковырял внутренности, так что советую написать свою функцию. Надёжней будет.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:
baton4ik (14.04.2010), Comment (02.03.2010), tormoz (03.03.2010), Данил (02.03.2010)
Старый 02.03.2010, 23:35   #10
Comment
Оператор ЭВМ
 
Регистрация: 16.09.2009
Сообщений: 23
Написано одно полезное сообщение
Ответ: [Physics] Простой пример, с большими проблемами

Спасибо всем за помощь
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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