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 #153903   2011.06.09 12:27 GMT+1 óra  
Ezek szerint gondolom 2d-ről van szó.

   
Mukievil - Tag | 26 hsz       Online status #153895   2011.06.09 11:35 GMT+1 óra  
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 ?

   
terbed - Tag | 233 hsz       Online status #151728   2011.05.09 18:48 GMT+1 óra  
Elég idegesítő, hogy frissítem a wp dev tool-t és a következő hibát kapom mikor futtatni szeretném a kódodt:

Kód:
Error 1 Connection failed because of invalid command-line arguments. 0 0


Valaki tudna segíteni? Tegyem újra az egsz vs-t ?

Szerk.:
Még most sincs megoldva

Ezt a hozzászólást terbed módosította (2011.05.18 19:45 GMT+1 óra, ---)
   
Pretender - Törzstag | 2498 hsz       Online status #149744   2011.03.27 17:46 GMT+1 óra  
ezért kell mondjuk azt csinálni, hogy van a jelenlegi pozíció, egy velocity vector, amiből meghatározod a következő pozíciót.
Kód:
void UpdateBegin() {
velocity = new Vector2(...);
positionNext = position + velocity;

átállítod a rectangle-t erre a pozícióra, és azzal vizsgálsz egy ütközést. Ha ütköztek, akkor mondjuk (egyszerű esetben) kiszámolod a két rectangle által közbezárt értéket (vízszintesen ez szélesség lesz, a magasság - y - pedig 0) és azt kivonod a positioNext-ből
Kód:
//UpdateBegin() meghívása után
DetectCollision(); //ütközésvizsgálat a positionNext-es rectangle-el
Vector2 diff = ComputeDifference(); //kiszámolod a két rectangle közötti különbséget
positionNext -= diff;

Majd ezután az egész után beállítod a játékos pozícióját (amivel rajzolsz!) a positionNext-re.
Kód:
position = positionNext


És ez csak egy egyszerű példa

   
Pixi - Tag | 206 hsz       Online status #149735   2011.03.27 14:31 GMT+1 óra  
Azt hiszem kb. kezdem érteni mire gondolsz...ahogyan a képet megnéztem eszembe jutott, hogy ezt az eltolás technikát már valamikor használtam, de később valamiért pont hogy ezt akartam elkerülni. Mert ok hogy felállítom azt a logikát, hogy ha az elemnek ütközik, akkor tolja vissza azzal a sebességgel amivel halad, így olyan mintha egy helyben állna. De itt jött a probléma...vagyis pontosabban az, hogy van nekem több elemem is, amire ugyanazt a logikát írom, képzeld el hogy egymás tetején két különböző elem. Pl. egyik tégla, a másik blokk...és egymás tetején állnak, de a játékosom függőlegesen éppen akkora, mint amekkorák azok egymás tetején...és ha ugyanaz a logika van adva mindkettő esetében, akkor amolyan rángatós visszamozgatás történik. mert egyszerre ütközik mindkettővel, s ekkor a sebessége is dupla olyan gyors lesz amivel vissza kell mozgatnom.

   
fpeti - Törzstag | 1291 hsz       Online status #149723   2011.03.27 04:19 GMT+1 óra  
Idézet
Pixi :
"akkor annyiszor ismételnéd egy frame-en/update-en belül az ellenőrzést"
Igen, de maga a megvalósítás nem tudom hogyan néz ki, milyen kóddal kell megoldani.



Van a mozgó objektumodnak egy koordinátája, és egy mozgási iránya, ami lehetne egy normált vektor. A mozgási irányt beszorozva az aktuális mozgási sebességgel és az eltelt idővel (az előző frame/update óta) és hozzáadva a pozíciójához megkapod a 2 pontot, ami között elmozdult ebben a frameben. Ha az elmozdulás x,y -ja nagyobb mint 1 akkor elmozdult több, mint 1 pixelt. Ilyenkor kell a kezdő és végpont között - mondjuk midpoint algoritmussal - végigmenni és minden pixelnyi elmozdulásnál nézni, hogy nekiment-e valaminek. Ha igen, akkor ki kéne deríteni, hogy vízszintes, v függőleges oldalnak ment neki, s ebből új irányt számolni, és azzal újra számolni az elmozdulás maradékát - ezzel elcsúszik a fal mellett.
- ez így elég bonyolult kezdésnek.

Arra gondoltam mi lenne, ha csak annyit mondanék, hogy a már megírt pixeles üközésvizsgálatodat futtatnád le többször, attól függően, mennyi idő telt el a frissítés óta. Itt is ki kell számolni, mennyit mozdult el ebben a frameben, mondjuk 3 pixelt az x tengelyen, 2-t az y-on, ekkor egy 3-as for-kell, és minden iterációban az x-hez 1-et kell adni, az y-hoz 2/3-at, és nézni, ütközik-e valamivel.
Csak elsőre tűnik bonyolultnak, csak át kell látni.
(lehetne jó kis cikket írni a témában..)

Bár van aki megtette, ha igazán kéne valami 2d fizikai tutiság, itt van ez, érdemes a példaprogikat kipróbálni:
policolly
Egyszerűsítve téglalapokra: kep

Ezt a hozzászólást fpeti módosította (2011.03.27 04:36 GMT+1 óra, ---)
   
Asylum - Törzstag | 5448 hsz       Online status #149721   2011.03.27 02:10 GMT+1 óra  
Jah, sorry kicsit másra gondoltam Igen, ilyen esetben framenként sem segit .

Esetleg keresheted egy sugár metszetét a bounding box-al, és ha a következö updateben már tulmenne akkor az ütközéshez rakod.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pixi - Tag | 206 hsz       Online status #149720   2011.03.27 01:03 GMT+1 óra  
"akkor annyiszor ismételnéd egy frame-en/update-en belül az ellenőrzést"

Igen, de maga a megvalósítás nem tudom hogyan néz ki, milyen kóddal kell megoldani.

   
Kuz - Törzstag | 4455 hsz       Online status #149719   2011.03.27 00:08 GMT+1 óra  
fpeti megoldása (ami az én gondolatmentem érthetőbb formába öntése volt ) miért nem jó?
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 #149713   2011.03.26 21:27 GMT+1 óra  
Asylum: azt a framenként ellenőrzést hogyan valósíthatom meg? Elég 1x bevinni a Game1-ben valahová, vagy minden mozgásnál külön kell megadnom több sorban?

   
fpeti - Törzstag | 1291 hsz       Online status #149711   2011.03.26 21:02 GMT+1 óra  
Idézet
Pixi :
Amúgy meg sima Rectangle - Rentangle Intersects-re gondolok...



Mi lenne, hogy ha az elmozdulás nagyobb, mint 1 pixel, akkor annyiszor ismételnéd egy frame-en/update-en belül az ellenőrzést - végigmozgatod az úton, amit egy update alatt megtett. Nem szégyen ez , fizikai mocik is használják, Havokban meg is lehet adni per object hányszor nézzen ütközést kezdő és végpont között (4 a default).

Igazából kétféle megközelítés van, az egyik, hogy egymáshoz se érjenek - ez a per pixel ellenőrzés, a másik a nem determinisztikus módszer, amikor megnézik, hogy egymásba lógnak-e, és ha igen, akkor kitalálják, hogy melyik irányba tolják szét őket. Ált. arra, amerre a legkisebb elmozdulás kell, hogy ne érjenek egymáshoz. Ekkor extrém esetben előfordulhat, hogy kis méretű testek átmennek egymáson. Ez a 3d-ben bevett, mert ott nincsen pixelnyi elmozdulás (hacsak nem voxeles), de 2d-ben is nagyon gyors tud lenni. A per pixeles lassabb, de nagyon pontos.
   
Asylum - Törzstag | 5448 hsz       Online status #149708   2011.03.26 19:05 GMT+1 óra  
Ezért szoktam én framenként ütközést vizsgálni. Mivel NEM lehet olyan általános felosztást megadni ami minden sebességre jó.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Kuz - Törzstag | 4455 hsz       Online status #149705   2011.03.26 18:02 GMT+1 óra  
A matek annyira nem erősségem. Ha semmi más nincs, az aktuális pozíciót, meg a növelés utáni pozíciót azt minden update-kor tudod. Legrosszabb esetben olyat is csinálhatsz, hogy a két pozíció közt felosztod a pozíciókat egységnyi részekre, és megnézed, hogy ezen részek valamelyikén volt-e ütközés. Ha ez ígynem érthető, fent vagyunk chat-en.
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 #149704   2011.03.26 17:58 GMT+1 óra  
Igen jól mondod. Átugrásról van szó. És mivel tudom figyelembe venni a köztes pillanatokat is? Nem tudom ezzel kapcs. honnan induljak ki?

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