Воскресенье, 24 Ноября 2024, 18:44

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
ArchidoДата: Вторник, 18 Декабря 2012, 16:29 | Сообщение # 321 | Тема: iOS SDK vs Android SDK?
Сэнсэй
Сейчас нет на сайте
Quote (arthurfok)
ЧТО ЛЕГЧЕ изучить C# программисту? Objective C и iOS SDK ?? или Java и Android SDK ??

Java одного уровня с С# примерно, ObjC посложнее будет. Но под iOS интереснее в перспективе писать, ибо видов железа не много (меньше гемора, проще соопровождать) и платежеспобность пользователей iOS повыше будет, нежели Android'a.

Но есть и такой вариант, как предложили:
Quote (_Master_)
купи monodroid или monotouch и пиши под иОС или андроид на шарпе.

Можно также купить и заюзать Unity biggrin , либо приобрести Corona SDK и писать под обе платформы на Lua, что еще проще.

Добавлено (18.12.2012, 16:29)
---------------------------------------------
Капец, смотрю все посты идут с датой "Сегодня", ответил и позже уже заметил, что ТС создал тему фактически месяц назад happy . Народ, что за рвение старые темы поднимать? smile


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Вторник, 18 Декабря 2012, 12:37 | Сообщение # 322 | Тема: Мои вопросы по С++
Сэнсэй
Сейчас нет на сайте
Quote (vknw123)
Вообщето я боюсь запутаться, да и может ошибаюсь. Может расскажите мне попонятнее?

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

Посмотрел сылку и насколько я понимаю - этот GameKit некий игровой движок, редактором для которого может выступать Blender + он может использовать .blend файлы для загрузки карты, моделей, текстур, etc. Т.е. грубо говоря это некий такой "плеер", которому подсовываешь .blend файл, он берет оттуда необходимые данные и запускает игру. Также с использованием этого GameKit'a - можно писать игровой код с помощью Lua или прямиком на С++, в последнем случае уже нужны стопроцентно исходники и компиляция всего этого в бинарник.

Чисто технически (да и вообще в здравом смысле smile ) перевод .blend файла в некий код невозможен, т.к. этот файл содержит в большинстве своем лишь данные \ контент (модели, текстуры), а такие данные всегда хранятся рядом с экзешником. Другое дело, что теоретически этот .blend файл можно преобразовать в файл другого формата, который будет понятен для движка (GameKit), но возможно ли это в реальности - я понятия не имею. Возможно есть еще какие-то варианты.

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


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Вторник, 18 Декабря 2012, 12:38
ArchidoДата: Понедельник, 17 Декабря 2012, 18:17 | Сообщение # 323 | Тема: Мои вопросы по С++
Сэнсэй
Сейчас нет на сайте
vknw123
Ваша неправда - так делать нельзя. Советую почитать что такое cmake. Он не имеет никакого отношения к 3д редакторам, а всего лишь атоматически собирает бинарник из исходного кода.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Вторник, 11 Декабря 2012, 20:46 | Сообщение # 324 | Тема: Вопросы по FreeGlut
Сэнсэй
Сейчас нет на сайте
Quote (ad141)
Можно ли как нибудь в Glut сделать несколько 2D слоев, что бы не перерисовывать всю сцену, а только некоторые слои отдельно?

Что еще за слои? Как это вообще должно выглядеть? Каждый кадр всегда перерисовывается вся сцена, так или иначе... Для чего, кстати, такое требуется? Единственный вариант не рендерить повторно геометрию - это рендер в текстуру, но в OpenGL такое делается весьма нетривиальным образом. Да и не нужно это, наверняка.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Вторник, 11 Декабря 2012, 20:47
ArchidoДата: Вторник, 11 Декабря 2012, 20:11 | Сообщение # 325 | Тема: курсовая
Сэнсэй
Сейчас нет на сайте
Действительно, и зачем тут нужен какой-то вектор... Изображение черно-белое (какой-нить grayscale), для хранения пикселя достаточно всего одного байта (яркость). Обычно если такое изображение сохранить как RGB, то получится что R = G = B, берем у каждого пикселя R и переводим в двоичку, G и B пропускаем. И так для каждого пикселя.

C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Воскресенье, 09 Декабря 2012, 20:49 | Сообщение # 326 | Тема: Мои вопросы по С++
Сэнсэй
Сейчас нет на сайте
kikas86
А чего скачешь между DX и OGL? smile Выбери сначала что-нибудь одно, а когда хорошо разберешься и если будет необходимость - можно и второй GAPI освоить.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Воскресенье, 09 Декабря 2012, 20:46 | Сообщение # 327 | Тема: Как взять выражение под знак корня N'ой степени?
Сэнсэй
Сейчас нет на сайте
Quote (Saitei)
чень странным будет вопрос, но... sqrt() и pow(), как я понял, работают только с помощью math.h. А чем пользоваться лучше в этом плане? Этичнее, что ли?

Ну, в принципе, уже ответили на вопрос, но уточню:
Sqrt - это когда берут только квадратный корень, только тогда и используют, т.к. это очевидно и сразу понятно любому, кто посмотрит на код.
Pow - возведение в степень, корень - это тоже степень, но меньше единицы. Т.е. корень степени N равен 1/N "обычной" степени и таким образом с помощью pow можно взять почти любой корень (ну, в разумных пределах). Квадратный, таким образом, брать смысла не имеет.

Еще, кстати, возвести в любую степень можно следующим образом: "Result = exp(N * log(X));", где N - степень, а X - число. Это, правда, еще менее наглядно, но работает smile


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Воскресенье, 09 Декабря 2012, 20:50
ArchidoДата: Воскресенье, 09 Декабря 2012, 20:16 | Сообщение # 328 | Тема: Мои вопросы по С++
Сэнсэй
Сейчас нет на сайте
Нефиг переключать "MatrixMode" и менять проекцию smile , ибо "GL_PROJECTION" зовут только когда нужно поменять матрицу проекции (ваш кэп), обычно делается это всего один раз за кадр перед отрисовкой вообще, после сразу же ставится "GL_MODELVIEW" и далее нигде не переключается, ибо обычно для 2д смысла это не имеет.

Т.е. перед отрисовкой кадра делается что-то вроде этого:
Code

glMatrixMode(GL_PROJECTION);      
glLoadIdentity();   
gluOrtho2D(...);

glMatrixMode(GL_MODELVIEW);    
glLoadIdentity();

После этого glMatrixMode можно не трогать. Ну, а далее все так же:
Code

void Sprite::CreateCobe(float x, float y, int sx, int sy)   
   {   
        float x0 = -sx;   
        float y0 = -sy;   
        float x1 =  sx;   
        float y1 =  sy;   
         
        glPushMatrix();   
        glTranslatef(-x,-y,0);   
        glRotatef(45,0.0f,0.0f,1.0f);   
     
        glBegin(GL_QUADS);   
            glVertex2f(x0,y1);   
            glVertex2f(x1,y1);   
            glVertex2f(x1,y0);   
            glVertex2f(x0,y0);   
       glEnd();   
       glPopMatrix();   
   }


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Воскресенье, 09 Декабря 2012, 20:17
ArchidoДата: Четверг, 06 Декабря 2012, 17:51 | Сообщение # 329 | Тема: Мои вопросы по С++
Сэнсэй
Сейчас нет на сайте
Надо делать через Rotate и Translate (две матрицы), а сами вершины должны быть фиксированы (размер спрайта только учитываем, он константен), с центром в (0, 0) например:
Code

float x0 = -size.x * 0.5f;   
float y0 = -size.y * 0.5f;   
float x1 = size.x * 0.5f;   
float y1 = size.y * 0.5f;

...

//перед отрисовкой
D3DXMATRIX mRotate, mTranslate, mResult;
D3DXMatrixIdentity(&mRotate);
D3DXMatrixIdentity(&mTranslate);

D3DXMatrixRotationZ(&mRotate, Angle);  //тут угол (в радианах)
D3DXMatrixTranslation(&mTranslate, -pos.x, -pos.y, 0); //тут позиция

D3DXMatrixMultiply(&mResult, &mRotate, &mTranslate); //перемножаем

pDirect3DDevice->SetTransform(D3DTS_WORLD, (D3DMATRIX*) &mResult);

...

pDirect3DDevice->SetFVF(D3DFVF_XYZ|D3DFVF_TEX1);   
DPUP(D3DPT_TRIANGLESTRIP, 2, Vert, sizeof(Vertex_Pos));


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Четверг, 06 Декабря 2012, 17:52
ArchidoДата: Четверг, 06 Декабря 2012, 11:58 | Сообщение # 330 | Тема: Мои вопросы по С++
Сэнсэй
Сейчас нет на сайте
Quote (kikas86)
У меня получилось вот так, но все же не работает(

Мм, наверное, если с математикой туго, то действительно проще и быстрее сделать через D3DX матрицы все это, ибо там вся эта математическая часть скрыта. Покажи код, где у тебя создается и рисуется спрайт, надо увидеть как ты 2д рисуешь.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Среда, 05 Декабря 2012, 18:34 | Сообщение # 331 | Тема: Мои вопросы по С++
Сэнсэй
Сейчас нет на сайте
Quote (kikas86)
Хм... Я проверил все правильно.

Ну, это более математически верное движение по прямой, а так та же фигня, вид сбоку. Если нужен угол будет, все равно арктангенс считать, так что...

Quote (kikas86)
как вершину крутить по кругу? То есть вращать объект. Пытался делать через матрицу, когда поворачиваю объект он - не знаю каким образом меняет свое движение... то есть не прямо например при x++, а вверх...


Вот вращение вершины вокруг заданной точки:
Code

NewX = X0 + (vX - X0) * cos(Angle) - (vY - Y0) * sin(Angle);
NewY = Y0 + (vY - Y0) * cos(Angle) + (vX - X0) * sin(Angle);

NewX, NewY - новые координаты вершины, vX, vY - изначальнные координаты вершины, X0, Y0 - координаты точки вокруг которой вращаем вершину, ну и Angle - угол (в радианах).

P.S. Стоит немного поучить математику, т.к. в графике без нее ой как туго придется.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Среда, 05 Декабря 2012, 18:36
ArchidoДата: Среда, 05 Декабря 2012, 17:22 | Сообщение # 332 | Тема: Защита процесса. Защита файла
Сэнсэй
Сейчас нет на сайте
Quote (fireday)
Почему то все равно при вызове с null выдает ошибку

Мм, я в бейсике полный нуль smile , но вообще вторым параметром идет указатель. Возможно нужно декларировать ф-цию как-нить так:
Code

Private Declare Function RtlSetProcessIsCritical Lib "ntdll.dll" (ByVal NewValue As Boolean, ByVal OldValue As Long, ByVal WinLogon As Boolean)


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Среда, 05 Декабря 2012, 17:22
ArchidoДата: Среда, 05 Декабря 2012, 17:07 | Сообщение # 333 | Тема: Мои вопросы по С++
Сэнсэй
Сейчас нет на сайте
Quote (kikas86)
Последний способ не подходит, т.к. если угол между точками будет больше или меньше 45 градусов, и не равный 90 и 180 то он по какой то координате закончит прибавление быстрее

А я про прямую сразу и не увидал smile , тогда через тригонометрию надо (и это наиболее используемый вариант, т.к. мы еще получаем угол поворота объекта). Пример:
Code

float PosX = 0, PosY = 0;
float TargetX = 400, TargetY = 400;
float Angle = 0;

...

const float Step = 0.05f;
Angle = atan2 (TargetY - PosY, TargetX - PosX);

if ( sqrt( sqr(TargetX - PosX) +sqr(TargetY - PosY) ) > Step * 2 ) {
PosX += cos (Angle) * Step;
PosY += sin (Angle) * Step;
}


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Среда, 05 Декабря 2012, 17:13
ArchidoДата: Среда, 05 Декабря 2012, 15:54 | Сообщение # 334 | Тема: Мои вопросы по С++
Сэнсэй
Сейчас нет на сайте
Quote (kikas86)
да 1 минус в условиях, будет работать не корректно.

Да, но можно доработать:

Code
const float Step = 5.0f;   

float OffsetX = TargetX - CurrentX;   
if (OffsetX > Step) OffsetX = Step;   
if (OffsetX < -Step) OffsetX = -Step;   

if ( (CurrentX > TargetX - 0.1f) && (CurrentX < TargetX + 0.1f) ) CurrentX += OffsetX; // тут по идее условие не обязательно, а на всякий случай, чтобы небыло "дребезжания" из-за неточности флоатов. Но его может и не быть.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Среда, 05 Декабря 2012, 15:54
ArchidoДата: Среда, 05 Декабря 2012, 15:40 | Сообщение # 335 | Тема: Мои вопросы по С++
Сэнсэй
Сейчас нет на сайте
Quote (kikas86)
Все спасибо большое! А есть какие либо другие способы? Просто интересно)

Ну можно через условия же:

Code

if (x < 200) x++;
if (x > 200) x--;

//и с "y" точно так же

Просто, грубо и нуждается в доработке (если это float или если нужно делать x += 2, например. Можно проверять, попадает ли X в определенный диапазон около 200 [195; 205) и если попадает, то не выполнять движение).


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Среда, 05 Декабря 2012, 15:25 | Сообщение # 336 | Тема: Мои вопросы по С++
Сэнсэй
Сейчас нет на сайте
Quote (kikas86)
хм... А оно слишком быстро не будет?)))

Дельту можно сделать равной 0.01 например или еще меньше smile . Лежит она в пределах от 0 до 1, и чем ближе к нулю - тем медленее smile


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Среда, 05 Декабря 2012, 15:26
ArchidoДата: Среда, 05 Декабря 2012, 15:24 | Сообщение # 337 | Тема: Нужен совет по сборке компьютера.
Сэнсэй
Сейчас нет на сайте
Quote (Serg1971)
Ну в споре рождается истина!

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

Quote (Serg1971)
Приятно же с разбирающимся человеком о железячках поговорить - я всегда за!

Взаимно, я тоже всегда за. Но о железках можно столько наговорить, что ТС потом не найдет, где он свой последний пост оставил biggrin

Quote (Serg1971)
И топикстартеру польза - многое для себя прояснит...

+ 1 , добро не пропадет smile


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Среда, 05 Декабря 2012, 15:27
ArchidoДата: Среда, 05 Декабря 2012, 15:15 | Сообщение # 338 | Тема: Мои вопросы по С++
Сэнсэй
Сейчас нет на сайте
Можно обычной линейной интерполяцией например. Как-то так:

Code

CurrentX += (TargetX - CurrentX) * Delta; //(0; 1); от дельты зависит плавность \ скорость
CurrentY += (TargetY - CurrentY) * Delta;


CurrentX, CurrentY - это текущее положение объекта ( [0; 0] например), TargetX, TargetY - координаты куда нужно переместиться. Но хоть интерполяция и линейная, но движение нелинейное smile , сначала оно более быстрое, потом в процессе замедляется.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Среда, 05 Декабря 2012, 14:59 | Сообщение # 339 | Тема: Нужен совет по сборке компьютера.
Сэнсэй
Сейчас нет на сайте
Quote (Serg1971)
Так вот, в играх не было никакой разницы - стоял ли самый простенький Intel Core i3, или навороченный и дорогой Intel Core i7

Вообще - это очень щекотливая тема, тут очень многое от игры зависит (как оно там внутри реализовано)... и у разных игр, как не странно - разные результаты smile . Наприме GTA IV очень и очень чувствительна к процессору, там сразу разницу видно. Не видно там, где все сильно упирается в GPU и процессор просто "отдыхает" smile и от игры к игре все это отличается.

Quote (Serg1971)
А с любой логикой все современные процессоры справляются даже не напрягаясь

Под логикой в данном случае я как раз имел в виду полный набор: механику, АИ, физику, часть рендера, etc. И часто все это неплохо так напрягает процессор smile , вон мона взять PhysX и одновременно несколько тыщ физ. объектов накидать и капец чему угодно cool , но лишняя мощь никому и никогда не помешает happy

Quote (Serg1971)
Но что-то Интел не торопиться лепить крутую встроенную графу, наверное видеокарт ещё много на складах, думают всё продать!

Видимо так smile . Кстати, насколько я помню Intel вроде когда-то собиралась выкатить нечто под именем "Larrabee", как аналог AMD Fusion, но что-то оно у них заглохло. Так и сидят на своем GMA / HD Graphics.

Наверное это уже все сплошной оффтоп пошел smile , по теме все равно во мнении сходимся, что AMD A10, без наличия видеокарты, лучше smile


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Среда, 05 Декабря 2012, 12:59 | Сообщение # 340 | Тема: Вопрос-Ответ (C++)
Сэнсэй
Сейчас нет на сайте
Тогда наследовать не стоит, ибо разные сущности все таки (sprite - чисто рендер объект, его при необходимости просто заменить можно, без проблем). Кстати, такой способ создания нового класса называется агрегацией

C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Среда, 05 Декабря 2012, 13:01
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг