Diskuze: XNA

C# .NET .NET (C# a Visual Basic) XNA American English version English version

Avatar
Merry
Člen
Avatar
Merry:

Ahoj, měl bych jeden problém se simulací gravitace. řešil jsem to tak ze mé postavu jsem neustále v metodě Update zvětšoval Y-souřadnici a když narazi na prekážku tak se jsem přestal zmenšovat Y-souradnici. Ale stejně se tam porad dokola volala. Tak jestli by byl někdo hodnej. Jinak druha otazka je jak se sem dava zdrojak :D omlouvám se za to že ho davam přimo sem :-)
if (PoziceMariaRec­t.Intersects(Pre­kazky.Prekazka­Rect))
{
PoziceMariaVect.Y = Prekazky.Prekaz­kaRect.Y - MarioTex.Height;
klesa = false;
}
else klesa = true;

if (klesa)
{
canTouch = false;
PoziceMariaVect.Y +=4;
}

if (PoziceMariaRec­t.Intersects(Pre­kazky.Zeme))
{
klesa = false;
PoziceMariaVect.Y = Prekazky.Zeme.Y - MarioTex.Height;
}

Odpovědět 9.12.2012 13:13
Jste dobří jen v tom, co vás baví.
Avatar
Merry
Člen
Avatar
Odpovídá na Merry
Merry:

Podstatě to funguje, jen mi tam ten Mario skáče pořad miniaturně, ale když zvýším gravitaci (přidávám větší čísla X-souřadnici, tak už skáče opravdu hodně.

Nahoru Odpovědět 9.12.2012 13:17
Jste dobří jen v tom, co vás baví.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Merry
Kit:

Kde máš započteno gravitační zrychlení?

Nahoru Odpovědět 9.12.2012 13:23
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Merry
Člen
Avatar
Merry:

Moje gravitace zatím spočívá pouze v odečítání Y-souřadnice o nějaké číslo :-)

Nahoru Odpovědět 9.12.2012 13:24
Jste dobří jen v tom, co vás baví.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Merry
Kit:

To je ta chyba. Gravitace působí stále. Když stojí, vertikální rychlost je nulová. Když se odrazí, udělíš mu nějakou vertikální rychlost směrem nahoru (asi záporné číslo) a v každém kroku ji budeš zvyšovat o hodnotu gravitace. Dráhu pak budeš navyšovat o aktuální rychlost. Pokud dopadne na zem, rychlost vynuluješ, ale pokud se má odrazit, obrátíš znaménko.

Nahoru Odpovědět  +1 9.12.2012 13:31
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Merry
Člen
Avatar
Merry:

Ted sem to nějak zkusil a pořad to dělá to stejné, Moc tomu nerozumím necehtěl bys naspat spis nějakej přiklad? Na fyziku mě moc neužije. Díky :-)

Nahoru Odpovědět 9.12.2012 13:37
Jste dobří jen v tom, co vás baví.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Merry
Kit:

Zkusím ti to popsat v pseudojazyku. Proměnné označím dle fyzikálních zvyklostí. Předpokládám, že bod [0,0] máš v levém horním rohu.

a=[0,10]    // gravitace
v=[3,-7]     // poběží vpravo 3 m/s a vyskočí rychlostí 7 m/s
s=[0,100]   // výchozí bod

cyklus {
   v+=a     // zvýším rychlost o zrychlení
   s+=v     // pozice se mi navýší o aktuální rychlost
   print s  // vypíšu si pozici
}

Výsledná číselná řada sice přesně neodpovídá fyzikálnímu modelu pro vrh šikmý, ale pokud zjemníš čas, tak to bude dostatečně přesné a pro hru vyhovující.

Nahoru Odpovědět  +1 9.12.2012 16:17
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Merry
David Čápka:

Moc se v tom nevyznám, je tam PoziceMariaVect.Y a PoziceMariaRect. Kód se vloží pomocí tlačítka Vložení zdrojového kódu. Problém je v tom, že ti spadne dolů a až potom dojde ke kolizi a objeví se zas nahoře, to se musí stát zasebou, aby to nebylo poznat.

Nahoru Odpovědět 10.12.2012 17:45
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
cyrilja
Člen
Avatar
cyrilja:

XNA game studio - zobrazení kombinace model a primitiv, výsledkem je trhavý pohyb (model - auto - mám v jedné komponentě, primitiv ve druhé - trojůhelník), ví někdo v čem je příčina a jak lze odstranit tuto vadu ?
Dík.

 
Nahoru Odpovědět 14.12.2012 9:29
Avatar
vodacek
Redaktor
Avatar
Odpovídá na cyrilja
vodacek:

zkus problém víc popsat, takhle je těžké (rozuměj nemožné) radit

 
Nahoru Odpovědět  +1 14.12.2012 10:20
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.