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)

Dream 23.02.2013 15:15

Ответ: Вопросы по XNA.
 
По поводу ошибки, попробуй получит в переменную стрим, может он равен нулю, возможно формат фала не подходит.
По поповоду динамик типов, не уверен что такое вобще возможно. А выиграша уж точно не будет

wppt 23.02.2013 15:32

Ответ: Вопросы по XNA.
 
нет, стрим не null, проверил... неужели png не подходит?

стрим null только если помечать спрайт не как embeded resource... или если файл не найден... тогда бросает исключение

wppt 23.02.2013 15:42

Ответ: Вопросы по XNA.
 
кстати нашел еще код - результат его выполнения тот же:
Код:

        public static void imagetotexture(GraphicsDevice device, ref Texture2D texture, System.Drawing.Image image)
        {
            if (image == null)
                return;

            if (texture == null || texture.IsDisposed || texture.Width != image.Width || texture.Height !=
                image.Height || texture.Format != SurfaceFormat.Color)
            {
                if (texture != null && !texture.IsDisposed)
                    texture.Dispose();
                texture = new Texture2D(device, image.Width, image.Height, false, SurfaceFormat.Color);
            }
            else
            {
                for (int i = 0; i < 16; i++)
                    if (device.Textures[i] == texture)
                    {
                        device.Textures[i] = null;
                        break;
                    }
            }

            using (MemoryStream mstream = new MemoryStream())
            {
                image.Save(mstream, System.Drawing.Imaging.ImageFormat.Png);
                mstream.Seek(0, SeekOrigin.Begin);
                texture = Texture2D.FromStream(device, mstream, image.Width, image.Height, false);
            }
        }


wppt 05.03.2013 17:13

Ответ: Вопросы по XNA.
 
Здравствуйте, нужна помощь. Тема не относится именно к хна, просто тут я надеюсь скорее получить ответ.
Верно ли следующее уравнение точки p(см. рисунок) при любом положении прямой l и угле alpha?

p.y>(a.x/a.y)*p.x+a.x;
p.y<(a.x/a.y)*p.x+a.x+|L|*sec(arccos(v*L/(|v|*|L|)))

и зависит ли оно от выбора точки a как начала или конца отрезка l?


естественно, начало координат - верхний левый угол

pax 05.03.2013 17:24

Ответ: Вопросы по XNA.
 
p.y = 1
p.x = 1
a.x = 10
a.y = 1

1 > (10/1)*1 + 10
1 > 20

wppt 05.03.2013 17:44

Ответ: Вопросы по XNA.
 
так не работает все-таки? А как надо?

wppt 05.03.2013 17:46

Ответ: Вопросы по XNA.
 
если неравенство неверно, значит, точка там не лежит, да?

pax 05.03.2013 17:46

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

Сообщение от wppt (Сообщение 254243)
А как надо?

:dontknow:

wppt 09.03.2013 15:13

Ответ: Вопросы по XNA.
 
решил позаморачиваться со своим физ. движком... наткнулся на хорошую статью: http://tt.pstu.ru/mnp09/mnp09/s5/bazin.htm
кто может прокомментировать сл код:

Код:

procedure Contact_Solve(c1, c2 : PBody; c : PContact);
var
  v1, v2, vr, t, j: TVector2;
  vrn, jn, jnOld, bounce, e, u, mass_sum,
  r1cn, r2cn, vrt, kn, nMass, jtMax, jt, jtOld,
  r1ct, r2ct, kt, tMass, jnAcc, jtAcc : TReal;
begin
  e := c1^.e*c2^.e;    // вычисляем общий коэффициент трения поверхностей
  u := c1^.f*c2^.f;    // и общий коэффициент эластичности
  {расчет общих коэффициентов может быть другой, например, средний арифметический: (c1^.f+c2^.f)/2.0}
  jtAcc := 0.0;
  jnAcc := 0.0;
  v1  := V2Add(c1^.velocity, V2Mul(V2Perp(c^.r1), c1^.w));
  v2  := V2Add(c2^.velocity, V2Mul(V2Perp(c^.r2), c2^.w));
  vr  := V2Sub(v2, v1);
  vrn := V2Dot(vr, c^.n);
  bounce := V2Dot(c^.n, V2Sub(v2, v1))*e;
  mass_sum := 1/c1^.m + 1/c2^.m;
  r1cn := V2PerpDot(c^.r1, c^.n);
  r2cn := V2PerpDot(c^.r2, c^.n);
  kn := mass_sum + r1cn*r1cn/c1^.i + r2cn*r2cn/c2^.i;
  nMass := 1.0/kn;
  jn := -(bounce + vrn)*nMass;
  jnOld := jnAcc;
  jnAcc := max(jnOld + jn, 0.0);
  jn := jnAcc - jnOld;
  t := V2Perp(c^.n);
  vrt := V2Dot(vr, t);
  t := V2Perp(c^.n);
  r1ct := V2PerpDot(c^.r1, t);
  r2ct := V2PerpDot(c^.r2, t);
  kt := mass_sum + r1ct*r1ct/c1^.i + r2ct*r2ct/c2^.i;
  tMass := 1.0/kt;
  // трение
  jtMax := u*jnAcc;
  jt := -vrt*tMass;
  jtOld := jtAcc;
  jtAcc := min(max(jtOld + jt, -jtMax), jtMax);
  jt := jtAcc - jtOld;
  j := V2Add(V2Mul(c^.n, jn), V2Mul(t, jt));
    // накладываем импульсы
  Body_ApplyImpulse(c1,V2Negative(j),c^.r1);
  Body_ApplyImpulse(c2,j,c^.r2);
end;


wppt 09.03.2013 18:16

Ответ: Вопросы по XNA.
 
кто же поможет?

pax 09.03.2013 20:12

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

wppt 10.03.2013 19:21

Ответ: Вопросы по XNA.
 
тут знание паскаля не требуется... нужна помощь именно по этой функции...

wppt 03.04.2013 11:23

Ответ: Вопросы по XNA.
 
как выводить множество маленьких спрайтов? Допустим, у меня есть прямоугольная карта 100*100, и ее надо всю вывести на экран, у каждого элемента массива-карты своя текстура, вырезаемая из большой текстуры; также у каждого элемента свои собственные параметры могут быть. Проблема в том, что при многократном вызове spritebatch.draw фпс сильно падает, даже если общий размер текстуры, составленной из всех текстур всех клеток много меньше какой-нибудь другой одной достаточно большой текстуры... ах да и еще текстура самой клетки да и она сама - могут меняться...


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

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