Результаты поиска
| |
Archido | Дата: Воскресенье, 29 Апреля 2012, 07:35 | Сообщение # 681 | Тема: XNA столкновения (3D) |
Сэнсэй
Сейчас нет на сайте
| Ну, столкновения сферы со сферой тебе мало чем помогут, т.к. едва ли много объектов, которые можно достаточно точно описать сферой. Обычно делается проверка столкновения сферы (игрок) с треугольником (карта). В целом суть таких столкновений заключается в том, чтобы сначала определить сам факт столкновения и самую близкую точку, в которой это произошло. Далее определяют "глубину проникновения" и нормаль в той самой точке, после остается "отодвинуть" сферу по направлению нормали на величину "проникновения". В результате это выглядит так, как будто ты упираешься в стену В целом там нет ничего сложного, ну немного математики... . Поэтому если нет желания с этим возиться, то проще взять физ. движок.
Added: Ммм, для простоты можно и приведенный код использовать: Code if (bunker.Sphere.Intersects(player.Sphere)) Чтобы не "застревать" можно по идее делать итерацию движения игрока и запоминать предыдущее его положение. Далее проверять с помощью этого кода факт столкновения и если он имеет место быть, то перемещать игрока в его предыдущее положение. Таким образом будет происходить некое столкновение, но вдоль стены "ездить" все равно не выйдет таким способом
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Сообщение отредактировал Archido - Воскресенье, 29 Апреля 2012, 07:55 |
|
| |
Archido | Дата: Суббота, 28 Апреля 2012, 05:48 | Сообщение # 682 | Тема: Что посмотреть подскажите :С |
Сэнсэй
Сейчас нет на сайте
| Мм, думаю автора темы это уже не интересует, но вдруг кто чего и не видел Quote (psihrus) научная фантастика/антиутопия/пост апокалипсис/космическая фантастика "12 Обезъян", "Планета K-Pax", "Эквилибриум", "Я, робот", "Пандорум", "Остров". Это на вскидку
Quote (Jericho) Исходный код - классный фильм +1 . Есть еще отчасти похожий - "Дежавю". Тоже годный.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Суббота, 28 Апреля 2012, 05:40 | Сообщение # 683 | Тема: OpenGL или DirectX |
Сэнсэй
Сейчас нет на сайте
| Quote (Car-HD-Game) С другой стороны на OpenGL больше возможностей, тут ты менее ограничен,аля более трудное изучение, DirectX на мой взгляд проще и доступнее. Не согласный я
DX всегда считался сложнее в изучении чем OpenGL, а с приходом DX11 так тем более. В плане возможностей они примерно равны, как и в плане производительности - все только от радиуса кривизны рук зависит
Quote (BASS) ИМХО, для DirectX "ад зависимостей" - явление реальное. В отношении OpenGL с этим проще: одна dll - и вперёд. Я думаю слышали о расширениях OpenGL? Которые различны (могут быть, могут не быть) от железа к железу, + так называемые "vendоr-specific" расширения, которые есть на NV картах и нет на AMD и наоборот. У AMD до сих пор переодически встречаются баги в их драйверах, что приводит к падению приложения при использовании определенного расширения. Это все добавляет головной боли при разработке. DX таких проблем не имеет. Поэтому и используется в мейнстриме как основной GAPI, несмотря на кроссплатформенность OpenGL. Аудитория геймеров Linux/Mac довольно таки мала по сравнению с PC, поэтому с этим мирятся.
P.S. А вот для обучения абсолютно все равно, что выбирать
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Пятница, 27 Апреля 2012, 18:07 | Сообщение # 684 | Тема: Вопросы по DirectX |
Сэнсэй
Сейчас нет на сайте
| Lord_Zeon Можно соответствующим способом подгонять текстурные координаты под нужный участок на текстуре. Т.е. у тебя необходимое изображение 24х24 например, а размер текстуры 32х32. Остальное ненужное пространство залито, скажем, белым цветом. В текс. координатах у тебя там будет не 1.0f, а скажем 0.76f (24 / 32 + epsilon). Но на мелких изображения все равно могут быть глюки небольшие.
Поэтому если тебе нужна попиксельная точность - то можно добавить в текстурку альфаканал (tga например), соответственно для изображения альфа равна 1, а для белого участка = 0. Далее перед отрисовкой включаешь альфа тест и он обрежет этот прозрачный участок.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Пятница, 27 Апреля 2012, 16:34 | Сообщение # 685 | Тема: Вопросы по DirectX |
Сэнсэй
Сейчас нет на сайте
| Lord_Zeon Текстура должна быть размера степени двойки.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Пятница, 27 Апреля 2012, 15:48 | Сообщение # 686 | Тема: Пару логических задач для новичков) |
Сэнсэй
Сейчас нет на сайте
| Quote (Тритон) Под твоим спойлером как раз иллюстрация того, то сигнатура берётся по номинальному классу. И чо?
Added: Всякие "сигнатуры", "номинальные классы", тема то для новичков , так, что давай на пальцах
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Сообщение отредактировал Archido - Пятница, 27 Апреля 2012, 15:52 |
|
| |
Archido | Дата: Пятница, 27 Апреля 2012, 15:45 | Сообщение # 687 | Тема: Вопросы по DirectX |
Сэнсэй
Сейчас нет на сайте
| А я что-то не понял в чем проблема
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| | |
Archido | Дата: Пятница, 27 Апреля 2012, 12:08 | Сообщение # 689 | Тема: Пару логических задач для новичков) |
Сэнсэй
Сейчас нет на сайте
| warzes Советую для начала скомпилить мой код, посмотреть на результат и удивиться. Потом пройтись отладчиком и посмотреть - функция какого класса вызывается и с каким параметром. Далее подумать. После этих процедур уже можно и поумничать
P.S. Результатом там будет 11, а не 10.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Пятница, 27 Апреля 2012, 09:54 | Сообщение # 690 | Тема: Пару логических задач для новичков) |
Сэнсэй
Сейчас нет на сайте
| Тритон Ох, ты меня вообще похоже не слышишь... Как же это сложно.
Quote (Тритон) При этом ты затрёшь нолями ещё 3 байта. Если они и были по нолям, то всё в порядке. А если нет? Code void Replace (int &arg) { char &x = *((char*)&arg + 0); x = 'W'; }
char str[] = "<+>"; Replace( (int&) str[1]); std::cout << str; //str = "<W>"; И где я их затер? Можешь даже в отладчике посмотреть последний байт параметра arg, он каким был - таким и остался.
О чем ты вообще пишешь? Прочитай мой предыдущий пост внимательно, хотя... придется наверное повторить на пальцах: Ты утверждал: "приведение к ссылке на другой размер вообще не возможно". На, что я тебе привел работающий пример, который делает каст сылки одного типа на другой, при этом, выполняя все тот же своп 2-х символов (а не 8-ми) без каких либо последствий. Точка. Дальнейшее бесмысленное обсуждение никакого значения не имеет. Вопрос закрыт.
vasua99 Давай еще задач для "новичков" , а то мы бестолково топчимся на одном месте
warzes Quote (warzes) Первая задача вообще вредная и до сих пор не дан ответ почему так Давно уже ответили . Правильнее вообще так: Code #include <cstdio> class A { public: virtual void p(int n=10) { printf("%d",n); } }; class B : public A { public: virtual void p(int n=20) { printf("%d",n+1); } }; int main() { A* my = new B(); my->p(); delete my; return 0; }
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Сообщение отредактировал Archido - Пятница, 27 Апреля 2012, 10:10 |
|
| |
Archido | Дата: Пятница, 27 Апреля 2012, 08:13 | Сообщение # 691 | Тема: Пару логических задач для новичков) |
Сэнсэй
Сейчас нет на сайте
| Тритон Хех, ты вообще пишешь немного о чем-то своем , при чем не только в этой теме...
Изначально вопрос состоял в том, что приведение ссылок вообще невозможно. При чем это были твои слова. Речи небыло о том, хорошо это или плохо. Итак приведение в С++ возможно с чего угодно и на что угодно. Как оно там работает, хорошо это или плохо - это уже отдельная песня. Скажу только, что если понимать как оно работает - то никаких проблем с использованием таких вещей не будет. Целесообразность - отдельный вопрос, который тут не обсуждается.
Quote (Тритон) Хорошо, допустим строка у тебя длинная и за границу ты не выйдешь Если и выйду, то ничего не будет абсолютно. Инфа 100%
Quote (Тритон) Но функция то значение отдельного байта всё равно уже не способна ни прочитать, ни записать Все можно: Code void swap(int &a, int &b) { char &x = *((char*)&a + 1); x = '7'; }
Quote (Тритон) аргументы у тебя - байты Аргументы - всегда байты
Quote (Тритон) Уж если свопишь подстроки, то выглядеть это должно иначе Я не своплю подстроки, я своплю два символа. Ты до сих пор не понимаешь как работает это конструкция: "a ^= (b ^= (a ^= b & 0xFF) & 0xFF) & 0xFF". Говорить больше не о чем.
Quote (Тритон) нельзя хитрить с регистрами Где и кто хитрит с регистрами? Или кто собирается это делать?
Все остальное, что ты написал - "поучения", как это таки плохо и как нужно это делать правильно. Благодарю бро, я терь просветленный.
P.S. У тебя большая каша в голове и ты "выкладываешь" эту кашу фактически в каждой обсуждаемой теме, при этом не очень хорошо разбираясь, собственно, в вопросах этой темы. Стоит чуток об этом подумать.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Четверг, 26 Апреля 2012, 17:10 | Сообщение # 692 | Тема: Как узнать, на какой строке ошибка? |
Сэнсэй
Сейчас нет на сайте
| Quote (Тритон) Во-первых у меня нет сотни лишних килобаксов за лицензию Microsoft_Visual_Studio_Express
Quote (Тритон) а этот проект должен быть полностью на легальном софте Коммерческое использование Visual Studio Express Edition
Quote (Тритон) А во-вторых студия меня уже в конец задолбала
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Четверг, 26 Апреля 2012, 17:04 | Сообщение # 693 | Тема: OpenGL или DirectX |
Сэнсэй
Сейчас нет на сайте
| Такое уже тут было. Поэтому в кратце: под винду DirectX, под mobile сегмент - OpenGL ES . Инфа 100%
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Четверг, 26 Апреля 2012, 16:59 | Сообщение # 694 | Тема: Пару логических задач для новичков) |
Сэнсэй
Сейчас нет на сайте
| Quote (Тритон) Ты их воткнул в вызов. В явном виде. Но не привёл, а испортил. Символы переставятся сразу четвёрками, если за массивом есть другое данное, то полбеды, ты просто его запоганишь, а если там валяется функция, или память за массивом вообще не доступна приладе, то получишь крах с егогомессагой из системы. Привести же на другой размер нельзя. Значение можно, так как при этом создаётся новое значение уже другого данного, но в случае ссылки это должно быть то же самое данное. . А вообще, чувак, ты мне нравишься, пиши еще!
Еще раз спрошу - ты смотрел результат выполнения кода? Вот тебе такое: Code void mycool_swap(int &a, int &b) { a ^= (b ^= (a ^= b & 0xFF) & 0xFF) & 0xFF; }
...
char str[] = "Hello bro"; mycool_swap((int&)str[0], (int&)str[4]); std::cout << str; Какой результат получается? Где и что тут портится? Жду новых историй
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Сообщение отредактировал Archido - Четверг, 26 Апреля 2012, 17:00 |
|
| |
Archido | Дата: Четверг, 26 Апреля 2012, 16:40 | Сообщение # 695 | Тема: Пару логических задач для новичков) |
Сэнсэй
Сейчас нет на сайте
| Омг, скока я нового узнал то седня, особенно про "приводящие конструкторы" . А в своем примере ты ерунду написал.
Ты мне скажи - ты мой код пробовал запускать? Видел результат? Можешь объяснить почему оно так работает? (или будешь говорить - что не работает? ) . И еще раз повторюсь: в теле функции swap никаких приведений типов нет.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Сообщение отредактировал Archido - Четверг, 26 Апреля 2012, 16:40 |
|
| |
Archido | Дата: Четверг, 26 Апреля 2012, 15:54 | Сообщение # 696 | Тема: Как узнать, на какой строке ошибка? |
Сэнсэй
Сейчас нет на сайте
| Могу только посоветовать использовать MSVS (наверное кэп, но что поделать ), под виндой писать на чем-то кроме студии смысла не имеет. Инфа 100%
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Четверг, 26 Апреля 2012, 15:49 | Сообщение # 697 | Тема: Пару логических задач для новичков) |
Сэнсэй
Сейчас нет на сайте
| Тритон
Какая еще вторая функция? Так не пробовал сделать? Code void mycool_swap(int &a, int &b) { a ^= (b ^= (a ^= b & 0xFF) & 0xFF) & 0xFF; }
...
char str[] = "Hello"; mycool_swap((int&)str[0], (int&)str[4]); В функцию передается два 4-байтных Int'a, а не char'a и при чем именно по сылке - раз символы в массиве все таки меняются . В теле функции swap никаких приведений типов нет, так, что думай почему оно так
Quote (Тритон) Читай стандарт, описание диалекта и все подключаемые головы >> подключаемые головы
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Сообщение отредактировал Archido - Четверг, 26 Апреля 2012, 15:51 |
|
| |
Archido | Дата: Среда, 25 Апреля 2012, 15:40 | Сообщение # 698 | Тема: casm |
Сэнсэй
Сейчас нет на сайте
| Quote (reyzor) Ни чего что он как-бэ по синтаксису и по реализации другой будет ? Ну, по спеке правда и не скажешь . MASM с макро и есть как бе С + Asm, который остается при этом низкоуровневым и шустро исполняется. Так, что нибудь конкретное то будет по отличиям от всего остального? Идея писать такое, конечно, весьма похвальна, но все таки нужно с умом к таким вещам подходить
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Среда, 25 Апреля 2012, 15:29 | Сообщение # 699 | Тема: Пару логических задач для новичков) |
Сэнсэй
Сейчас нет на сайте
| Омг, скока букаф
Quote (Тритон) Кроме того, приведение к ссылке на другой размер вообще не возможно.
Тритон, Проверяй:
Code void swap(int &a, int &b) { a ^= (b ^= (a ^= b & 0xFF) & 0xFF) & 0xFF; }
...
char str[] = "Hello"; swap((int&)str[0], (int&)str[4]);
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Сообщение отредактировал Archido - Среда, 25 Апреля 2012, 15:30 |
|
| |
Archido | Дата: Среда, 25 Апреля 2012, 09:07 | Сообщение # 700 | Тема: casm |
Сэнсэй
Сейчас нет на сайте
| Quote (reyzor) И что с того что они есть ? Ну вот те пример. Посмотри на код и подумай, чем твоя реализация будет лучше.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
|