játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5448
FZoli:    4892
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2520

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2188
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1625
syam:    1491
Frissebbek | Korábbi postok
[1] [2] [3] [4] > 5 < [6] [7] [8] [9] [10] [15] [20] [25] [30] [35] [40] [45] [50] [55]
Pretender - Törzstag | 2498 hsz       Online status #162134   2011.09.01 04:33 GMT+1 óra  
Nekem sose voltak ilyen gondjaim. Mellesleg ez a keletkezik, eltűnik, kísértetiesen hasonlít egy részecskerendszerre, ahol pl. van egy max elemszám, készítesz egy tömböt, meg van egy változód, ami megmondja, hogy hány darab van. Aztán ha eltűnik 1, akkor a végére teszed, és csak azt az n darabot rajzolod az elején. De ez most mindegy...

Nem tudom, hogy egyáltalán elolvastad-e a linkelt cikket, pont az ilyen kezdőknek szól, mint te vagy, és szerintem nem érthetetlen. Nem is egy bonyolult osztály, viszont mindent kezel, amire neked most szükséged van.

A másik javaslat az az, hogy a metódusneveket és változóneveket angolul írd, mert ez a magyar elnevezés elég undorító (persze kinek hogy, szerintem az)

Olyan teszteket meg fölösleges csinálni, ami alapból nem fog előkerülni egy játék során.

   
Pixi - Tag | 206 hsz       Online status #162131   2011.09.01 01:05 GMT+1 óra  
Parallax: Az általad írt foreach kihagyásával is ugyanúgy hibába ütközik, függetlenül attól, ha szimplán csak a Clear-t használom, tök 8 neki mit csinálok, akkor is megfagy.

Az meg hogy miért töltöm be 60x másodpercenként, ez szimplán teszt jellegű, és pont az volna a lényege, hogy a példányok törlődnek, nem maradnak meg.

Amúgy képzelj el egy olyan effektust, hogy valamiből jön ki valami, de egy idő után kitörlődik, vagy ütközés során tűnik el, ilyesmi. És akkor futna a játék, és 1x csak egy idő után nekem megfagyna, hát nem volna valami kellemes.

De pont az a lényege hogy létrehozom sokszor, de rögtön törölni is akarom, csak itt valami nem stimmel. Vagy csak látszólag törlődik...

Ezt a hozzászólást Pixi módosította (2011.09.01 01:45 GMT+1 óra, ---)

   
Parallax - Tag | 581 hsz       Online status #162130   2011.09.01 00:38 GMT+1 óra  
Foreach közben nem tudsz törölni, persze, hogy kiakad.

Kód:
if (torles.Count > 0)
    ellensegek.Clear();



A dokumentációt a fejlesztőknek írták ám.

Közben megnéztem a kódot is. A fentin kívül még nekem nem világos mit csinálsz az Ellenseg osztály Update-ben. Esemény vezérelten kellene valahogy megoldani. Gondolom van valami esemény, amikor keletkeznek és megszűnnek, ahhoz kéne ezeket kötni, nem a billentyűzet lekezelése alá közvetlenül.

Ezt a hozzászólást Parallax módosította (2011.09.01 00:57 GMT+1 óra, ---)

   
Pixi - Tag | 206 hsz       Online status #162128   2011.08.31 23:29 GMT+1 óra  
Közben rájöttem, hogy nem is fontos a Konstruktornál létrehozni minden egyes elemnél textúrát, hanem elég csak a Game1-en belül a kirajzolásnál foreach-ben lekezeltnél átadni egyet, és úgy is működik.

Viszont most függetlenül attól hogyan csinálom (kipróbáltam így is, meg amúgy is), sikerült felfedeznem egy számomra eléggé misztikus hibát, pont azért misztikus, mert csak megfagy a program, kb. úgy, mintha én Debuggolásnál szüneteltetném kézzel, és zöld csíkkal jelölve azt a részt, ahol éppen tart/tartana. Pontosabban akkor, amikor a nem tudom hányadik példányt hozom létre, ennek ha jól megfigyeltem valami fix értéke lehet, mert az egy dolog hogy létrehozom, de ahogy halad a képernyőn jobbra (if (ell.pont.X > 500)) az ki is törlődik még jóval az előtt hogy megfagyna a program, vagyis nem azt csinálom, hogy a végtelenségig hozom létre a példányokat a képernyőn, és ott is marad, hanem mindig törlődik. Na ez amit most csináltam kb. 20 másodpercig működik, aztán ha létrehozná a nem tudom hányadik elemet, akkor egy ilyen kép fogad:

http://kepfeltoltes.hu/110901/Debug_error_www.kepfeltoltes.hu_.jpg

Forrás kód:

http://data.hu/get/4189115/Foreach_teszt5.zip

Mintha valami mégsem szabadulna fel, vagy nem törlődne ki, és túltelítődne, vagy nem is tudom ilyenkor ezt hogy szokás leírni, de másra nem tok gondolni. Pedig ennél a résznél megmondtam neki, hogy törölje:

Kód:
            if (torles.Count > 0)
                foreach (ellenseg ell in torles)
                    ellensegek.Remove(ell);


ui: sorry a sok kérdésért, de ilyennel most találkoztam először.

   
fpeti - Törzstag | 1291 hsz       Online status #161988   2011.08.30 19:59 GMT+1 óra  
Idézet
Parallax :
Egyszer kiadták a forrását valami 2D kommersz játéknak. Egy takonylabda szerűséggel kellett közlekedni. Annak is a kódja úgy nézett ki, mintha berobantottak volna, Pure C-ben írták 2010-es és már a saját fejlesztői se tudnak rajta kiigazodni szerintem.


off:
A Gish volt az, emlékszem a prog.hu-n szanaszéjjel röhögték a cuccot, teljesen jogosan.. (mondjuk jó sok pénzt hozott)
   
Parallax - Tag | 581 hsz       Online status #161952   2011.08.30 14:41 GMT+1 óra  
Gondolom olyan szép lehet, mint a duke nukem 3d kódja. Néhány ezer soros switch, meg ilyenek. Egyszer kiadták a forrását valami 2D kommersz játéknak. Egy takonylabda szerűséggel kellett közlekedni. Annak is a kódja úgy nézett ki, mintha berobantottak volna, Pure C-ben írták 2010-es és már a saját fejlesztői se tudnak rajta kiigazodni szerintem.

   
Asylum - Törzstag | 5448 hsz       Online status #161949   2011.08.30 14:34 GMT+1 óra  
Van az több év is
Ha látnátok a rotting realms kódját (tudjátok az a darkbasices fps kezdeményem), valszeg kidobnátok a taccsot. Söt lehet h be is rakom elrettentésnek (egyébként elkezdtem átjavitani, de mivel 5 forditásbol 6 szor elszáll a db inkább hagytam a francba...).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Parallax - Tag | 581 hsz       Online status #161948   2011.08.30 14:23 GMT+1 óra  
Pixi: Meg kell tanulni programozni nincs mese. Előbb egyszerűbb "console app" pogramokkal kell kezdeni, mert így az xna inkább hátráltat, mint segít, ha az alapok nincsenek meg.

Itt találtam a szintaxisról videó előadásokat (2. féléves órák), vagyis ez a hogyan-ra ad választ. A miért-re pedig talán itt megtalálod a választ jó sok gyakorlással karöltve.

Ahogy a címek is sugallják ez nm 2 nap, hanem legalább fél év gyakorlás, intenzív tanulást jelent.

   
Pretender - Törzstag | 2498 hsz       Online status #161947   2011.08.30 14:14 GMT+1 óra  
Uram isten... ez egyre furább. Ellenseg classon belül statikus lista saját magából?
A hibaüzenet meg elég egyértelmű, nullref, a game null... nem adod át sehol...

Látom tényleg fölöslegesen ír az ember tutorialokat, akiknek szól, azok el sem olvassák, proofnak még igaza is volt... x)

   
Pixi - Tag | 206 hsz       Online status #161942   2011.08.30 13:35 GMT+1 óra  
Most ez így mind szép és jó lenne, csak éppen nem hajlandó betölteni a textúrát, ha nem a ContentLoad-nál akarom betölteni, a következőt csináltam:

Kód:
public class ellenseg
    {
        static Game1 game;

        public Texture2D kep;
        public Vector2 pont;
        public Rectangle forras;
        public Rectangle rendeltetes;
        public int szamlalo;
        public bool kapcsolo;

        public static List<ellenseg> ellensegek = new List<ellenseg>();

        public ellenseg(Texture2D kep, Vector2 pont, Rectangle forras, Rectangle rendeltetes, int szamlalo, bool kapcsolo)
        {
            this.kep = kep;
            this.pont = pont;
            this.forras = forras;
            this.rendeltetes = rendeltetes;
            this.szamlalo = szamlalo;
            this.kapcsolo = kapcsolo;
        }

        public static void Update()
        {
            KeyboardState ks = Keyboard.GetState();

            ellensegek.Add(new ellenseg(game.Content.Load<Texture2D>("kep"), new Vector2(400, 100), new Rectangle((int)Vector2.UnitX.X, (int)Vector2.UnitY.Y, 60, 50), new Rectangle(0, 0, 60, 50), 0, false));
        }


Itt ugye próbálok hivatkozni rá a Game1-en keresztül, de ezt kapom az ellensegek.Add... sornál:

Kód:
System.NullReferenceException was unhandled
  Message="Object reference not set to an instance of an object."


Hogyan tudnék a LoadContent kihagyásával bárhonnét hivatkozni a Content fájlokra?

http://data.hu/get/4184563/Foreach_teszt4.zip

   
Ferke - Tag | 27 hsz       Online status #161940   2011.08.30 13:07 GMT+1 óra  
Idézet
Parallax :
Az App Hub-on lévő Skinned model sample nem jó kezdésnek?



De igen, pont erre gondoltam, fura hogy nem vettem észre...kössz

   
Kuz - Törzstag | 4455 hsz       Online status #161935   2011.08.30 12:51 GMT+1 óra  
Pixi: ha lesz még 5 másik "ellenseg" listád, akkor 7 foreached lesz? Most, hogy ez a megoldás valamnnyire működik, gondold ki, hogyan tudnál 7 listával...nem is, 1500 listával dolgozni.
A memóriám már nem a régi. És ráadásul még a memóriám sem a régi...
Az élet attól szép, hogy bármi megtörténhet. És attól szar, hogy meg is történik...
Ha az egyik szinkronúszó megfullad, mit csinál a többi???

   
Pretender - Törzstag | 2498 hsz       Online status #161932   2011.08.30 12:12 GMT+1 óra  
Ez nem XNA függő, nézz utána a keyframe-s bone animációnak.

   
Parallax - Tag | 581 hsz       Online status #161931   2011.08.30 12:11 GMT+1 óra  
Az App Hub-on lévő Skinned model sample nem jó kezdésnek?

   
Ferke - Tag | 27 hsz       Online status #161929   2011.08.30 11:36 GMT+1 óra  
Sziasztok!
Valaki eltudná nekem mondani nagyvonalakban, hogy hogyan zajlik XNA alatt egy 3D karakter animálása? Mármint van leanimált karakterem és az érdekel, hogy hogyan tudom azt XNA-ben pl.: mozgás szimulálására használi egy beállított gomb lenyomásakor. Maga a folyamatra vagyok kiváncsi hogy a karakter egy álló state-ből ha lenyomom mondjuk a W-gombot, akkor a meginduljon előre. (3D character movement).
TY

   
Pretender - Törzstag | 2498 hsz       Online status #161902   2011.08.30 08:03 GMT+1 óra  
Vagy csinálsz egy sprite osztályt, meg akkor mondjuk egy Ellenseg osztályt, ami a viselkedéseket tudja szimulálni (~ AI).
Azt viszont nem értem, hogy miért kell több Ellenseg lista... Ha csak egy van, akkor tök egyszerű.

Megjegyzem, new-olni nem szoktak render loopban (listát pláne nem)

   
Parallax - Tag | 581 hsz       Online status #161888   2011.08.30 01:03 GMT+1 óra  
new Rectangle azért az nem valami performancia megoldás így a render loop-ba izomból szerintem. Egyszerűbb és gyorsabb csak simán értékeket adni a tagoknak.

A második ötlet jónak jó, de alapvetően zagyvaság a progi ezért kell hozzá ilyen megoldást írnod. Megint az van, amit már írtam, az Ellenseg, vagy mi volt az osztály saját magát ellenőrizze, hogy ütközik e másokkal és kész.

   
Pixi - Tag | 206 hsz       Online status #161882   2011.08.30 00:29 GMT+1 óra  
El sem hiszem, hogy működik:

Kód:
            foreach (ellenseg ell in ellensegek)
            {
                ell.forras = new Rectangle((int)ell.pont.X, (int)ell.pont.Y, 60, 50);
            }

            foreach (ellenseg2 ell2 in ellensegek2)
            {
                ell2.forras = new Rectangle((int)ell2.pont.X, (int)ell2.pont.Y, 60, 50);
            }


Csak ennyi volt a gondja

Amúgy meg én sem suliban tanulom, kénytelen vok itthon magam, + net, + ez a fórum ami sokat segített rajtam eddig.

Volna még egy olyan kérdésem így mellékesen, bár nem problémáról van szó...hogy ezt a foreach-ot ti hogyan oldjátok meg, ha azt szeretnétek, hogy egyszerre több különböző List-et lekezeljetek 1 helyen? Mert annyit tudok mozgatásnál van egy hátránya. Ha a dupla foreach-ben szeretném mozgatni 1-es sebességgel az ellenségeket, akkor ő ebben az esetben sokkal gyorsabban mozgatná, ezért külön kellett válasszam a kettőt, és csak abban az esetben használni a duplát, amikor törölni akarom az elemet, mert olyankor nincs olyan hogy mozgatás, csak eltávolítás. Pontosabban erre gondolok:

Kód:
            foreach (ellenseg ell in ellensegek)
                foreach (ellenseg2 ell2 in ellensegek2)
                {

                    if (ell.forras.Intersects(ell2.forras))
                    {
                        torles.Add(ell);
                        torles2.Add(ell2);
                    }
                }


És pont azért, mert a két Lista elemei között kell kapcsolatot teremteni. Jó ez így, vagy van ennél egyszerűbb megoldása is ennek?

   
Parallax - Tag | 581 hsz       Online status #161877   2011.08.30 00:14 GMT+1 óra  
Meg lehet persze, nem hétpecsétes titkok ezek. Azzal van csak a gond, amikor valaki tényként jelent ki saját hülyeségeket és arra is lusta, hogy utána nézzen a dolgoknak. Nagy zsiványok szoktak csinálni ilyeneket. Lehet vicces, de sakkozni is úgy tanultam, hogy fogtam 1-2 jó könyvet és átnéztem a nyitásokat, végjátszmákat stb, nem csak úgy leültem aztán sitty-sutty.

   
Bukta - Tag | 308 hsz       Online status #161867   2011.08.29 23:31 GMT+1 óra  
sztem sokan nem suliba tanultak meg programozni, én bejártam a szoftverfejlesztő szakmára is,de kb addig tartott a dolog h mi az a függvény meg eljárás meg változó... én is magamtól tanultam meg mindent még a szakmám előtt teljesen 0áról és igen a 21 napos könyvből. Elolvastam az egész könyvet és még most is van h előveszem ha vmi nem jut eszembe. Elég jó könyv, igaz vannak benne elsőre nehéz részek, de az is kitisztul idővel. Szal sztem meg lehet belőle tanulni programozni csak akarni kell.
Jah meg közbe forumon is kérdeztem az elején többet -, de aztán mikor rájöttem, h mindenki elküld a googléra ahelyett, h 2 szót bepötyögjön - utána 1re kevesebbet. Nah ennyi
ArgumenException: A megadott DependencyObject nem ehhez a Freezable elemhez tartozó környezet. Paraméter neve: context
:oO Mi a???
   
Parallax - Tag | 581 hsz       Online status #161859   2011.08.29 22:58 GMT+1 óra  
Én nem jártam prog specifikus suliba, autodidakta tanultam a szakmát. Ettől függetlenül nem mentem/megyek fejjel a falnak, csak magamnak raktam/rakom össze a tananyagot.

   
Kuz - Törzstag | 4455 hsz       Online status #161853   2011.08.29 22:31 GMT+1 óra  
Csak egy kérdés: nem suliban tanulod a programozást?
A memóriám már nem a régi. És ráadásul még a memóriám sem a régi...
Az élet attól szép, hogy bármi megtörténhet. És attól szar, hogy meg is történik...
Ha az egyik szinkronúszó megfullad, mit csinál a többi???

   
Parallax - Tag | 581 hsz       Online status #161851   2011.08.29 22:27 GMT+1 óra  
Én úgy kezdtem, hogy Gyuszika megy fel le a megy metódussal és lépteti az x, y koordinátáját, jó öreg Angster OOP könyv. C#-ot is hasonlóan kellene, csak nem tudom ahhoz van e konkrétan programozást taglaló könyv. Ilyennel még nem találkoztam (kivéve a 21 naposat, de az nem teljesen 100-as), csak a .NET, meg a szintaxist taglalókkal. Ha nem is ismeri a nyelvi elemek használatát magától nem hiszem, hogy rájön.

   
Kuz - Törzstag | 4455 hsz       Online status #161843   2011.08.29 22:15 GMT+1 óra  
Amikor majd 400 ellenfelet kell berakni, akkor jön rá, hogy talán van erre más mód is. Nem baj ez, mindenki így kezdi.
A memóriám már nem a régi. És ráadásul még a memóriám sem a régi...
Az élet attól szép, hogy bármi megtörténhet. És attól szar, hogy meg is történik...
Ha az egyik szinkronúszó megfullad, mit csinál a többi???

   
Parallax - Tag | 581 hsz       Online status #161838   2011.08.29 22:08 GMT+1 óra  
Kicsit olyan javascript szerű a kód, vagyis inkább struktúrált programozás szemléletű. Az Ellenseg osztály adatokon kívül semmit nem tartalmaz, ennyi erővel egy asszociatív tömb is lehetne. De ha már osztály, akkor a műveletei miért a Game1-ben vannak, miért nem őbenne? Ha frissíteni kell a rectangle-t akkor frissítse ő saját magának.

   
Kuz - Törzstag | 4455 hsz       Online status #161833   2011.08.29 21:55 GMT+1 óra  
Igen, xna-ban a rectangle a model betöltésénél létrejön, de nem frissíti magát (értem ezalatt, hogy nem csak a pozíciót, de az elfordulást - ugye ez az orientáció? - sem).
A memóriám már nem a régi. És ráadásul még a memóriám sem a régi...
Az élet attól szép, hogy bármi megtörténhet. És attól szar, hogy meg is történik...
Ha az egyik szinkronúszó megfullad, mit csinál a többi???

   
Pretender - Törzstag | 2498 hsz       Online status #161809   2011.08.29 21:03 GMT+1 óra  
Hát a rectangle-t (forras) hol frissíted?
Megjegyzem, először érdemes lenne egy kis programozás és tervezési elméletet tanulni

   
Pixi - Tag | 206 hsz       Online status #161798   2011.08.29 20:35 GMT+1 óra  
Sziasztok.

Valahogyan sikerült a Konstruktort működésre bírnom, de van egy nagyon érthetetlen probléma az egészben, pontosan akkor ha ütköztetni akarom két külön List-nek az elemeit, amelyeket foreach-ba teszek. Egyszerűen olyankor azt csinálja, hogy kitörli, vagy pedig be sem tölti az elemeket amelyeket létrehozok, de még nem is történik meg az ütközés, csak elindul a játék, a betöltött elemek teljesen külön pozícióban vannak, szóval nem értem mért csinál úgy mintha ütközne, olyan mintha egy kupacban lenne a Vectorokhoz rendelt forrás négyzet X és Y pontja, másra nem tudok gondolni. Viszont ha úgy tesztelem a programot, hogy egymáshoz viszonyítom az ellenség1 és az ellenség2 két külön osztály elemeinek a pontjait, és pl. megadok rá egy olyan feltételt, hogyha az ellenség2 X pontja nagyobb mint az ellenség1 X pontja, akkor tökéletesen működik, és eltünteti csak azt a két elemet amelyek találkoztak ott egymással, de ha Intersects-el akarom csinálni már indulásnál üres képernyőt ad, de hibaüzenet nincs. Íme a kód mellékelve:

http://data.hu/get/4182609/Foreach_teszt3.zip

Kód:
    class ellenseg
    {
        public Texture2D kep;
        public Vector2 pont;
        public Rectangle forras;
        public Rectangle rendeltetes;
        public int szamlalo;
        public bool kapcsolo;

        public ellenseg(Texture2D kep, Vector2 pont, Rectangle forras, Rectangle rendeltetes, int szamlalo, bool kapcsolo)
        {
            this.kep = kep;
            this.pont = pont;
            this.forras = forras;
            this.rendeltetes = rendeltetes;
            this.szamlalo = szamlalo;
            this.kapcsolo = kapcsolo;
        }
    }


.......ugyanez csak ellenseg2 néven......

Game1-ben

        static List<ellenseg> ellensegek = new List<ellenseg>();
        static List<ellenseg2> ellensegek2 = new List<ellenseg2>();

Contentnál:

            ellensegek.Add(new ellenseg(Content.Load<Texture2D>("kep"), new Vector2(400, 100), new Rectangle((int)Vector2.UnitX.X, (int)Vector2.UnitY.Y, 60, 50), new Rectangle(0, 0, 60, 50), 0, false));
            ellensegek.Add(new ellenseg(Content.Load<Texture2D>("kep"), new Vector2(500, 200), new Rectangle((int)Vector2.UnitX.X, (int)Vector2.UnitY.Y, 60, 50), new Rectangle(0, 0, 60, 50), 0, false));
            ellensegek.Add(new ellenseg(Content.Load<Texture2D>("kep"), new Vector2(600, 300), new Rectangle((int)Vector2.UnitX.X, (int)Vector2.UnitY.Y, 60, 50), new Rectangle(0, 0, 60, 50), 0, false));

            ellensegek2.Add(new ellenseg2(Content.Load<Texture2D>("kep"), new Vector2(150, 100), new Rectangle((int)Vector2.UnitX.X, (int)Vector2.UnitY.Y, 60, 50), new Rectangle(60, 0, 70, 50), 0, false));
            ellensegek2.Add(new ellenseg2(Content.Load<Texture2D>("kep"), new Vector2(100, 200), new Rectangle((int)Vector2.UnitX.X, (int)Vector2.UnitY.Y, 60, 50), new Rectangle(60, 0, 70, 50), 0, false));
            ellensegek2.Add(new ellenseg2(Content.Load<Texture2D>("kep"), new Vector2(50, 300), new Rectangle((int)Vector2.UnitX.X, (int)Vector2.UnitY.Y, 60, 50), new Rectangle(60, 0, 70, 50), 0, false));

"(int)Vector2.UnitX.X, (int)Vector2.UnitY.Y"    Én valamiért ebben kételkedek, mivel itt szeretném a létrehozott Vectorhoz csatolni a hozzá tartozó forrás négyzetet, és lehetséges, hogy itt nem is az történik amire én gondolok, de máshogy nem tudtam megadni, szerintetek?

Update:

            List<ellenseg> torles = new List<ellenseg>();
            List<ellenseg2> torles2 = new List<ellenseg2>();

itt meg valamiért trükközni kellett ha törölni akarom, nem tudom miért, de most nem is ez a gond...

            foreach (ellenseg ell in ellensegek)
            {
                if (ks.IsKeyDown(Keys.Right))
                    ell.pont.X++;
                if (ks.IsKeyDown(Keys.Left))
                    ell.pont.X--;
            }

            foreach (ellenseg2 ell2 in ellensegek2)
            {
                if (ks.IsKeyDown(Keys.D))
                    ell2.pont.X++;
                if (ks.IsKeyDown(Keys.A))
                    ell2.pont.X--;
            }

//ezekkel mozgatom őket

            foreach (ellenseg ell in ellensegek)
                foreach (ellenseg2 ell2 in ellensegek2)
                {
                    if (ell2.pont.X > ell.pont.X)     //ÍGY MŰKÖDIK
                    {
                        torles.Add(ell);
                        torles2.Add(ell2);
                    }

                    /*if (ell.forras.Intersects(ell2.forras))  //EZ NEM AKAR MŰKÖDNI!
                    {
                        torles.Add(ell);
                        torles2.Add(ell2);
                    }*/
                }

            if (torles.Count > 0)
                foreach (ellenseg ell in torles)
                    ellensegek.Remove(ell);

            if (torles2.Count > 0)
                foreach (ellenseg2 ell2 in torles2)
                    ellensegek2.Remove(ell2);

//ezek viszont működnek ha a Vector pontokhoz való viszonyítás feltételével tesztelem.


A kérdés egyszerű, mit rontottam el?

   
Pixi - Tag | 206 hsz       Online status #155973   2011.07.10 01:05 GMT+1 óra  
Asszem sima Windows Media Video CBR módban kell kódolni és nem CBR (Two Pass)-ban úgy már nem akarja lefuttatni. Sony Vegas-ban szoktam ezt csinálni, de a sima Movie Maker alapból így kódolja Windows XP-n.

   
SANTANTICA - Tag | 19 hsz       Online status #155624   2011.07.06 08:28 GMT+1 óra  
a videó fileokkal mi baja az XNA-nak?
semmilyen formátumot nem akar befogadni már a csak ha a contentbe teszem is hiba jelzést ad futtatáskor.


na meg van, nem mindegy hogy hogyan van kódolva :/

Ezt a hozzászólást SANTANTICA módosította (2011.07.06 09:30 GMT+1 óra, ---)

   
Pretender - Törzstag | 2498 hsz       Online status #154965   2011.06.25 21:50 GMT+1 óra  
Megjegyzés: ha később csak a kirajzolás sorrendje lesz a fontos, van a game componentnek egy draworder property-je, vagy valami ilyesmi (persze lehet, h csak a drawable game componentnek van, nem emlékszek, régen xna-ztam már)

   
SANTANTICA - Tag | 19 hsz       Online status #154964   2011.06.25 21:33 GMT+1 óra  
jó, úgy néz ki működik, kezelhető a dolog, szerintem rendben lesz....
igazából a sorrendek a fontosak a komponenseknél, azzal kell kicsit manipulálni.

köszönöm.

Idézet
Pretender :
b+ én is ezt mondtam xD


   
Pretender - Törzstag | 2498 hsz       Online status #154961   2011.06.25 21:16 GMT+1 óra  
b+ én is ezt mondtam xD

   
SANTANTICA - Tag | 19 hsz       Online status #154960   2011.06.25 21:15 GMT+1 óra  
ok ezt kipróbálom

Idézet
Asylum :
Addig ne add hozzá a component listához amig le nem futott a main menü.


   
Asylum - Törzstag | 5448 hsz       Online status #154959   2011.06.25 21:09 GMT+1 óra  
Addig ne add hozzá a component listához amig le nem futott a main menü.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #154958   2011.06.25 21:07 GMT+1 óra  
Nézd, van 5db xna tutorial, ami ugyan nem game componenteket használ, de az annyira nem is fontos. Ott van egy primitív screen manager, ami megoldja ezeket a problémákat.

   
SANTANTICA - Tag | 19 hsz       Online status #154957   2011.06.25 20:57 GMT+1 óra  
de ügye a Game1 Initialize() részén debütál a Components.....

onnatól meg le is fut rögtön, még bármi rajzolás elött.

még ez sem lenne baj ha lenne valami load screen megoldás mindenek elött.....

   
Pretender - Törzstag | 2498 hsz       Online status #154956   2011.06.25 20:48 GMT+1 óra  
Hát attól függ, hogy mikor adod hozzá a componentet... az rögtön meg is hívja a Load-ját..
Kód:
- program indul
- főmenü hozzáadása
- új játék indítása
- játék komponensek hozzáadása

vagy nem tudom, hogy mire gondolsz...

   
SANTANTICA - Tag | 19 hsz       Online status #154954   2011.06.25 19:53 GMT+1 óra  
üdv, egy kérdés

bonya megcsinálni azt hogy egy külön GameComponent LoadContent()-je ne hajtódjon végre az elején? csak akkor mikor ezt én akarom?
vagy felül lehet bírálni a loadot?

konkrétan szeretném, ha elöbb egy címképernyő menüvel jelenne meg (ez is külön GameComponent) és a többi összes modell, textura stb csak akkor ha kezdődik egy új game (természetesen ezek is önálló classban)

szóval ne a fekete képernyő legyen másodpercekig mig mindent betölt, majd főmenü.....
remélem érthető, mit szeretnék

   
Pretender - Törzstag | 2498 hsz       Online status #153970   2011.06.09 20:11 GMT+1 óra  
Igen, az a másik lehetőség, csak ahhoz kell "map editor" szerintem, hogy kényelmes legyen felépíteni

   
Parallax - Tag | 581 hsz       Online status #153968   2011.06.09 20:07 GMT+1 óra  
Mukievil: A pálya le van tárolva, hogy van e ott fal vagy nincs a tömbben. Ezenfelül minden pályaszakasz egy négyzet ahol a fal vonala is ott lehet. Ütközésnél nem a konkrét textúrát nézed, hanem egy ún bounding map-ot. Fizikához általában mindig van egy közelítő alakzat, amivel szoktak ütközést vizsgálni. Nem feltétlenül pont olyan recés valami kell lehet ez egy vektorizált egyszerűsített valami is, hogy ne pazaroljuk az időt.

   
Mukievil - Tag | 26 hsz       Online status #153963   2011.06.09 19:43 GMT+1 óra  
Na nekem ez a layeres fekszik a legjobban! Akkor utána járok, ha nemsikerül akkor még lehet kérek egy kis segítséget!

Köszönöm!

   
Pretender - Törzstag | 2498 hsz       Online status #153961   2011.06.09 19:37 GMT+1 óra  
gyűjtheted őket mondjuk külön layerekbe (ha nem egy textúrába töltöd be az egész pályát), vagy tényleg fogsz egy másik textúrát (nézz utána a per-pixel collision detection-nek, nem tudom pontosan hogy működik) ahol definiálod, hogy mi az, amivel ütközhet a játékot (szóval ahol fal van, ott berajzolod, ahol nincs, ott üresen hagyod)
A második megoldásod lesz az, amire mi gondolunk. Először megnézed, hogy az adott négyzetben van-e, ha igen, akkor vizsgálod bonyolultabban. Gondolj csak bele, fölösleges egy per-pixel collision detection a pálya másik felén lévő fallal, ha még csak a közelében sincs

   
Mukievil - Tag | 26 hsz       Online status #153959   2011.06.09 19:20 GMT+1 óra  
Akkor lehet én nem értem teljesen!
Felosztom az egészet x*y négyzetre, és amelyikbe beleér a karakter azt megvizsgálom ? És minden egyes négyzetnek megadom, hogy átjárhato e vagy sem ?

vagy

Beleér egy négyzetbe, és azon belül elkezdem vizsgálni, hogy mikor ér a falhoz ? Na de egy képből akkor mitöl tudom, hogy az fal e vagy sem ?

   
Parallax - Tag | 581 hsz       Online status #153954   2011.06.09 18:45 GMT+1 óra  
Mukievil: Attól, hogy kilóg egy része miért ba a négyzetre osztásnál? x * y hálóra felosztod. Mindegyikben lesz egy darabka és azzal számolsz, ahogy Pretender is írta először rectangle-t, majd perpixelt. De csak ott ahol a játékos van a környezetében.

Ez már editor kérdés, hogy alapvetően tile-szerűen építi fel a pályát a rendszer és ott határozod meg hogy mi ütközzön egyátalán és hogyan.

Ezt a hozzászólást Parallax módosította (2011.06.09 18:51 GMT+1 óra, ---)

   
Mukievil - Tag | 26 hsz       Online status #153914   2011.06.09 13:55 GMT+1 óra  
Itt egy kép!

Ehhez hasonló, ezen belül mászkálna egy karakter, amire tudok húzni négyzetet az ütközés vizsgálathoz, az nem gond. Csak hát a képen belüli falakkal nem tudom hogy kéne foglalkozni. Ezért gondoltam a kétrétegű képbe, ahol a második rétegen lennének, a falak, fények, hasadékok jelezve. Tehát pl ha fekete azt tömörnek veszi, ha piros, oda letesz egy fényforrást, ha zöld, akkor meg mondjuk lyuknak feltételezem, és ezek alapján döntöm el hogy a karakter mit csináljon.

http://kepfeltoltes.hu/view/110609/teszt_1_www.kepfeltoltes.hu_.jpg

A segítséget előre is köszönöm!

   
Kuz - Törzstag | 4455 hsz       Online status #153913   2011.06.09 13:37 GMT+1 óra  
Esetleg, ha mutatsz egy minta falat/játékost, akkor könnyebben tudunk segíteni.
A memóriám már nem a régi. És ráadásul még a memóriám sem a régi...
Az élet attól szép, hogy bármi megtörténhet. És attól szar, hogy meg is történik...
Ha az egyik szinkronúszó megfullad, mit csinál a többi???

   
Pretender - Törzstag | 2498 hsz       Online status #153912   2011.06.09 13:29 GMT+1 óra  
Lehet perpixel ütközést is vizsgálni, csak nem tudom mennyire költséges. Először mindenképpen érdemes egy nagy rectangle-be befoglalni, azokra megvizsgálni először, és ha azzal ütközött, akkor érdemesebb komolyabban utánajárni.
Nézd meg a per pixel collision-t, nem tudom mennyire lehet lassú, nem sokat foglalkoztam 2d-vel

   
Mukievil - Tag | 26 hsz       Online status #153911   2011.06.09 13:12 GMT+1 óra  
Igen 2d felülnézet! A lényeg hogy van egy képem egy terepről, aminek a széle fal. Persze valamilyen kis négyzetekre le tudom bontani. De akkor levágom a képről a falrészt, négyzetekre bontom, és azt külön teszem be ? Csak akkor az elég bonyolult lesz egy idő után.

Még kezdő vagyok, úgyhogy lehet hülyeségeket írok.

   
Parallax - Tag | 581 hsz       Online status #153904   2011.06.09 12:28 GMT+1 óra  
Idézet
Mukievil :
Sziasztok!

Az lenne a kérdésem, hogy az ütközést hogy lehet a legjobban megoldani, egy bonyolult formájú alapterületnél, az oldalsó falakat.

A falakat külön képenként betenni, és akkor reactangle collision-t használni?

Olyat nem lehet csinálni, hogy két rétegű a kép, és mondjuk a második rétegen, feketével szinezem a falakat, és azt vizsgálom, hogy ha fekete, akkor nem lehet átmenni rajta ?

Vagy milyen módszerek vannak erre ?


Kis négyzetekre lehet közelíteni a páláyt nem? Vagy annál is recésebb? Ha lehet, akkor csak a mozgási irányban kell a játékos szomszédos négyzetét ellenőrizni, hogy ott van e akadály.

   
Frissebbek | Korábbi postok
[1] [2] [3] [4] > 5 < [6] [7] [8] [9] [10] [15] [20] [25] [30] [35] [40] [45] [50] [55]