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

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

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

С# Средство разработки на платформе .Net

Ответ
 
Опции темы
Старый 27.11.2012, 21:12   #181
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Вопросы по XNA.

Ну а было сколько? если было намного больше покажи код.
Почему иногда некоторые переменные принимают значение Infinity?
деление на ноль или перебор.
(Offline)
 
Ответить с цитированием
Старый 27.11.2012, 22:53   #182
wppt
Нуждающийся
 
Регистрация: 25.11.2012
Сообщений: 83
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Вопросы по XNA.

Сообщение от Dream Посмотреть сообщение
Ну а было сколько? если было намного больше покажи код.

деление на ноль или перебор.
было 2.5k++

А разве при делении на ноль не должно бросаться исключение? А перебор это... ?
(Offline)
 
Ответить с цитированием
Старый 27.11.2012, 22:55   #183
wppt
Нуждающийся
 
Регистрация: 25.11.2012
Сообщений: 83
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Вопросы по XNA.

Код вот:

if (mymouse.LeftButton == ButtonState.Pressed)
    {
        try
        {
            texture2D.GetData<Color>(0, new Rectangle(mymouse.X, mymouse.Y, 1, 1), dat, 0, 1);
        }
        catch
        {
            //тут пока ничего
        }
    }
это все в draw

Как исключить бесконечность и в случае, если переменная ей равняется, присваивать переменной ноль? Есть ли встроенный тип для бесконечности?
(Offline)
 
Ответить с цитированием
Старый 27.11.2012, 23:21   #184
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Вопросы по XNA.

когда я говори код я имел ввиду хотя-бы класс Game твой.
Уласс целиком. ну или слишком много всего тогда конструктор,LoadContent,Initialize,Draw и Update.
ну и вообще если включать вертикальную синхронизацию - обычно больше 60 фпс никогда не будет. поэтому смысла думать об этом нету покачто

Если число с плавающей точкой(float) делить на 0 -исключение н е выбрасывается.

float.IsInfinity()
float.IsNaN() 
P.S. Не забывай использовать кнопку "Править" и редактируй свои сообщения - добавляя информацию, чтобы не было по несколько твоих постов подряд.
(Offline)
 
Ответить с цитированием
Старый 27.11.2012, 23:24   #185
wppt
Нуждающийся
 
Регистрация: 25.11.2012
Сообщений: 83
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Вопросы по XNA.

класс, в смысле, класс целиком, или конструктор?

Да кстати можешь подсказать, что быстрее будет?
У меня переменные есть, значения которых только положительные. Как будет быстрее - оформить для них свойства, или каждый раз при изменении проверять, меньше ли они нуля?
Или, может еще способ есть?
(Offline)
 
Ответить с цитированием
Старый 27.11.2012, 23:31   #186
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Вопросы по XNA.

Сообщение от wppt Посмотреть сообщение
класс, в смысле, класс целиком, или конструктор?

Да кстати можешь подсказать, что быстрее будет?
У меня переменные есть, значения которых только положительные. Как будет быстрее - оформить для них свойства, или каждый раз при изменении проверять, меньше ли они нуля?
Или, может еще способ есть?
Оформить для них свойство и в свойстве проверять значение

float PositiveValue
{
  
get{return _positiveValue;}
set{
_positiveValue=MathHelper.Clamp(value,0,float.MaxValue);
или
if(value<0)
  
value=0;
_positiveValue=value;

}

(Offline)
 
Ответить с цитированием
Старый 28.11.2012, 19:37   #187
wppt
Нуждающийся
 
Регистрация: 25.11.2012
Сообщений: 83
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Вопросы по XNA.

Спасибо! А как же все таки реализовать заливку? Это ж получается мне на вход метода нужно взять рендертаргет и рекурсивно менять цвета пикселей, пока цвет их равен старому? Не медленно ли будет? Попробую ка я сделать это, и посмотрю

что-то не работает:
void fill(int x, int y, Color newC, Color oldC,RenderTarget2D rend)
{ 
    Color[] datoa = new Color[1];
    rend.GetData<Color>(datoa,0,1);
    if (x >= 0 && y >= 0 && x < rend.Width && y < rend.Height && datoa[0] == oldC && datoa[0] != newC)
        {
            datoa[0] = newC;
            fill(x - 1, y, newC, oldC, rend);
            fill(x + 1, y, newC, oldC, rend);
            fill(x, y - 1, newC, oldC, rend);
            fill(x, y + 1, newC, oldC, rend);
        }
        else return;
}
This rectangle is to large or too small и т.д.
Или нужно через гетдата всю текстуру передавать?

Последний раз редактировалось wppt, 29.11.2012 в 16:41.
(Offline)
 
Ответить с цитированием
Старый 01.12.2012, 17:23   #188
wppt
Нуждающийся
 
Регистрация: 25.11.2012
Сообщений: 83
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Вопросы по XNA.

можете подсказать, возможно ли перегрузить унарный оператор +(не ++, именно +)?
(Offline)
 
Ответить с цитированием
Старый 01.12.2012, 17:55   #189
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Вопросы по XNA.

public static CType operator +(CType i1,CType i2)
{
return resultCType;
}
По поводу заливки - ты всегда берёшь только первый пиксель.

Color[] colors = new Color[1];
GetTexture().GetData(0,new Rectangle(x,y,1,1),colors01); 
(Offline)
 
Ответить с цитированием
Старый 01.12.2012, 20:37   #190
wppt
Нуждающийся
 
Регистрация: 25.11.2012
Сообщений: 83
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Вопросы по XNA.

только первый? А как надо?

Насчет перегрузки - как перегрузить унарный плюс?
(Offline)
 
Ответить с цитированием
Старый 02.12.2012, 02:27   #191
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Вопросы по XNA.

Сообщение от wppt Посмотреть сообщение
только первый? А как надо?

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


По поводу как надо - я дал же код "как над"
(Offline)
 
Ответить с цитированием
Старый 02.12.2012, 14:25   #192
wppt
Нуждающийся
 
Регистрация: 25.11.2012
Сообщений: 83
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Вопросы по XNA.

спасибо, попробую!
Что то программа зависает

А что же в сетдате писать?
(Offline)
 
Ответить с цитированием
Старый 03.12.2012, 04:57   #193
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Вопросы по XNA.

Сообщение от wppt Посмотреть сообщение
Что то программа зависает ?
ну,завивисает наверно на fill, ты же никаким пикселям не меняешь цвет, вот оно и бесконечно туда сюда ходит
(Offline)
 
Ответить с цитированием
Старый 03.12.2012, 16:18   #194
wppt
Нуждающийся
 
Регистрация: 25.11.2012
Сообщений: 83
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Вопросы по XNA.

Больше не зависает, ну а что же в сетдата писать?

Не знаю, у меня вообще бред получается:

//lload content            
            TextData = new Color[800 * 600];
            maprender.GetData<Color>(TextData);

//сам метод
        void fill(int x, int y, Color newC, Color oldC,RenderTarget2D rend)
        {
            Color[] colors = new Color[1];
            rend.GetData(0, new Rectangle(x, y, 1, 1), colors, 0, 1);
            if (x >= 0 && y >= 0 && x < rend.Width && y < rend.Height && colors[0] == oldC && colors[0] != newC)
            {
                TextData[y * rend.Width + x] = colors[0];
                rend.SetData<Color>(TextData);
                fill(x - 1, y, newC, oldC, rend);
                fill(x + 1, y, newC, oldC, rend);
                fill(x, y - 1, newC, oldC, rend);
                fill(x, y + 1, newC, oldC, rend);
            }
            else return;
        }
при нажатии кнопки мыши должен вызываться метод. Но экран окрашивается в cornflowerblue и все
(Offline)
 
Ответить с цитированием
Старый 03.12.2012, 18:38   #195
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Вопросы по XNA.

без всего проекта ничем не могу помочь
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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