forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   С# (http://forum.boolean.name/forumdisplay.php?f=128)
-   -   Вопросы по XNA. (http://forum.boolean.name/showthread.php?t=16854)

Nikich 25.06.2012 17:22

Ответ: Вопросы по XNA.
 
Не подходит. Неудобно генерировать, а если генерировать криво, мир будет шовным.

pax 25.06.2012 17:51

Ответ: Вопросы по XNA.
 
Цитата:

Сообщение от Nikich (Сообщение 231396)
Не подходит. Неудобно генерировать, а если генерировать криво, мир будет шовным.

Гугли pixel perfect rendering

PS и не генерируй криво ;)

Nikich 25.06.2012 19:58

Ответ: Вопросы по XNA.
 
То есть, как я понимаю, все равно придется разбивать все на более мелкие текстуры?
Просто я думал, есть какой-то другой выход. Вот в 3Д же процедурные миры цельными делают, насколько я знаю.

pax 25.06.2012 21:00

Ответ: Вопросы по XNA.
 
Цельными миры не делают, в том же майнкрафте чанки.

Nikich 25.06.2012 21:31

Ответ: Вопросы по XNA.
 
Погодите-ка. То есть получается, что от процедурного мира нету толка, раз и его нужно на части разбивать?

pax 25.06.2012 21:33

Ответ: Вопросы по XNA.
 
Почему нет? Процедурный мир - "бесконечный мир". Разве можно заранее "бесконечный мир" сделать? Плюс есть разнообразие всегда, при старте новой игры.

Nikich 25.06.2012 21:52

Ответ: Вопросы по XNA.
 
Ага, с бесконечным и случайным мирами понятно.
Но все же, разве нет хоть какой-нибудь выгоды в использовании процедурного мира по сравнению с обычным, если речь идет не о бесконечных и случайных мирах?
Я уверен в том, что по памяти процедурный мир выигрывает. Ведь фактически, нужно хранить лишь переменные, что влияют на генерацию ландашафта для того, чтобы ландшафт все время был одинаковый.
Но вряд ли это единственный плюс.

pax 26.06.2012 10:53

Ответ: Вопросы по XNA.
 
Посмотри на карты гугла или яндекса. Тоже все из квадратных ячеек ;)

pax 26.06.2012 12:02

Ответ: Вопросы по XNA.
 
Вообще тебе надо искать что-то типа gigatexture (megatexture) и стримминг.

Nikich 26.06.2012 12:58

Ответ: Вопросы по XNA.
 
Цитата:

Этот факт хорошо известен пользователям со стажем: загрузка игр, антивирусное сканирование, дефрагментация, форматирование и т. д. на современных (2009) компьютерах длится куда дольше, чем на компьютерах 10-летней давности.
ЯННП. Мы деградируем, что ли?

pax 26.06.2012 13:30

Ответ: Вопросы по XNA.
 
Объемы данных растут просто. Я начинал с жесткого диска в 200Мб, сейчас у меня в сумме 3,5Тб. Если посчитать, то в сравнение с 2Тб мой первый винт имел объем в 10000 раз меньше. А скорость его была в 0,7Мб. - всего примерно в 100-200 раз меньше.

Nikich 26.06.2012 14:11

Ответ: Вопросы по XNA.
 
Ясно.
Так, всё же с векторами какие-то проблемы.
Код:

{
            playerMoves = false;
            if (Keyboard.GetState().IsKeyDown(Keys.D))
            {
                playerSpeed.X += 5;
                playerMoves=true;
            }
            if (Keyboard.GetState().IsKeyDown(Keys.A))
            {
                playerSpeed.X -= 5;
                playerMoves = true;
            } 
            if (Keyboard.GetState().IsKeyDown(Keys.W))
            {
                playerSpeed.Y -= 5;
                playerMoves = true;
            } 
            if (Keyboard.GetState().IsKeyDown(Keys.S))
            {
            playerSpeed.Y += 5;
            playerMoves = true;
            }
            if (playerMoves == true)
            {
                playerSpeed.Normalize();
                playerSpeed *= playerAbsSpeed;
                playerPosition += playerSpeed;
            }
        }

Если нажать влево, а затем вправо, Player улетает непонятно куда( если мониторить playerPosition то улетает он в NaN,NaN ). Что я не так сделал?
З.Ы. знаю что дело можно исправить, если добавить
Код:

playerSpeed = Vector2.Zero;
в самое начало, но интересует из-за чего происходит непонятка с координатами без этой строчки.

pax 26.06.2012 14:48

Ответ: Вопросы по XNA.
 
playerSpeed.Normalize(); от нулевого вектора будет непонятно что, это же приводит вектор к единичной длине. А так ты сначала делаешь вектор по X = -5, а потом снова ноль и вот результат.

Nikich 26.06.2012 23:10

Ответ: Вопросы по XNA.
 
Можно ли сделать двумерный массив списков? Ну или одномерный.
Если да, то как?

pax 26.06.2012 23:37

Ответ: Вопросы по XNA.
 
Двухмерный:
PHP код:

public List<int>[,] myListsArray

Но не забудь каждую ячейку массива инициализировать новым списком.


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot