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

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

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

Xors3D Графический движок с поддержкой DirectX9

Ответ
 
Опции темы
Старый 07.06.2013, 22:32   #646
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,005
Написано 2,303 полезных сообщений
(для 5,338 пользователей)
Ответ: Xors3D

Как пользоваться скриптами хорса?

Старые примеры неактуальны. Нового ничего найти не удалось.

P. S. Использую Blitz3D.
(Offline)
 
Ответить с цитированием
Старый 07.06.2013, 23:16   #647
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,005
Написано 2,303 полезных сообщений
(для 5,338 пользователей)
Ответ: Xors3D

Делаю скрипт так:
int main()
{
  int cube = xCreateCube (int);
}
Подключаю так:

Include "xors3d.bb"
Include "xorsbind.bb"

xGraphics3D(800, 600, 32, False, True)


loadCub = xLoadScript("load.txt")

camera = xCreateCamera()
light = xCreateLight()

xExecuteScript(loadCub,"main")

xPositionEntity(cube, 0, 0, 10)

While Not xKeyHit(1)
        xTurnEntity(cube, 0.1, 0.1, 0.1)
        xRenderWorld()
        xText(10, 10, "FPS: " + xGetFPS())
        xFlip()
Wend
End
Получаю так:



Что я делаю не так?
(Offline)
 
Ответить с цитированием
Старый 07.06.2013, 23:34   #648
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Xors3D

Сообщение от Arton Посмотреть сообщение
Делаю скрипт так:
int main()
{
  int cube = xCreateCube (int);
}
Подключаю так:

Include "xors3d.bb"
Include "xorsbind.bb"

xGraphics3D(800, 600, 32, False, True)


loadCub = xLoadScript("load.txt")

camera = xCreateCamera()
light = xCreateLight()

xExecuteScript(loadCub,"main")

xPositionEntity(cube, 0, 0, 10)

While Not xKeyHit(1)
        xTurnEntity(cube, 0.1, 0.1, 0.1)
        xRenderWorld()
        xText(10, 10, "FPS: " + xGetFPS())
        xFlip()
Wend
End
Получаю так:



Что я делаю не так?
Не знаю на каком языке скрипт, но по идее он должен был вернуть хэндл созданного куба и потом int это не переменная а тип данных какой смысл писать так "xCreateCube (int);"?

ну и в самом тексте блитца, откуда он блитц поймет что куб это вот тот куб созданный внутри скрипта?
(Offline)
 
Ответить с цитированием
Старый 07.06.2013, 23:42   #649
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,005
Написано 2,303 полезных сообщений
(для 5,338 пользователей)
Ответ: Xors3D

Сообщение от dsd Посмотреть сообщение
Не знаю на каком языке скрипт, но по идее он должен был вернуть хэндл созданного куба и потом int это не переменная а тип данных какой смысл писать так "xCreateCube (int);"?

ну и в самом тексте блитца, откуда он блитц поймет что куб это вот тот куб созданный внутри скрипта?
Скрипты хорса основаны на AngelScript, "xCreateCube (int);" написал потому-что так объявляется функция для скриптов. То бишь:
xRegisterFunction("int xCreateCube(int)", xGetFunctionAddress("xCreateCube")) - заготовлено в файл специально для блица. И так было в старых примерах.

"C" синтаксис я не знаю.
(Offline)
 
Ответить с цитированием
Старый 07.06.2013, 23:49   #650
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Xors3D

Сообщение от Arton Посмотреть сообщение
"C" синтаксис я не знаю.
Ну так почитай, все вопросы и уйдут.
(Offline)
 
Ответить с цитированием
Старый 07.06.2013, 23:52   #651
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,005
Написано 2,303 полезных сообщений
(для 5,338 пользователей)
Ответ: Xors3D

Сообщение от dsd Посмотреть сообщение
Ну так почитай, все вопросы и уйдут.
Не поможет.

Вот старый пример:

Include "headers\blitz3d\xorsbind.bb"
script = xLoadScript("pssm.txt")
xExecuteScript(script)
Это код блица, ничего не объявляется, получается движок сам всё находит.

В скрипте было следующие:
float CurveValue(float newvalue, float oldvalue, int increments)
{
    if(increments >  1) oldvalue = oldvalue - (oldvalue - newvalue) / increments;
    if(increments <= 1) oldvalue = newvalue;
    return oldvalue;
}

int main()
{
	// инициализация
	string path = "PSSM Demo via xScript";
	xAppTitle(path);
	xGraphics3D(800, 600, 32, 0, 1);
xJoyDown(0, 1);
	xCreateDSS(1024, 1024);
	xSetTextureFiltering(6);
	xAntiAlias(1);
	// камера
	int cam = xCreateCamera(0);
	xPositionEntity(cam, 0, 20, -210, 1);
	xCameraClsColor(cam, 190, 190, 190);
	xCameraRange(cam, 0.5, 2000);
	// инициализация PSSM
	xPSSMInit(cam, "media\\PSSM.fx", 1024);
	xPSSMLightTarget(0, -20, 0);
	xPSSMLightZoom(0.1);
	// мир
	path = "media\\city.b3d";
	int test = xLoadMesh(path, 0);
	xPSSMSetEntity(test, 1, 1);
	// пост-эффект для PSSM
	int poly = xCreatePostEffectPoly(cam, 1);
	int tex  = xCreateTexture(800, 600, 1, 1);
	int tex2 = xCreateTexture(800, 600, 1, 1); 
	int brushedmetal = xLoadFXFile("media\\Shadow_postEffect.fx");
	xSetEntityEffect(poly, brushedmetal);
	xSetEffectTechnique(poly, "Diffuse");
	xSetEffectMatrixSemantic(poly, "MatWorldViewProj", 1);
	xSetEffectTexture(poly, "tDiffuse", tex, 0);
	xSetEffectTexture(poly, "tEmissive", tex2, 0);
	// главный цикл
	while(!xKeyDown(1))
	{
		// управление камерой
		if(xKeyDown(17)) xMoveEntity(cam, 0, 0, 1, 0);
		if(xKeyDown(31)) xMoveEntity(cam, 0, 0, -1, 0);
		if(xKeyDown(30)) xMoveEntity(cam, -1, 0, 0, 0);
		if(xKeyDown(32)) xMoveEntity(cam, 1, 0, 0, 0);
		float mxs = CurveValue(xMouseXSpeed() * 0.5, mxs, 4.5);
		float mys = CurveValue(xMouseYSpeed() * 0.5, mys, 4.5);
		float camxa = camxa - mxs % 360; 
		float camya = camya + mys;
		if(camya < -89) camya = -89;
		if(camya >  89) camya =  89;
		xMoveMouse(400,300);
		xRotateEntity(cam, camya, camxa, 0, 0);
		// обновление позиции и вращения источника света
		xUpdateWorld(1.0);
		xPSSMLightSource(-600, 450, 600);
		float fLightRotation = float(timeGetTime() / 1500.0);
		xPSSMLightSource(-600 * sin(fLightRotation), 450, 600 * cos(fLightRotation));
		// рендер мира
		xPSSMRender(cam, 0.85, 4, tex);
		xSetBuffer(xTextureBuffer(tex2, 0));
		xRenderWorld(1.0);
		xSetBuffer(xBackBuffer());
		xRenderPostEffect(poly);
		// вывод на экран
		xText(10, 10, "FPS: " + xGetFPS(), 0, 0);
		xFlip();
	}
	return 1;
}
(Offline)
 
Ответить с цитированием
Старый 07.06.2013, 23:58   #652
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Xors3D

Так в скрипте то нормальный текст понятный хорсу из которого получается правильная последовательность команд не приводящая к фэйлу.

Там по сути из блитца только сам скрипт запускался, а дальше уже все шло внутри скрипта. А у тебя же наоборот все в блитце, а скрипт создает какой то куб, чей хэндл не присваивается никакой переменной. И потом внезапно ты в блитце пытаешься манипулировать объектом cube который не понятно что для блитца.
(Offline)
 
Ответить с цитированием
Старый 08.06.2013, 00:17   #653
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,005
Написано 2,303 полезных сообщений
(для 5,338 пользователей)
Ответ: Xors3D

Блиц:
Include "xors3d.bb"
Include "xorsbind.bb"

loadCub = xLoadScript("load2.txt")

xExecuteScript(loadCub,"main")
Всё остальное запихал в скрипт:

int main()
{

   xGraphics3D(800, 600, 32, False, True);

   int camera = xCreateCamera(int);
   int light = xCreateLight(int);

   int Cube = xCreateCube(int);
   xPositionEntity(cube, 0, 0, 10);

   {
    While Not xKeyHit(1);
     xTurnEntity(cube, 0.1, 0.1, 0.1);
      xRenderWorld();
       xText(10, 10, "FPS: " + xGetFPS());
        xFlip(xRenderWorld);
     Wend;
   End;
   }
   return 1;
}


Не понимаю.
(Offline)
 
Ответить с цитированием
Старый 08.06.2013, 00:25   #654
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Xors3D

int main()
{

   
xGraphics3D(80060032FalseTrue);

   
int camera xCreateCamera();
   
int light xCreateLight();

   
int Cube xCreateCube();
   
xPositionEntity(Сube0010);

   {
    While 
Not xKeyHit(1);
     
xTurnEntity(Сube0.10.10.1);
      
xRenderWorld();
       
xText(1010"FPS: " xGetFPS());
        
xFlip();
     
Wend;
   
End;
   }
   return 
1;

xCreateCamera(int) такого вида запись в справке всего лишь говорит о том какого типа переменую или число писать в аргументе функции.

Просто возьми и выучи синтаксис языка скрипта, это не сложней чем бейсик.
(Offline)
 
Ответить с цитированием
Старый 08.06.2013, 12:09   #655
Maddourufu
Безумец
 
Аватар для Maddourufu
 
Регистрация: 14.11.2012
Сообщений: 63
Написано 9 полезных сообщений
(для 13 пользователей)
Ответ: Xors3D

Артон, кажется, я начал понимать: тебе надо писать всю "игру" в скрипте Хорса. А в блице- только пару строк, запускающие этот скрипт. То есть ты променял Basic на C++ ))))
PS: если я до конца проснулся...
__________________
~です
(Offline)
 
Ответить с цитированием
Старый 08.06.2013, 16:25   #656
Wegox
Бывалый
 
Аватар для Wegox
 
Регистрация: 17.12.2011
Сообщений: 862
Написано 443 полезных сообщений
(для 1,133 пользователей)
Ответ: Xors3D

Сообщение от Arton Посмотреть сообщение
Блиц:
[code]



Не понимаю.
Ну строй по образу и подобию

Я вот сейчас трезво на построения скрипта смотрю, и твой отличается

Ну например;
Типа правильный да?
while(!xKeyDown(1))
	{
		// управление камерой
		if(xKeyDown(17)) xMoveEntity(cam, 0, 0, 1, 0);......
		
		// обновление позиции и вращения источника света
		xUpdateWorld(1.0);
		xPSSMLightSource(-600, 450, 600);
		float fLightRotation = float(timeGetTime() / 1500.0);
		xPSSMLightSource(-600 * sin(fLightRotation), 450, 600 * cos(fLightRotation));
		// рендер мира
		xPSSMRender(cam, 0.85, 4, tex);
		xSetBuffer(xTextureBuffer(tex2, 0));
		xRenderWorld(1.0);
		xSetBuffer(xBackBuffer());
		xRenderPostEffect(poly);
		// вывод на экран
		xText(10, 10, "FPS: " + xGetFPS(), 0, 0);
		xFlip();
	}
	return 1;
}
ну и твой да?
int main()
{
   xGraphics3D(800, 600, 32, False, True);.......

   {
    While Not xKeyHit(1);
     xTurnEntity(cube, 0.1, 0.1, 0.1);
      xRenderWorld();
       xText(10, 10, "FPS: " + xGetFPS());
        xFlip(xRenderWorld);
     Wend;
   End;
   }
   return 1;
}
Хоть я и не вижу смысла, конкретно в этих скриптах типа компилировать лень что-ли?
(Offline)
 
Ответить с цитированием
Старый 08.06.2013, 20:46   #657
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,005
Написано 2,303 полезных сообщений
(для 5,338 пользователей)
Ответ: Xors3D

Всё, фтопку скрипты! Сейчас они нафиг ненужны.

Да, Wegox, я заметил свои косяки, под конец взгляд замылился и я совсем перестал понимать что пишу.

Лучше шейдерами займусь, вот это действительно полезная вещь. Так что булчане ожидайте от меня в скором времени, много тупых вопросов.

Спасибо всем кто старался помочь мне.
(Offline)
 
Ответить с цитированием
Старый 07.09.2013, 23:25   #658
Bullet89
Оператор ЭВМ
 
Аватар для Bullet89
 
Регистрация: 04.09.2013
Сообщений: 49
Написано 30 полезных сообщений
(для 126 пользователей)
Ответ: Xors3D

http://area.xors3d.com/

hacked by dr.m1st3r

Как так?
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо Bullet89 за это полезное сообщение:
Arton (08.09.2013), Кирпи4 (08.09.2013), LLI.T.A.L.K.E.R. (08.09.2013)
Старый 07.09.2013, 23:35   #659
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,934 пользователей)
Ответ: Xors3D

Sic transit gloria mundi
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 08.09.2013, 08:38   #660
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Ответ: Xors3D

XORS3D engine developer SQUID contact e-mail ?

http://www.blitzbasic.com/Community/...p?topic=101100
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Кирпи4 (08.09.2013)
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Xors3d wants YOU! .Squid Xors3D 33 13.01.2013 23:34
Xors3D для D johnk Проекты C++ 8 09.08.2009 14:18
Xors3D for .NET? johnk C++ 7 06.08.2009 09:34
Xors3D ЛысыЙ_Чук-Иванчук Модули для BlitzMax 145 18.06.2009 21:17
xors3d NitE 3D-программирование 9 02.04.2009 22:21


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


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