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

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2197
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1654
syam:    1491
Korábbi postok
> 1 < [2] [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] [25] [30] [35] [40] [45] [50] [55]
Kuz - Törzstag | 4455 hsz       Online status #149703   2011.03.26 17:56 GMT+1 óra  
Tehát akkor az átugrás a gond? Akkor bizony nem elég azt nézni, hogy a következő pillanatban mi a helyzetük, hanem a köztes pillanatokat is nézni kell, kvázi valamiféle interpolációt kell rá csinálni.
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???

   
Pixi - Tag | 206 hsz       Online status #149702   2011.03.26 17:52 GMT+1 óra  
2D...A mozgás mind az Update-ben van frissítve, hisz másképp nem is mozogna semmi, az egyenlő volna egy Pause móddal. Képzeld el, hogy van neked két 1 pixel vastagságú vonalad. Az egyik áll, a másikat mozgatom. Ha mindig csak 1 pixelnyit mozog, akkor sikeresen ütközne a másikkal, de ez egy lassú sebesség azért lássuk be. Mindenesetre float-ot használok a mozgásra, mert ott sokkal finomabban meg lehet ezt adni...De most ha én 5.0f -al mozgatom azt a vékony tárgyat a másik vékony felé, akkor az simán átugraná azt, nem is detektálná az ütközését. Ha most nagyon nem érthető miről beszélek, akkor megmutathatom egy sima próba projekttel...

Amúgy meg sima Rectangle - Rentangle Intersects-re gondolok...

   
Kuz - Törzstag | 4455 hsz       Online status #149701   2011.03.26 17:47 GMT+1 óra  
Hol kezeled az ütközést? Mert ilyet az update-ben szokás, a draw ugye "csak" rajzoláshoz való. Továbbá 2d/3d? Lehet nem is a logikával van gond, csak a megvalósítás sántít valahol. Pl a modelek boundingbox-át teljesen máshogy kell kezelni, mint az ember várná.
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???

   
Pixi - Tag | 206 hsz       Online status #149700   2011.03.26 17:41 GMT+1 óra  
Lehet hogy már esett róla szó, de most már kénytelen vagyok megkérdezni, hogy: Ha pl. ütköztetni akarok 2 elemet...és az amelyiket irányítom valami nagyobb sebességgel mozog...akkor az ütközést mért csak később érzékeli? Vagyis belemászik valamennyit a másik testbe. És ez főleg a platform játékoknál nem valami jó Mit kell csinálnom ahhoz, hogy akármilyen sebességgel is mozgatom a tárgyakat, rögtön abban a pillanatban detektáljon ütközést (és ekkor meg kell állnia), amikor a másik tárgy széléhez ért? És nem pedig úgy, hogy belemászik...minél gyorsabb sebességgel mozog, annál jobban belemászik a testbe.

És itt gondolom nem a vertikális szinkronizáció bekapcsolása segít, sem az, hogy lekorlátozom manuálisan az sebességet. Mert eddig ezekkel próbálkoztam, de semmi hatással sem volt rá. Game1 Update-hez írtam ezeket:

IsFixedTimeStep = true;
graphics.SynchronizeWithVerticalRetrace = true;
this.TargetElapsedTime = new TimeSpan(0, 0, 0, 0, 15);

Persze variáltam, hogy csak egyiket kapcsolom be, a másikat ki, de ez nem segített a problémán.

Ezt a hozzászólást Pixi módosította (2011.03.26 17:48 GMT+1 óra, ---)

   
Marclee - Tag | 285 hsz       Online status #149694   2011.03.26 15:23 GMT+1 óra  
De meghívtam és úgy nem volt jó úgyhogy inkább hagytam a külön osztályt és visszatértem az eredeti ötlethez az eredeti osztályban csináltam mindent és így tökéletesen működik.
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric

http://geeksworld.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #149691   2011.03.26 14:27 GMT+1 óra  
és amint valakinél 80 fps-el fog menni, máris gyorsabb lesz...^^
Mellesleg mi volt a gond? Nem hívtad meg?

   
Marclee - Tag | 285 hsz       Online status #149690   2011.03.26 12:16 GMT+1 óra  
Már sikerült megcsinálnom köszi a segítséget és inkább nem adok kisebb értéket mert most így olyan pont jó
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric

http://geeksworld.hu/
   
Kuz - Törzstag | 4455 hsz       Online status #149687   2011.03.26 11:41 GMT+1 óra  
Ja bocs. De a randomtól függetlenül gondolj csak bele. 1mp alatt ha 60x hívódik meg az update, akkor 1mp alatt 60 pixelnyi távolságot fog megtenni a kép. Ha nincs sync, akkor meg annyiszor növeled az y-t, ahányszor meghívod, kvázi akár több 100x is. Adj kisebb értéket, mondjuk 0.01-et a növeléshez.
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???

   
Marclee - Tag | 285 hsz       Online status #149681   2011.03.26 08:29 GMT+1 óra  
Kuz, a random érték a vízszintesre vonatkozik a növekedés pedig függőlegesen

Ezt a hozzászólást Marclee módosította (2011.03.26 08:37 GMT+1 óra, ---)
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric

http://geeksworld.hu/
   
Kuz - Törzstag | 4455 hsz       Online status #149678   2011.03.25 23:51 GMT+1 óra  
Most az a vicces, hogy a nagy része ennek megvan az operation:cooperationben, amit linkeltem kicsivel lejjebb. A kód fordítható, futtatható, nyílván nem teljes, meg sok teszt jellegű dolgot tartalmaz.
Viszont a kérdésem : nem mozog a textúrád, vagy nem jelenik meg a képernyőn? Mert ha kap egy 0-600 random értéket, és te updateben 1-gyel növeled az y-t, akkor elvileg annyira gyorsan változna az érték, hogy nem lenne szabad látnod a képernyőn a képet.
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 #149669   2011.03.25 20:29 GMT+1 óra  
@Pixi:
Kód:
if (pause_aktivalas.IsKeyDown(Keys.P))
    pause_szamlalo++;
else
    pause_szamlalo = 0;
if (pause_szamlalo == 1 && pause == false)
    pause = true;
else if (pause_szamlalo == 1 && pause == true)
    pause = false;

Ez így teljesen fölösleges.. csinálj inkább egy input osztályt, amúgy sem jó mindig hívni a GetState()-t

@Marclee:
Kód:
class Sprite
{
    Texture2D text;
    Vector2 pos;
    //load megy
    void Update()
    {
        pos.Y += valamivel;
    }
    void Draw()
    {
        spritebatch.Draw(tex, pos ,Color.White);
    }
}

class Valamimás
{
    Sprite sprite;
    //load megy gondolom

    void Update(...)
    {
        sprite.Update();
    }
    //ugyan így a draw
}


Mellesleg így nem fog menni, hogy hiányoznak a programozás alapjai...

Durva ám, hogy a seggetek alá írtam egy alap struktúrát, amit lehetne használni. Mi hiányzik belőle, a teljes osztályszerkezet copy-paste...?

   
Marclee - Tag | 285 hsz       Online status #149667   2011.03.25 19:58 GMT+1 óra  
Nem Az űrben vagyunk egy űrhajóval kell menni jobbra balra és ki kell kerülni a feléd repülő aszteroidákat. Lesz egy számláló a sarokban és ki bírja tovább. Ennyi Nagyjából már kész.
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric

http://geeksworld.hu/
   
Pixi - Tag | 206 hsz       Online status #149665   2011.03.25 19:41 GMT+1 óra  
Te valami ilyesmi játékot akarsz írni, mint a "Code for Cake" ?

http://codeforcake.com/blog/?tag=xna

   
Asylum - Törzstag | 5500 hsz       Online status #149664   2011.03.25 18:40 GMT+1 óra  
Esetleg meghivod az Update metódusát?
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Marclee - Tag | 285 hsz       Online status #149662   2011.03.25 18:11 GMT+1 óra  
Ez egy nagyon jó kérdés :$ Javítva De még mindig nem mozog
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric

http://geeksworld.hu/
   
Asylum - Törzstag | 5500 hsz       Online status #149661   2011.03.25 18:03 GMT+1 óra  
És mi a túrót overrideolsz mikor nem származik semmiböl?.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Marclee - Tag | 285 hsz       Online status #149660   2011.03.25 17:41 GMT+1 óra  
Így kell neked a kód

Kód:
     class Sprite

    {

        //The current position of the Sprite
       
       
       


        public Vector2 Position = new Vector2(0,0);
       
       
       

        //The texture object used when drawing the sprite

        private Texture2D mSpriteTexture;

       

        public void LoadContent(ContentManager theContentManager, string theAssetName)
        {

            mSpriteTexture = theContentManager.Load<Texture2D>(theAssetName);
            Random r = new Random();
           
            Position.X = r.Next(600);

        }

        public void Draw(SpriteBatch theSpriteBatch)

        {

            theSpriteBatch.Draw(mSpriteTexture, Position ,Color.White);

        }

        protected override void Update(GameTime gameTime)
        {
            Position.Y += 1.0f;
        }





     }
}
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric

http://geeksworld.hu/
   
Marclee - Tag | 285 hsz       Online status #149659   2011.03.25 17:40 GMT+1 óra  
Jah ebben nincs beírva a koordínáták közé az Y bocsi, azt a próbálgatások miatt hagytam ki mielőtt szólnál érte
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric

http://geeksworld.hu/
   
Marclee - Tag | 285 hsz       Online status #149658   2011.03.25 17:39 GMT+1 óra  
ha kell akkor maga a játék kódját is kimásolom de igazából ezzel vannak gondjaim
bár az elég kusza és hosszú :$
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric

http://geeksworld.hu/
   
Marclee - Tag | 285 hsz       Online status #149657   2011.03.25 17:37 GMT+1 óra  
Tessék uram ez az az osztály amivel próbálkozom ,hogy kirajzolja nekem a képet (ez nem a player ezek ilyen zuhanó cuccok lesznek majd, de még sok dolog hiányzik belőle

Kód:
    class Sprite

    {

        //The current position of the Sprite
        int z;
       


        public Vector2 Position = new Vector2(0,0);
       
       
       

        //The texture object used when drawing the sprite

        private Texture2D mSpriteTexture;

       

        public void LoadContent(ContentManager theContentManager, string theAssetName)
        {

            mSpriteTexture = theContentManager.Load<Texture2D>(theAssetName);
            Random r = new Random();
            z = r.Next(600);

        }

        public void Draw(SpriteBatch theSpriteBatch)

        {

            theSpriteBatch.Draw(mSpriteTexture, new Vector2(z,0) ,Color.White);

        }

        protected override void Update(GameTime gameTime)
        {
            Position.Y += 1.0f;
        }





     }
}
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric

http://geeksworld.hu/
   
Kuz - Törzstag | 4455 hsz       Online status #149656   2011.03.25 17:26 GMT+1 óra  
Muti a kép osztályát, a loadcontenten belüli kép példányosítását, az update és draw ide vonatkozó sorait. Most!

Szerk. : Milyen duma ez, hogy "Ilyen a beszélőkém"??? Ez itt egy forum. Gondold át mit szeretnél közölni, és jól szerkesztve közöld. Szánj időt az igényességre, vazze'! Irgum-burger.
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???

   
Marclee - Tag | 285 hsz       Online status #149655   2011.03.25 17:16 GMT+1 óra  
Pixi nem a pause a gond hanem a kép állandóan lefele menetele, mert ha magában csinálom akkor jó de ha egy külön osztályba teszem azt a dolgot amit mozgatni akarok ,hogy könnyebben létrehozhassam amikor csak akarom ott már nem működik és nem esik le ,hogy miért.
A többiek kommentjéhez szólva meg értem mire gondoltok csak én már mindent amit most csinálok gyakoroltam kicsiben csak nagyon béna a beszélőkém és értem hol akartok kilyukadni csak ,hogy azt nem tom elmagyarázni én hol akarok kilyukadni
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric

http://geeksworld.hu/
   
Kuz - Törzstag | 4455 hsz       Online status #149654   2011.03.25 17:11 GMT+1 óra  
Yapp.
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???

   
Joga - Törzstag | 1791 hsz       Online status #149653   2011.03.25 17:09 GMT+1 óra  
Sztem úgy érti, hogy C++ban directX-ezik pedig magát a nyelvet nem teljesen látja át
(ಠ ›ಠ) Stewie!

   
Seeting - Törzstag | 2306 hsz       Online status #149652   2011.03.25 17:07 GMT+1 óra  
Kuz
ezért próbálkozom én is a dx-szel, ahelyett, hogy a c++t tolnám


Ezt nem értem. Milyen nyelvvel használod a dx-szet?
   
Pixi - Tag | 206 hsz       Online status #149651   2011.03.25 17:04 GMT+1 óra  
Nálam tökéletesen működik a Pause, az amit még régebben Pretender mutatott:

Kód:
// Léltrehoztam egy számlálót, és egy bool pause-t

        public static int pause_szamlalo = 0;
        public static bool pause = false;

// majd a következőket mind az Update alá

KeyboardState pause_aktivalas = Keyboard.GetState();   // billentyű kezelés

// itt pedig egyszerűen megadtam, hogy mikor lépjen érvénybe a bool pause

                if (pause_aktivalas.IsKeyDown(Keys.P))
                    pause_szamlalo++;
                else
                    pause_szamlalo = 0;

                if (pause_szamlalo == 1 && pause == false)
                    pause = true;
                else if (pause_szamlalo == 1 && pause == true)
                    pause = false;

// és ez amit Pretender is mutatott, csak akkor frissüljenek az egyes dolgok, amikor a bool pause nem aktív

            if (!pause)
            {
                kep.Update();
                videok.Update();
                hang.Update();
            }

   
Kuz - Törzstag | 4455 hsz       Online status #149650   2011.03.25 16:41 GMT+1 óra  
Igazából az nem baj, ha xna-n keresztül gyakorlod a c#-ot, de egyelőre ne játékot csinálj. Ehhez ugyanis nem csak c# ismeret kell, hanem némileg tisztában kell lenni azzal, hogy az xna milyen logikával működik. Én magamból kiindulva tudom, hogy aki játékfejlesztéssel akar foglalkozni, de még a nyelvet sem ismeri ELÉG JÓL (nem kell iszonyat jónak lenned, csak kell egy alap rutin), annak nem nagyon lehet elmagyarázni, hogy miért ne egyből a mély vízbe ugorjon, és miért csináljon inkább egyszerű console apppokat (ezért próbálkozom én is a dx-szel, ahelyett, hogy a c++t tolnám). Ebben az esetben inkább azt mondom, hogy nagyon egyszerű dologgal kezdj. Pl ne egyből új osztályt, meg player classt, meg ilyeneket csinálj. Indulj az alapoktól. Deklarálj egy Texture2D változót, deklarálj float típusú x, y változót, aminek adsz valami alapértéke, majd rajzold ki a textúrát. Ha ez megy, akkor próbálj az update-ben változtatni a pozíción, és nézd meg mi történik a képernyőn a textúrával. Haladj apránként. Lassabban fogsz haladni, mintha először pure c#-ot tanulnál, de legalább lesz látható eredménye, ami hajtani fog tovább. Ezért jobb iskolában tanulni a nyelvet, mert ott az órán "rá vagy kényszerítve", hogy csak a nyelvvel foglalkozz, ne pedig a nyelvhez kapcsolódó frameworkkel. Én is így kezdtem anno az xna-t. Még emlékszem, amikor Orphy a gépemnél létrehozott egy új solution, és mondta, hogy "Akkor nézzük meg mi történik, ha megnyomom az F5-öt..........Ööö....És egyből van egy kék ablakunk?... Hmmm....".
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???

   
Asylum - Törzstag | 5500 hsz       Online status #149647   2011.03.25 16:22 GMT+1 óra  
Javaslom höfökkel kezdeni:

http://people.inf.elte.hu/gt/oaf/oaf.html
http://people.inf.elte.hu/gt/eva1/eva1.html
http://people.inf.elte.hu/gt/eva2/eva2.html

Amíg ezek gondot okoznak addig XNA-nak inkább hozzá se kezdj.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Marclee - Tag | 285 hsz       Online status #149646   2011.03.25 16:20 GMT+1 óra  
Mind1 akkor elnézést ,hogy segítséget mertem kérni mert hülye vagyok még ehhez ha zavar akkor megyek és kutatok tovább googlen....
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric

http://geeksworld.hu/
   
Marclee - Tag | 285 hsz       Online status #149645   2011.03.25 16:19 GMT+1 óra  
De én se 21 nap alatt vettem végig a 21 napos könyvet szóval tudom ,hogy nem lehet megtanulni, én pl minden leckét legalább 3-4 napon keresztül gyakoroltam.
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric

http://geeksworld.hu/
   
Asylum - Törzstag | 5500 hsz       Online status #149643   2011.03.25 16:16 GMT+1 óra  
Kétfajta ember szokta dicsérni az ien könyveket: a microsoft emberei és azok akik 1-töl indexelik a tömböt, hogy ne legyen nulla.

Tényleg azt hiszed, hogy 21 nap alatt meg lehet tanulni a programozást? (szerintem a könyv írói se igy gondolták ezt, hanem mittomén java-ról c#-ra való áttérésként).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Marclee - Tag | 285 hsz       Online status #149640   2011.03.25 16:05 GMT+1 óra  
Nah tök jó..... állandóan arról kérdeztem és mindenki csak dícsérte most ,hogy áttértem xna ra az első ember lesz*rozza a 21 nap alattos könyvet.... (y)
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric

http://geeksworld.hu/
   
Asylum - Törzstag | 5500 hsz       Online status #149638   2011.03.25 15:59 GMT+1 óra  
Talán nem xna-val kéne kezdeni hanem mondjuk alapvetö programozási ismeretekkel (és nem 21 nap alatt c# mert a lóf*sz).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Marclee - Tag | 285 hsz       Online status #149637   2011.03.25 15:57 GMT+1 óra  
Van benne igazság:, de mivel nagyon hosszú így leírom a problémát mert egy picit másképp csináltam ( és szerintem itt a gond) mert amit adott eredetileg jó csak az én használatomban most nem, szal csináltam egy külön osztályt ami kirajzolja az elemet és oda írtam be amit adott és ugye alapból nem volt Update osztály hát csináltam egyet és azt írja ,hogy:
osztály neve no suitable method found to override

nah szerintem csak én vagyok a h*lye vagy nagyon nem értek hozzá de most hátha kiderül
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric

http://geeksworld.hu/
   
Kuz - Törzstag | 4455 hsz       Online status #149635   2011.03.25 15:40 GMT+1 óra  
Ahhoz már látnunk kellene a kódodat, hogy meg tudjuk mondani mi a gond.
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???

   
Marclee - Tag | 285 hsz       Online status #149633   2011.03.25 15:28 GMT+1 óra  
Köszi a választ majd megnézem csak még mindig a kép lefele mozgásán dolgozom mert amit Pixi mutatott valamiért nem műküdöik és fogalmam sincs ,hogy miért
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric

http://geeksworld.hu/
   
Kuz - Törzstag | 4455 hsz       Online status #149631   2011.03.25 15:19 GMT+1 óra  
Én ehhez külön enumokban definiált állapotokat használtam. Update-ben pedig switch vagy if van, és attól függően, hogy milyen state van dolgozik, vagy nem dolgozik az update/draw. A state váltását pedig valamilyen eseményhez (pl egy adott billantyű lenyomásához kötöm).
Ebből esetleg elnézhetsz 1-2 fogást :
http://data.hu/get/3191447/Operation_-_Cooperation.zip
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???

   
Marclee - Tag | 285 hsz       Online status #149630   2011.03.25 14:19 GMT+1 óra  
A kommentek felét nem értettem de a választ megtaláltam Köszönöm! A másik kérdésem pedig ,hogy úgy emlékszem felmerült már ilyen probléma de nem találtam: ,hogy tudom legegyszerűbben megoldani a pauset? Egyszerűen ha megnyomjuk a p-t álljon le minden, ne írjak már minden mozgáshoz külön if parancsot ( gondolom ,hogy nem ez a megoldás).
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric

http://geeksworld.hu/
   
bit.0x8000 - Törzstag | 574 hsz       Online status #149626   2011.03.25 11:05 GMT+1 óra  
A Villámversenyről jutott eszembe, talán valakinek hasznos lesz...
(Mivel nálam egy ideje nincs fenn XNA, nem biztos, hogy ez a működő verzió, ha valaki kipróbálja, visszajelezhetne.)
   
Pretender - Törzstag | 2498 hsz       Online status #149608   2011.03.25 06:46 GMT+1 óra  
Idézet
Kuz :
Bár hülyeséget nem akarok mondani, de az IsFixedTimestep és a vsync szerintem nem ugyanaz, de ennek majd holnap utánanézek, most csak leírtam, hogy ne felejtsem el.


Nekem is úgy rémlik, ahogy Asy mondta. Ha ki volt lőve a vsync, de be a fixed timestep, akkor sem ment 60 fpsnél többel (nálam 60, lcd monitor). Csak akkor ment ez az egész dolog, hogy ha mindkettőt kikapcsolta az ember.

   
Pixi - Tag | 206 hsz       Online status #149605   2011.03.25 03:36 GMT+1 óra  
Amúgy lenne nekem is egy kérdésem. Lehet, hogy ez már valamiféle Shader programozási ismereteket igényel (sorry ha félrebeszélek és ez nem az), de hátha meg lehetne oldani anélkül is. Ugye létezik a Source Rectangle, ami egy adott négyzet keretein belül rajzolja ki az adott kép egy részét. Na most én arra gondoltam, hogy ugyanezt megvalósítani, de mondjuk körrel, vagy egy saját, teljesen akármilyen alakzat keretei között. Pl csillag alak, vagy görbe hullám keretein belül kéne kirajzolja az adott kép egy részét. Megvalósítható ez viszonylag könnyen? Mellékelek egy képet is, hogy kb. érthető legyen amire gondolok. Mert ugye ez még sima négyzettel nem okozna gondot. Én valami egészen egyszerű homályos effektust gondoltam ezzel létrehozni, vagyis 2x is betölteném ugyanazt a képet, 1.x normálisan, 2.x pedig elhomályosítva, és mondjuk egy szabálytalan körvonalú testen belül csak az éles rész rajzolódna ki mindig, a háttérben volna a homályos ( "élesítő effekt" ). Röviden úgy kérdezném, hogy létrehozható e saját Source alakzat? És nem Rectangle...

http://kepfeltoltes.hu/110325/effect_www.kepfeltoltes.hu_.jpg

   
Kuz - Törzstag | 4455 hsz       Online status #149602   2011.03.25 00:14 GMT+1 óra  
Bár hülyeséget nem akarok mondani, de az IsFixedTimestep és a vsync szerintem nem ugyanaz, de ennek majd holnap utánanézek, most csak leírtam, hogy ne felejtsem el.
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???

   
Asylum - Törzstag | 5500 hsz       Online status #149601   2011.03.24 23:50 GMT+1 óra  
Már beszéltünk róla, hogy az xna annyira ért a jf-hez mint uwe boll a filmrendezéshez (van benne fixed timestep csak épp az fps-t is lekorlátozza, holott pont az lenne a lényege hogy az ugy megy ahogy tud).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #149600   2011.03.24 22:54 GMT+1 óra  
Én fixed timestepet tolok, szóval független az fps-től... Nem is emlékszek, hogy van-e ilyen xna-ban.

   
Kuz - Törzstag | 4455 hsz       Online status #149598   2011.03.24 22:34 GMT+1 óra  
Egyrészt nem baj, ha hall ilyet is, másrészt, ha valami marhaságot írok, legalább szóltok, és én is tanulok.
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???

   
Asylum - Törzstag | 5500 hsz       Online status #149596   2011.03.24 22:30 GMT+1 óra  
Szerintem ha már a mozgásnál elakadt akkor ne szivasd az fps függetlenséggel.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Kuz - Törzstag | 4455 hsz       Online status #149595   2011.03.24 22:28 GMT+1 óra  
Esetleg, ha azt akarod, hogy fps-től függetlenül mindig bizonyos időközönként menjen a növelés, akkor valami ilyesmit lehetne, hogy (ez persze csak egyszerű példa):
Kód:
//global valtozo, de ezt lehet szebben is :)
public static int  valtozo_a_varakozashoz = 0;
public static float valtozo_a_sebessegnoveleshez = 1.0;

//updatebe
if ((Environment.TickCount - valtozo_a_varakozashoz) > 100) //tehát minden 100msec után fut le
{
   //a kep-nek az y-ja float legyen, ne pedig int!
   kep.y += valtozo_a_sebessegnoveleshez;
   valtozo_a_varakozashoz = Environment.TickCount;
}

//draw-nál
spritebatch.draw(..., (int)kep.y,...);
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???

   
Pixi - Tag | 206 hsz       Online status #149594   2011.03.24 22:14 GMT+1 óra  
Vagyis azt akarod hogy folyamatosan mozogjon lefelé?

Kód:
        Texture2D kep;
        Vector2 kep_pozicio;

// Update-hoz

        kep_pozicio.Y += 1.0f;

// Draw-hoz

        spriteBatch.Draw(kep, kep_pozicio, Color.White);

   
Marclee - Tag | 285 hsz       Online status #149586   2011.03.24 19:51 GMT+1 óra  
Megint gondba ütköztem
Betöltöttem és kirajzoltam egy képet, aminek az egyik koordinátája y, és a kérdés ,hogy hova és mit írjak ,hogy y folyamatosan növekedjen??
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric

http://geeksworld.hu/
   
Marclee - Tag | 285 hsz       Online status #147085   2011.01.30 19:03 GMT+1 óra  
Köszönöm a gyors választ!
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric

http://geeksworld.hu/
   
Korábbi postok
> 1 < [2] [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] [25] [30] [35] [40] [45] [50] [55]