Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Mini
Člen
Avatar
Mini:9.12.2012 13:13

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
Mini
Člen
Avatar
Odpovídá na Mini
Mini:9.12.2012 13:17

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
Tvůrce
Avatar
Odpovídá na Mini
Kit:9.12.2012 13:23

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
Mini
Člen
Avatar
Mini:9.12.2012 13:24

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
Tvůrce
Avatar
Odpovídá na Mini
Kit:9.12.2012 13:31

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
9.12.2012 13:31
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Mini
Člen
Avatar
Mini:9.12.2012 13:37

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
Tvůrce
Avatar
Odpovídá na Mini
Kit:9.12.2012 16:17

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
9.12.2012 16:17
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Mini
David Hartinger:10.12.2012 17:45

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
You are the greatest project you will ever work on.
Avatar
cyrilja
Člen
Avatar
cyrilja:14.12.2012 9:29

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
Tvůrce
Avatar
Odpovídá na cyrilja
vodacek:14.12.2012 10:20

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

 
Nahoru Odpovědět
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.