Результаты поиска
| | | |
ad141 | Дата: Суббота, 25 Августа 2012, 15:24 | Сообщение # 23 | Тема: как сделать? |
почетный гость
Сейчас нет на сайте
| А всё не надо... Я нашёл функцию, которая выдаёт точку пересечения мыши с указыным 3D объектом... Добавлено (25.08.2012, 15:22) ---------------------------------------------
Code D3DXVECTOR3 Mouse3DPos; if(iMeshPicked (Camera, MeshPlaneY)) { iPickPoint (&Mouse3DPos); } Добавлено (25.08.2012, 15:24) --------------------------------------------- Только функция почемуто позицию по высоте выдаёт одну и туже 1.0... Хотя MeshPlaneY я двигаю ниже... Придётся брать вместо позиции по Y мыши в 3D пространстве, брать позицию MeshPlaneY по Y, так как она вся ровно плоская...
Баблосы здесь... Зарегестрируйся и начни получать деньги... Платят мало, но стабильно, а самое главное платят! а не обещают...
|
|
| |
ad141 | Дата: Суббота, 25 Августа 2012, 14:56 | Сообщение # 24 | Тема: как сделать? |
почетный гость
Сейчас нет на сайте
| Теперь как найти точку пересечения, этого луча с плоскостью на y=-100 ??? Получившейся пример... Мышь, стрелки...
Баблосы здесь... Зарегестрируйся и начни получать деньги... Платят мало, но стабильно, а самое главное платят! а не обещают...
Сообщение отредактировал ad141 - Суббота, 25 Августа 2012, 15:00 |
|
| |
ad141 | Дата: Четверг, 23 Августа 2012, 19:10 | Сообщение # 25 | Тема: как сделать? |
почетный гость
Сейчас нет на сайте
| Движёк 3impact... Вот функции движка: http://www.3impact.com/3Impact_Engine/hulk7123/reference.htm
Баблосы здесь... Зарегестрируйся и начни получать деньги... Платят мало, но стабильно, а самое главное платят! а не обещают...
|
|
| |
ad141 | Дата: Четверг, 23 Августа 2012, 15:50 | Сообщение # 26 | Тема: как сделать? |
почетный гость
Сейчас нет на сайте
| Такой вопрос, по какой формуле можно высчитать позицию мыши в трёхмерном пространстве?
Дано: float Fov - Угол обхоракамеры float MouseX, MouseY - Позиция мыши на экране от 0.0 до 1.0f Vector3 CamP - Позиция камеры .x, .y, .z Quanternion CamR - Направление камеры .x, .y, .z, .w int Level - Уровень (позиция по Y) для расчёта положения мыши...
Баблосы здесь... Зарегестрируйся и начни получать деньги... Платят мало, но стабильно, а самое главное платят! а не обещают...
|
|
| |
ad141 | Дата: Среда, 22 Августа 2012, 08:22 | Сообщение # 27 | Тема: вопросы по разным алгоритмам |
почетный гость
Сейчас нет на сайте
| Archido, круто... А я на самом деле незнал... Подобирал формулу и тут бац, с плавным затуханием... Добавлено (22.08.2012, 08:22) --------------------------------------------- А какие есть ещё интерполяции? Есть с плавным наростом скорости?
Баблосы здесь... Зарегестрируйся и начни получать деньги... Платят мало, но стабильно, а самое главное платят! а не обещают...
|
|
| |
ad141 | Дата: Вторник, 21 Августа 2012, 23:40 | Сообщение # 28 | Тема: вопросы по разным алгоритмам |
почетный гость
Сейчас нет на сайте
| с плавным затуханием скорости
Code CurrentAngle += (TargetAngle - CurrentAngle) * 0.01f; // Последнее число - скорость (1.0) - мгновенно, 0.000001 - очень плавно... FunctionRotate(sprite, CurrentAngle);
Баблосы здесь... Зарегестрируйся и начни получать деньги... Платят мало, но стабильно, а самое главное платят! а не обещают...
|
|
| |
ad141 | Дата: Вторник, 21 Августа 2012, 19:38 | Сообщение # 29 | Тема: Вопрос, запись в файл... |
почетный гость
Сейчас нет на сайте
| Проблема устранена... PathNew Должен был иметь размер более 1024 символов... (в документации про это, не чего не написано )Добавлено (21.08.2012, 19:38) --------------------------------------------- Всё работает!!! Спасибо...
Баблосы здесь... Зарегестрируйся и начни получать деньги... Платят мало, но стабильно, а самое главное платят! а не обещают...
|
|
| |
ad141 | Дата: Вторник, 21 Августа 2012, 18:43 | Сообщение # 30 | Тема: Вопрос, запись в файл... |
почетный гость
Сейчас нет на сайте
| Флаг поменял, всряровно вылетает...
Строчку Code if(iFileOpenDialog("Open file", "DerectX files (*.x)\0*.x\0All files (*.*)\0*.*\0\0", PathNew, false)) Он выпалняет с true... То есть тут ошибки нет, иначе он бы не вылетал а вытаскивал сообщение... Так как файл не скопирован, значит до строчки Code if(CopyFile(PathNew, PathOld2, true)) Если бы он это выполнил то он бы скопировал файл безпроблем илиже вытащил сообщениеДобавлено (21.08.2012, 18:43) --------------------------------------------- Вылетает на строчке
Code if(iFileOpenDialog("Open file", "DerectX files (*.x)\0*.x\0All files (*.*)\0*.*\0\0", PathNew, false)) =(
Баблосы здесь... Зарегестрируйся и начни получать деньги... Платят мало, но стабильно, а самое главное платят! а не обещают...
|
|
| |
ad141 | Дата: Вторник, 21 Августа 2012, 16:52 | Сообщение # 31 | Тема: Вопрос, запись в файл... |
почетный гость
Сейчас нет на сайте
| Почемуто вылетает!
Code iPrintCentered("Please press F1 to add new Model",&D3DXVECTOR2(0.0f,0.0f),&D3DXVECTOR2(1.0f,1.0f),0.1f,FontWhite,0.0f); if(iKeyClick(DIK_F1)) { char PathNew[512]; char PathOld[512]; char PathOld2[1024]; char TextNew[128]; iGlobalPathMake(PathNew,""); if(iFileOpenDialog("Open file", "DerectX files (*.x)\0*.x\0All files (*.*)\0*.*\0\0", PathNew, false)) { iGlobalPathMake(PathOld,"Data\\Blocks\\"); iFileNameOnly (TextNew, PathNew); sprintf(PathOld2,"%s%s.x",PathOld,TextNew); if(CopyFile(PathNew, PathOld2, true)) { if(iFileExists (PathOld)) { HANDLE hFile; DWORD dwDone; char filepath[512]; iGlobalPathMake(filepath,"Data\\Blocks.bin"); // Функция движка 3impact hFile = CreateFile(filepath,GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); if (hFile != INVALID_HANDLE_VALUE) { SetFilePointer(hFile, 0, 0, FILE_END); WriteFile(hFile,&TextNew,128,&dwDone,NULL); CloseHandle(hFile); iMessageBox ("The text added!"); // Функция движка 3impact } else { iMessageBox ("Block index open filed"); // Функция движка 3impact } } else { iMessageBox ("File copy filed"); } } else { iMessageBox ("File name failed"); } } else { iMessageBox ("File name failed"); } }
Баблосы здесь... Зарегестрируйся и начни получать деньги... Платят мало, но стабильно, а самое главное платят! а не обещают...
|
|
| |
ad141 | Дата: Понедельник, 20 Августа 2012, 22:22 | Сообщение # 32 | Тема: Вопрос, запись в файл... |
почетный гость
Сейчас нет на сайте
| Программа: Я задаю путь к файлу... Он его копирует в папку с файлами "3D моделек"... Открывает файл где записаны какие "3D модельки" уже скопированны... Дописываю в этот файл название только что добавленной "3D модельки"...
Quote (Нохчи) С чего ты взял? так как одна строка занимает 128байт (128 символов)... А так как файл пустой, то в него должны записатся эти самые 128 символов, то есть 128байт...
Баблосы здесь... Зарегестрируйся и начни получать деньги... Платят мало, но стабильно, а самое главное платят! а не обещают...
|
|
| |
ad141 | Дата: Воскресенье, 19 Августа 2012, 22:18 | Сообщение # 33 | Тема: Вопрос, запись в файл... |
почетный гость
Сейчас нет на сайте
| Дан путь к файлу... Пример: F:\Copy.x Мы копируем этот файл в некоторую папку Data\Blocks\ Если копирование прошло успешно, мы открываем файл где написаны какие файлы были скопированы в Data\Blocks\
Так как мне нужно добавленый файл дописать к списку уже скопированых, приходится считывать (другово пути я не знаю...), а потом заново записывать + записываю новый скопированный файл...
Проблема в том что когда открываеш файл со списком, то там много строк записаных и в самом конце моя записаная строка записанового файла... Если очистить этот файл и записать заново, то выходит обпять такаяже фигня... Полученныйфайл весит около 133кБ... А должен 128байт...
Извините, C++ знаю не очень хорошо =( Code #include <windows.h> #include <stdio.h> #include <math.h> #include "..\common\3impactDLL_defs.h"
char TextNew[128]; if(CopyFile("F:\\Copy.x", "C:\\Data\\Blocks\\Copy.x", true)) { if(iFileExists ("C:\\Data\\Blocks\\Copy.x")) { HANDLE hFile; DWORD dwDone; char filepath[256]; iGlobalPathMake(filepath,"Data\\Blocks.bin"); // Функция движка 3impact char Text[128][128]; int TextN = 0; hFile = CreateFile(filepath,GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); if (hFile != INVALID_HANDLE_VALUE) { for(int i = 0; i < 128; i++) { if(ReadFile(hFile,&Text[i],128,&dwDone,NULL)) {TextN++;} else {i = 255;} } CloseHandle(hFile); } else { iMessageBox ("Block index open filed"); // Функция движка 3impact } hFile = CreateFile(filepath,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL); if (hFile != INVALID_HANDLE_VALUE) { for(int i = 0; i <filepathsN; i++) { WriteFile(hFile,&Text[i],128,&dwDone,NULL); } WriteFile(hFile,&TextNew,128,&dwDone,NULL); CloseHandle(hFile); iMessageBox ("The text added!"); // Функция движка 3impact } } else { iMessageBox ("File copy filed"); } } else { iMessageBox ("File name failed"); }
Баблосы здесь... Зарегестрируйся и начни получать деньги... Платят мало, но стабильно, а самое главное платят! а не обещают...
|
|
| | |
ad141 | Дата: Понедельник, 16 Апреля 2012, 22:10 | Сообщение # 35 | Тема: Преобразование типов чисел в скрипте |
почетный гость
Сейчас нет на сайте
| int(тут число float...) float(тут любой чесло) Vector3(float1, float2, float3) Quaternion(float1, float2, float3, float4)
Баблосы здесь... Зарегестрируйся и начни получать деньги... Платят мало, но стабильно, а самое главное платят! а не обещают...
|
|
| |
ad141 | Дата: Понедельник, 16 Апреля 2012, 22:08 | Сообщение # 36 | Тема: Значение ориентации |
почетный гость
Сейчас нет на сайте
| Переменная типа Quaternion содержит 4 значения float... и одним числом его не выведешь! Для того что бы Quaternion возвращал 1 значение типа float тогда надо к переменной приписывать .x или .y .z .w пример
Quaternion Orientation;
void Main() { OUT_0=Orientation.x; OUT_22=Orientation.y; OUT_44=Orientation.z; OUT_66=Orientation.w; }
вообще то Quaternion содержит направление объекта не в градусах а в какой то другой херне и если её изменять вручную, тогда объект может изменить размер в ширину или длину или что то в этом роде...
Баблосы здесь... Зарегестрируйся и начни получать деньги... Платят мало, но стабильно, а самое главное платят! а не обещают...
|
|
| |
ad141 | Дата: Среда, 11 Апреля 2012, 17:57 | Сообщение # 37 | Тема: функции iNet |
почетный гость
Сейчас нет на сайте
| У меня такой вопрос, как сделать чтобы клиент отправлял число(float) серверу?
Сервер отправляет данные (iNetFloatArraySendEx(0,2,0,true)) и клиент их получает... (iNetFloatArrayReceive()) но когда клиент отпровляет данные (iNetFloatArraySendEx(2,2,0,true)) и сервер их как бы получает(iNetFloatArrayReceive()), потому что ему приходит инфа то что приняты данные (iNetFloatArrayReceive()!=0) но почему то он их не обновляет [2] и [3], а делает похожими на [0] и [1] которые отправлял сервер...
БлогДобавлено (11.04.2012, 17:57) ---------------------------------------------
Code //OBJ_0 - TextPrint
int xFFFFi=0; string xFFFFs=""; int xFFFEi=0; int xFFFDi=0;
void Main() { if(KeyClickDown("DIK_F1", 0)&&xFFFFi==0) {if (iNetServerStart("3D Rad Network Game","Server",25857,123456789,100000)){xFFFFi=1;}else{xFFFFi=-1;}} if(KeyClickDown("DIK_F2", 1)&&xFFFFi==0) {if (iNetClientStart("","Client",123456789,100000,"Connect",-1,0)){xFFFFi=2;}else{xFFFFi=-2;}} if(KeyClickDown("DIK_F3", 2)&&xFFFFi!=0) {iNetStop();xFFFFi=0;} if(xFFFFi==-2){xFFFFs="Client can't run";} if(xFFFFi==-1){xFFFFs="Server can't run";} if(xFFFFi==0){xFFFFs="iNet off";} if(xFFFFi==1){xFFFFs="Server run";xFFFFx0();} if(xFFFFi==2){xFFFFs="Client run";xFFFFx1();} iPrint("Status: "+xFFFFs, -14,10,OBJ_0); }
void xFFFFx0() { iNetFloatArraySet(0, xFFFEi); if(iNetFloatArrayReceive()!=0) {int x0000i=0; for(x0000i;x0000i<2;x0000i++) {xFFFFs+="\r"+iNetFloatArrayGet(x0000i);xFFFEi++;}} iNetFloatArraySendEx (0, 1, 0, true); }
void xFFFFx1() { iNetFloatArraySet(1, xFFFEi); iNetFloatArraySet(2, xFFFDi); if(iNetFloatArrayReceive()!=0) {int x0000i=0; for(x0000i;x0000i<1;x0000i++) {xFFFFs+="\r"+iNetFloatArrayGet(x0000i);xFFFEi+=100;xFFFDi-=111;}} iNetFloatArraySendEx (1, 2, 0, true); }
bool[] x0000b(100);int[] x0000i(100); bool KeyDown(string x0000) {if (iKeyDown(iKeyCode(x0000))){return(true);}else{return(false);}} bool KeyClickDown(string x0000, int x0001) {if (KeyDown(x0000)&&x0000b[x0001]) {x0000b[x0001]=false;return(true);} else if (KeyDown(x0000)&&!x0000b[x0001]) {x0000b[x0001]=false;return(false);} else {x0000b[x0001]=true;return(false);}} bool KeyClickUp(string x0000, int x0001) {if (KeyDown(x0000)) {x0000b[x0001]=true;return(false);} else if (!x0000b[x0001]) {x0000b[x0001]=false;return(false);} else {x0000b[x0001]=false;return(true);}} bool KeySwitch(string x0000, int x0001) {if (KeyClickDown(x0000, x0001)){x0000i[x0001]++;if(x0000i[x0001]>1||x0000i[x0001]<0){x0000i[x0001]=0;}} if (x0000i[x0001]==0) {return(false);} else {return(true);}}
F1 - включить сервер F2 - включить клиент F3 - Отключиться
Баблосы здесь... Зарегестрируйся и начни получать деньги... Платят мало, но стабильно, а самое главное платят! а не обещают...
Сообщение отредактировал ad141 - Среда, 11 Апреля 2012, 17:55 |
|
| |
ad141 | Дата: Четверг, 29 Марта 2012, 20:41 | Сообщение # 38 | Тема: Рандомное появление объектов. |
почетный гость
Сейчас нет на сайте
| Quote (Bernie) Возможно как нибудь сделать так, чтобы на некотором расстоянии от переда машины, начали рандомно появлятся Скин меши? И все это с интервалом во времени. Да, это надо высчитать направление машини... найти точку перед ним, за счет направления сделать отрезок в 2метра и рандомно на этом отрезке будут появлятся СкинМеши... Теоретическия понимаю как, а практичиски незнаю как расшифровать Quanternion в градусы...
Баблосы здесь... Зарегестрируйся и начни получать деньги... Платят мало, но стабильно, а самое главное платят! а не обещают...
|
|
| | | |
|