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

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]
dvorgaz - Törzstag | 575 hsz       Online status #97462   2008.10.25 09:18 GMT+1 óra  
Köszi, így már faszán működik, mondjuk alig gyorsabb mint trianglelisttel.
   
nagyy - Törzstag | 248 hsz       Online status #97461   2008.10.25 08:32 GMT+1 óra  
Idézet

dvorgaz
Gondoltam TriangleStrip-re átalakítom mert biztos gyorsabb meg minden, csak az a probléma, hogy egy négyzet alakú patchet nem tudok egy strippel felépíteni csak 32-vel (ennyi sor), így renderelésnél is 32 DrawIndexedPrimitives() hívással kell kirajzolnom egyetlen patchet, ennek köszönheteően az FPS leesett majdnem a harmadára...

Na most ez normális hogy a strip ennyire alkalmatlan tereprenderelésre? Vagy ki lehet valahogy rajzolni több stripet egyetlen hívással?


A megoldás a degenerate triangle strip. Annyi a lényege, hogy mikor felépítesz egy sort a patch-ben, akkor a sor végén az utolsó vertexet, majd a következő sor első vertexét is kétszer teszed a pufferbe. Így a strip megjelenítésekor nem jelennek meg azok a hibás, nagyon hosszú háromszögek, amik az egyes sorok közé kerülnének, mivel azok helyett olyan degenerált háromszögek lesznek, ahol a háromszög két vertexe ugyanaz... Ezeket a háromszögeket a videókari automatikusan eldobja, így nem fog megjelenni semmi a sorok közt, és egy DrawIndexedPrimitives() hívással el lehet intézni az egész patch kirajzolását.
   
dvorgaz - Törzstag | 575 hsz       Online status #97459   2008.10.25 08:00 GMT+1 óra  
Na megint lenne egy kérdésem

Szóval tereprenderelés: a pályámat 33*33-as patchekből renderelem, eredetileg egy patchet egyetlen DrawIndexedPrimitives() hívással TriangleList módban.

Gondoltam TriangleStrip-re átalakítom mert biztos gyorsabb meg minden, csak az a probléma, hogy egy négyzet alakú patchet nem tudok egy strippel felépíteni csak 32-vel (ennyi sor), így renderelésnél is 32 DrawIndexedPrimitives() hívással kell kirajzolnom egyetlen patchet, ennek köszönheteően az FPS leesett majdnem a harmadára...

Na most ez normális hogy a strip ennyire alkalmatlan tereprenderelésre? Vagy ki lehet valahogy rajzolni több stripet egyetlen hívással?
   
Csizmás Kandur - Tag | 436 hsz       Online status #97458   2008.10.25 06:33 GMT+1 óra  
Idézet
dvorgaz :
Multithreadinghez nem nagyon értek, majd utánanézek akkor.


System.Threading.Timer az már alapból egy külön szálon kezeli az órajelet. Pofonegyszerű a használata és ide pont passzol. De lehet sima new Thread-el például bejelentkező képet kirakni 5 másodperce és akkor a thread alszik 5 mp ig, majd utána csinál valamit. C# ban ezek pofonegyszerű dolgok. C# 4.0-ban majd jön a visual parallel compute rendszer. Na az már durva lesz.
dynamic calc = GetCalculator();
var sum = calc.Add(10, 20);
   
dvorgaz - Törzstag | 575 hsz       Online status #97457   2008.10.25 06:30 GMT+1 óra  
Multithreadinghez nem nagyon értek, majd utánanézek akkor.
   
Csizmás Kandur - Tag | 436 hsz       Online status #97456   2008.10.25 06:27 GMT+1 óra  
Jó, de a gameTime-ra nem kötheted rá, mert mi van akkor, ha valaki p III 800 mhz-es géppel és geforce fx 5200-al akar játszani? Pont ezért nem lehet PC-nél így variálni és érdemes multithreading.re pakolgatni a dolgokat. A másik, hogy a proci terhelés is megugrik, ha a fixedTimeStep be van kapcsolva. Viszont a vsync majd legyen off, mert az is növeli a cpu terhelést, ha on.
dynamic calc = GetCalculator();
var sum = calc.Add(10, 20);
   
dvorgaz - Törzstag | 575 hsz       Online status #97455   2008.10.25 05:59 GMT+1 óra  
Na kísérleteztem vele egy kicsit; átalakítottam a tereprajzolást, hogy vertexbufferből rendereljen, így megugrott az FPS a duplájára és kamera még használhatatlanabb lett. Ezután a kameramozgatásnál hozzáadtam az ElapsedGameTime-hoz egy nagyon kicsi fix értéket (pl 0.01f), és most tényleg száguld az egész, úgyhogy valószínű nullára jött ki az időkülönbség és amiatt akadozott.
   
Csizmás Kandur - Tag | 436 hsz       Online status #97454   2008.10.25 05:23 GMT+1 óra  
Idézet
dvorgaz :
Idézet
Csizmás Kandur :
Csak akkor valami külön időzítés kell, mert 5-6 ezer FPS-nél meglódulhatnak a dolgok.



Ez alatt arra gondolsz, hogy az fps független mozgásoknál az ElapsedGameTime nullára jön ki a kerekítés miatt? Azt hiszem valami ilyesmit csinál most a progim, minél nagyobb az FPS annál lassabb a kamera mozgatás meg néha akadozik mint állat.


Külön szálra tedd a mozgási animációt, meg, ami eddig a gameTime-ra volt kötve. Legegyszerűbb esetben erre egy System.Threading.Timer is megfelel, amihez hozzárendelhetsz egy tick event metódust. Amúgy sem jó, ha PC-n a game time-ra vannak kötve a dolgok.

Egyébként épphogy fordítva kéne lenni, mint ahogy írod. Pár ezer FPS-nél mint a golyó úgy repked a kamera.
dynamic calc = GetCalculator();
var sum = calc.Add(10, 20);
   
dvorgaz - Törzstag | 575 hsz       Online status #97453   2008.10.25 05:08 GMT+1 óra  
Idézet
Csizmás Kandur :
Csak akkor valami külön időzítés kell, mert 5-6 ezer FPS-nél meglódulhatnak a dolgok.



Ez alatt arra gondolsz, hogy az fps független mozgásoknál az ElapsedGameTime nullára jön ki a kerekítés miatt? Azt hiszem valami ilyesmit csinál most a progim, minél nagyobb az FPS annál lassabb a kamera mozgatás meg néha akadozik mint állat.
   
dvorgaz - Törzstag | 575 hsz       Online status #97423   2008.10.24 10:11 GMT+1 óra  
Köszi, ez a spriteBatch-es dolog megoldotta a depthes gebaszt, de a v-synch probléma még mindíg áll. A fixed time step ki van kapcsolva, különben még 60 fölé se menne, nem hogy 85 fölé.

edit: közbe megoldódot az is, egyszerűen rossz helyre raktam a "SynchronizeWithVerticalRetrace" sort.

Ezt a hozzászólást dvorgaz módosította (2008.10.24 10:17 GMT+1 óra, ---)
   
Csizmás Kandur - Tag | 436 hsz       Online status #97415   2008.10.24 06:31 GMT+1 óra  
Idézet
dvorgaz :
sehogy se megy 85 fölé, pedig explicite kikapcsoltam a v-syncet


Kód:
IsFixedTimeStep = false;


Csak akkor valami külön időzítés kell, mert 5-6 ezer FPS-nél meglódulhatnak a dolgok.

Idézet
dvorgaz :
az új component bevétele miért barmolja el


Azért mert kombinálod a 2D sprite-ot a a 3D rendereléssel, mert végeredményben a spriteFont az az. Erre a megoldás, hogy a sprite renderelő Begin metódusát másképp kell paraméterezni:
Kód:
public override void Draw(GameTime gameTime)
        {

         spriteBatch.Begin(SpriteBlendMode.AlphaBlend, SpriteSortMode.Deferred, SaveStateMode.SaveState);   

        }


Érdemes átnézni a dokumentációt, mert így fejből én se tudom pontosan a paraméterezéseket.

Ezt a hozzászólást Csizmás Kandur módosította (2008.10.24 06:46 GMT+1 óra, ---)
dynamic calc = GetCalculator();
var sum = calc.Add(10, 20);
   
dvorgaz - Törzstag | 575 hsz       Online status #97413   2008.10.24 05:46 GMT+1 óra  
Akadt egy fura problémám:
Van egy tereprenderelő progim, ami darabokban rajzolja ki a terepet. Alapjáraton jól is működik, de most beletette egy fps számláló gamecomponentet, és most valamiért rosszul rendereli a pályát (valami depth test gebasz), illetve az fps sehogy se megy 85 fölé, pedig explicite kikapcsoltam a v-syncet. Ha kiszedem a componentet akkor meg megjavul.
A depth-test defaultból be van kapcsolva, szóval nem értem, hogy az új component bevétele miért barmolja el, van valakinek valami ötlete erre (meg a v-sync problémára)?

Így néz most ki.
   
xanat - Tag | 489 hsz       Online status #97381   2008.10.22 11:50 GMT+1 óra  
nemtudom, hogy alapból van-e, de lehet csinálni, és nem is túl bonyolult.
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
Asylum - Törzstag | 5443 hsz       Online status #97380   2008.10.22 11:07 GMT+1 óra  
az igen vicces lesz, ha 0 tol kétmillioig random objektetket rak (van az xna ban vfc?)
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
kicsy - Szerkesztő | 4304 hsz       Online status #97379   2008.10.22 10:50 GMT+1 óra  
Ennek nem sok köze van az XNA-hoz, generálsz random-számokat az intervallumokon belül annyiszor ahány példányt akarsz, és azokat használod a transzformációs mátrixokhoz. Persze érdemes valami olyan algoritmust használni ami nem rakja egybe/túl közel őket, de ez se nagy cucc.
kicsy ● SilentVertigo Team - project Solarah
http://blog.yscik.com
   
xanat - Tag | 489 hsz       Online status #97378   2008.10.22 10:29 GMT+1 óra  
üdv!

Hogyan tudok random elhelyezni modelleket?
amekkora területre kéne pakolni:
- y koordináta az 0
- z koordináta az 0 fölött és kb. 2.000.000 alatt (ilyen hosszú 1 pálya )
- x koordínáta -1500 - 1500-ig.

Hogyan tudnám ezt megoldani (ilyen felsőnézetes szerű 1xű kis game készülget )
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
Orphy - Törzstag | 1893 hsz       Online status #97143   2008.10.17 07:45 GMT+1 óra  
Ez OFF,

de ha már itt tartunk:

- A Storm-nak tényleg annyi. A kedves külföldi befektető, aki megvette, becsődölt, és rántotta magával. R.I.P
- A DR-ről az utolsó információm hogy túlélték a nehézségeket, szépen lassan összeszedik magukat.
- A Most Wanted-ről annyit hallottam régebben, hogy elküldték a PC-s részleget, de ha jól tudom még élnek, és keresnek is embereket.
- Az Invictus-ról nem tudok semmit
- A Black Hole nem úgy néz ki, mint akinek problémái vannak

Csak hogy a nagyobbakat említsük.
   
newversion - Tag | 197 hsz       Online status #97141   2008.10.17 07:23 GMT+1 óra  
most mér mondod, jol értesültektöl hallottam hogy a dr végleg bedölt, a most wanted is, a stormregion is
még van 1-2 de azoknak sincs sok hátra
uhogy nyugodtan leszedhettitek a cégek logoját az oldalrol , mert már nem léteznek
   
kicsy - Szerkesztő | 4304 hsz       Online status #97140   2008.10.17 07:14 GMT+1 óra  
Versionnek saját kis valósága van, általában érdemesebb ignorálni ha megszólal

A Valve nemhiszem hogy kitiltaná az XNA-t, de tény hogy macerásabb a játékosnak futtatásra bírni. Mondjuk azért csak nem riadnak vissza, eddig is kellett nekik dx, physx redistet telepíteni alkalomadtán, a pc gamerek amúgy is általában megbírkóznak a két színes gomb nyomogatásánál bonyolultabb feladatokkal is
És azért egy ilyen indie projectnél, ami nem fog dollármilliókat hozni nem mindegy szerintem hogy fél vagy egy évig tartott a fejlesztés -> a gyorsabb, hatékonyabb technológiát érdemes választani.
kicsy ● SilentVertigo Team - project Solarah
http://blog.yscik.com
   
Cow - Tag | 52 hsz       Online status #97139   2008.10.17 06:13 GMT+1 óra  
Azt halottam, hogy a DR haldoklik, és múltkor annak a cégnek voltak gondjai akik megvették a stormregion-t, de hogy az invictuson kívül mindegyik csődbement volna? Ezt honnan veszed?
Eredetit, újat és ötleteset - bárhol és bármikor... avagy nem vetem meg az ágyat, mert megvetem.
http://cow.isgreat.org
   
newversion - Tag | 197 hsz       Online status #97138   2008.10.17 05:55 GMT+1 óra  
szerintem részt lehet venni, meg ott van az iphone -os apple rendszer is
az a baj a pc-s játékokkal hogy nem lehet pénzt szerezni belöle , mondhatni fölösleges idöpazarlás bármilyen pc-s project
még referenciának is fölösleges, mivel minden magyar játékfejlesztö cég csödbement
   
nadam - Törzstag | 364 hsz       Online status #97133   2008.10.17 01:58 GMT+1 óra  
Ti tudtátok, hogy Magyarországról nem lehet részt venni az XBox-os 'community games' programban? (Sőt egyelőre a legtöbb Európai országból sem.)
Én sajnos csak tegnap tudtam meg:

link

Nekem ez elég volt ahhoz, hogy végülis visszavonulót fújtam az XNA-tól; megyek vissza DirectX+C++-ra.
Nem akarom bekopizni (nem akarok floodolni), úgyhogy csak linkelek a prog.hu-s topicra, ahol részletesebben leírom, hogy miért gondoltam meg magam:

link
   
xanat - Tag | 489 hsz       Online status #96854   2008.10.09 13:38 GMT+1 óra  
ok, köszi a választ.
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
newversion - Tag | 197 hsz       Online status #96852   2008.10.09 13:13 GMT+1 óra  
a normal map elég egyszerü, azon gyakorolhatod a fényeket
   
xanat - Tag | 489 hsz       Online status #96851   2008.10.09 12:36 GMT+1 óra  
Idézet
Lord_Crusare :
De ne ismerd el! Inkább próbálkozz, abból tanulsz!



oké! nemtudom mennyivel egyszerűbb a relief mapping-nél a parallax, v. occlusion, v. normal mapping? (nemtudom melyik, egyenlőre elég lenne az egyszerűbb, ha jól tudom egymásra épülnek)
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
Lord_Crusare - Törzstag | 1287 hsz       Online status #96847   2008.10.09 10:24 GMT+1 óra  
De ne ismerd el! Inkább próbálkozz, abból tanulsz!

   
xanat - Tag | 489 hsz       Online status #96844   2008.10.09 09:22 GMT+1 óra  
ok, ebben van valami, a reliefet lehet hamar kezdtem el. ok, elismerem, tévedtem.
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
newversion - Tag | 197 hsz       Online status #96833   2008.10.09 06:17 GMT+1 óra  
"Oké, nem is copy-zni kell a kódot, de valahol el kell indulni. sztem"

el, pl a fényeknél, , de nem a relief mapnál

és ha engem kérdezel az összes fellelhetö relief map használhatatlan realtime enginben
a cone steppinges már majdnem , de a surolo szögeknél(grazing angle) a for ciklus felfut 100-200 ciklusig, és lassu lesz mint a tetü, vagy hibás
van saját relief algoritmusom ami kiküszöböli ezt a hibát, de még igyse egyszerü mert tul sok az üres ciklus ha a shadert a legrosszabra lövöm be, persze használhatok logaritmikus közelitést is, de ez meg a sávszélt pumpálja
kéne má egy normális shader a gpukba
   
xanat - Tag | 489 hsz       Online status #96832   2008.10.09 06:07 GMT+1 óra  
köszi szépen a válaszokat, köszi Orphy.
newversion:
tiszteletben tartom a véleményedet, de mindazonáltal remélem a "copyzós" srác alatt nem rám gondoltál...
Ok elismerem, ezt copy-ztam azt a shadert, de mindazonáltal Kuzanth-tól idézve:
"Majd egyszercsak megvilágosodom minden gyakorlás nélkül?"
Ezalatt azt értem, hogy shaderekhez tényleg alma vagyok... de gyakorlás, kérdezés, tanulás nélkül (a tanulást Te is mondtad) nem lehet sehova se eljutni. Mi a legjobb tanulás? Nyomjam az elméleteket sorba, semmi gyakorlat stb? Oké, nem is copy-zni kell a kódot, de valahol el kell indulni. sztem.
A másik: egy szóval sem mondtam, h azonnal játékot fejlesztek. Grafikai engine-t próbálkozok összedobni... nem, nem copy-s kódokkal.

A másik nagy igazság: "ne találd fel újra a kereket"

Csak ennyit szerettem volna, és bocsánat, hogy zavartalak a kérdéseimmel.

Üdv: xanat
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
Orphy - Törzstag | 1893 hsz       Online status #96806   2008.10.09 00:58 GMT+1 óra  
newversion:

légyszíves hagyd abba az anyázást!
Az a helyzet, hogy a shadereknél pont ez az egyik nehézség, hogy általában csak egy adott technikát mutatnak be, azt is általában csak egyetlen directional light-tal, a szükséges háttérismereteket (pl miért így számoljuk a lightning-ot) pedig szintén elég ritkán írják le hozzá rendesen. Xanat kérdése teljesen jogos!



xanat:

Én sem vagyok még teljesen pro a témában, de elvileg létezik a problémára több megoldás is:
- Lehet módosítani a shader-t úgy, hogy több fényt is tudjon kezelni
- Lehet generálni a shader-t "on the fly", ezt nem tudom, támogatja-e az XNA
- Lehet renderelni deferred shading-el, akkor bármennyi fényt használhatsz, cserébe az átlátszóságot nehezebb megoldani, kicsit másképpen kell gondolkodni, és több memóriát is fog igényelni - az fps eséstől viszont nem kell megijedni, azt bármilyen scene esetén fogja tartani, ha cpu oldalon nem csinálsz rosszul valamit. A deferred shading-ről ITT találsz egy XNA-s tutort, amin el lehet indulni.
   
newversion - Tag | 197 hsz       Online status #96800   2008.10.08 15:34 GMT+1 óra  
tanulni kell, de az hogy a srác kicopyzza a relief mapos shadert és benyögi hogy uhh kéne hozzá pár light és az már magas , na ettöl elborul az agyam
persze tuti a cone-os relief mapot találta meg, ami önmagában semmit nem ér, mivel a hozzá tartozo cone generátort 2 napig irtam , és nagy nehezen sikerült felgyorsitani ugy hogy 5 ora alatt kiszámolja a 256*256-os mapra
na ne b@sszuk má az eget
   
Kuz - Törzstag | 4455 hsz       Online status #96797   2008.10.08 14:28 GMT+1 óra  
Engem jobban érdekelne az, hogy ha nem írhatok játékot mert nem tudok "primko" shadert írni, akkor hogy a 3,14csába tanuljak meg egyáltalán játékot fejleszteni? Majd egyszercsak megvilágosodom minden gyakorlás nélkül?
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???

   
kicsy - Szerkesztő | 4304 hsz       Online status #96785   2008.10.08 11:41 GMT+1 óra  
A másik érdekes kérdés meg, hogy ki kérdezett?
kicsy ● SilentVertigo Team - project Solarah
http://blog.yscik.com
   
Lord_Crusare - Törzstag | 1287 hsz       Online status #96784   2008.10.08 11:23 GMT+1 óra  
De el vagy szállva magadtól... Mutatnál valamit, amit te csináltál, és minőségi?

   
newversion - Tag | 197 hsz       Online status #96783   2008.10.08 11:06 GMT+1 óra  
aszondom aki nem tud megirni egy shadert ami olyan primko mint az állat, akkor az ne akarjon se programozni , játékot irni meg pláne
emiatt nem is fogok semmelyik copypastezo csávonak segiteni, jobb dogom is van
   
xanat - Tag | 489 hsz       Online status #96778   2008.10.08 10:06 GMT+1 óra  
huha, az fincsi
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
Lord_Crusare - Törzstag | 1287 hsz       Online status #96771   2008.10.08 08:03 GMT+1 óra  
Ahhoz bizony át kell alakítanod a shader-t, úgy, hogy minden fényt kezelni tudjon.

   
xanat - Tag | 489 hsz       Online status #96770   2008.10.08 07:47 GMT+1 óra  
nah, újabb kérdés
Tehát:
Ha van 1 shaderem, amiben van relief mapping... a kirajzoláskor ugye átadjuk a paramétereket.
van egy olyan is, hogy Light Position (fény pozíció)
Ha 1 van, akkor ebből nincs is gond... de mi van, ha mondjuk van 10 fény, vagy ne adj' Isten több?
Hogy lehetne ezt megcsinálni?

Előre is köszi!
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
xanat - Tag | 489 hsz       Online status #96715   2008.10.07 06:28 GMT+1 óra  
Idézet
wondermoving :
Elkezdtem fordítani a Beginning XNA 2.0 Game Programming könyvet magyarra, mert szerintem ebből lehet tanulni a legtöbbet. Aki szeretne segíteni a fordításban dobjon egy mailt...



sajnos ennyire nem tudok angolul, de az a könyv amit írtál az valóban elég jó... sajnos segíteni nem tudok, de a végkifejletet szívesen olvasnám
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
wondermoving - Tag | 1 hsz       Online status #96705   2008.10.06 10:46 GMT+1 óra  
Üdv mindenki!

Gondolom sokan gondoltatok már rá hogy milyen jó lenne ha az angol XNA könyvek valamelyikét magyarul tudnátok olvasni.
Elkezdtem fordítani a Beginning XNA 2.0 Game Programming könyvet magyarra, mert szerintem ebből lehet tanulni a legtöbbet. Aki szeretne segíteni a fordításban dobjon egy mailt a wondermoving@freemail.hu címre.

   
xanat - Tag | 489 hsz       Online status #96570   2008.10.02 06:37 GMT+1 óra  
azt hiszem az eddigi mind2 kérdésemet sikerült megoldanom, köszi a választ!
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
xanat - Tag | 489 hsz       Online status #96565   2008.10.02 05:20 GMT+1 óra  
Kód:
            GameTime gTime = new GameTime();

            float elapsedTime = 0.0f;
            float endTime = 1000.0f;
            elapsedTime += (float)gTime.ElapsedGameTime.Milliseconds;

            for (int i = 0; i < particleList.Count; i++)
            {
                ParticleData particle = particleList[i];
                spriteBatch.Draw(explosionTexture, particle.Position,
                    null, particle.ModColor, i, new Vector2(256, 256),
                    particle.Scaling, SpriteEffects.None, 1);
                if (elapsedTime < endTime)
                {
                    particle.ModColor.A -= (1.0f - (elapsedTime / endTime));
                }
            }


ez így nyilván nem jó
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
ShAdeVampirE - Törzstag | 1313 hsz       Online status #96562   2008.10.01 22:17 GMT+1 óra  
Ha minden igaz: DrawExplosion()-ben spritebatch.Draw() particle.ModColor paramétere felel a színért -> ennek az alpha-ját kell x ideig állítani. Ehhez létre kell hoznod egy időzítőt, elindítani mikor a rajzolás elkezdődik (v mikortól halványítani szeretnéd) és

alpha = időzítés kezdése óta eltelt idő / az az idő, amennyi alatt teljesen halványuljon el

v ez, v ugyan ez csak (1 - eltelt/összes).

És persze ha (eltelt > halványulási) idő akkor már nem kell rajzolni.
   
xanat - Tag | 489 hsz       Online status #96281   2008.09.23 11:24 GMT+1 óra  
van 1 apró problémám.
Nemrégiben belinkeltem 1 oldalt, ahol ilyen jó kis 2d-s ágyús-lövős dolog volt... szépen megcsináltam a tutorialt, írogattam a kódokat, megértettem, rekonstruáltam, de van 1 kis probléma:
Ha lövünk, és ütközésdetekt történt, akkor kirajzol 1 robbanást... namost itt a probléma, hogy ez nem tűnik el... hogy tudnám mondjuk 1-2mp-el később lassan elhalványítani a robbanást?

(futtatható állomány itt: http://www.screamengine.extra.hu/cuccos/Debug.zip található)

Ami lényeges lehet ilyen szempontból:

Kód:
        private void AddExplosion(Vector2 explosionPos, int numberOfParticles, float size, float maxAge, GameTime gameTime)
        {
            for (int i = 0; i < numberOfParticles; i++)
                AddExplosionParticle(explosionPos, size, maxAge, gameTime);
        }

        private void AddExplosionParticle(Vector2 explosionPos, float explosionSize, float maxAge, GameTime gameTime)
        {
            ParticleData particle = new ParticleData();

            particle.OrginalPosition = explosionPos;
            particle.Position = particle.OrginalPosition;

            particle.BirthTime = (float)gameTime.TotalGameTime.TotalMilliseconds;
            particle.MaxAge = maxAge;
            particle.Scaling = 0.25f;
            particle.ModColor = Color.White;

            float particleDistance = (float)randomizer.NextDouble() * explosionSize;
            Vector2 displacement = new Vector2(particleDistance, 0);
            float angle = MathHelper.ToRadians(randomizer.Next(360));
            displacement = Vector2.Transform(displacement, Matrix.CreateRotationZ(angle));

            particle.Direction = displacement;
            particle.Accelaration = 3.0f * particle.Direction;

            particleList.Add(particle);
        }


akkor ütközésdetektkor:

Kód:
        private void CheckCollisions(GameTime gameTime)
        {
            Vector2 terrainCollisionPoint = CheckTerrainCollision();
            Vector2 playerCollisionPoint = CheckPlayersCollision();
            bool rocketOutOfScreen = CheckOutOfScreen();

            if (playerCollisionPoint.X > -1)
            {
                rocketFlying = false;

                smokeList = new List<Vector2>(); NextPlayer();
                AddExplosion(playerCollisionPoint, 10, 80.0f, 2000.0f, gameTime);
            }

            if (terrainCollisionPoint.X > -1)
            {
                rocketFlying = false;

                smokeList = new List<Vector2>(); NextPlayer();
               AddExplosion(terrainCollisionPoint, 4, 30.0f, 1000.0f, gameTime);
            }

            if (rocketOutOfScreen)
            {
                rocketFlying = false;

                smokeList = new List<Vector2>(); NextPlayer();
            }
        }


és maga a robbanás kirajzolása:

Kód:
        private void DrawExplosion()
        {
            for (int i = 0; i < particleList.Count; i++)
            {
                ParticleData particle = particleList[i];
                spriteBatch.Draw(explosionTexture, particle.Position, null, particle.ModColor, i, new Vector2(256, 256), particle.Scaling, SpriteEffects.None, 1);
            }
        }


talán a kirajzoláshoz kellene 1 időzítő? csak én elhalványodást szeretnék... ajjajj, törni kell a fejemet
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
Orphy - Törzstag | 1893 hsz       Online status #96249   2008.09.23 02:57 GMT+1 óra  
Oks, este megnézem.
Köszi
   
nagyy - Törzstag | 248 hsz       Online status #96233   2008.09.22 12:55 GMT+1 óra  
Idézet

Orphy
XAct-tal kapcsolatban van valakinek tapasztalata?
Hétvégén próbálgattam, de nem találtam meg pl azt, hogy egy betöltött wave-nek hogyan tudom beállítani a tömörítését...


A tömörítést kicsit trükkösen kell beállítani, mert nem minden fájlra külön kell megadni a tömörítés paraméterekeit, hanem létre kell hozni "tömörítési profilokat" (saját elnevezés), és később az egyes hangfájloknál azt kell beállítani, hogy melyik "tömörítési profilt" használja.
Gyakorlatilag ez úgy néz ki, hogy:
1) Bal oldalon a treeview-ban van egy "Compression preset" elem -> jobb klikk rajta, a többi értelemszerűen. Itt be lehet állítani minden paramétert, ami kellhet a tömörítéshez.
2) Egy "Wave bank"-ba behelyezed a megfelelő hangokat, majd kijelölöd amit betöltöttél, és a "compression preset" tulajdonságukat megfelelően beállítod.

Eddig még nem próbáltam zenéket lejátszani a szerkesztő progiból, de most megnéztem, és nálam is lefagyott. Érdekes módon mikor a play-re klikkeltem feljött a windows tűzfal figyelmeztetése, úgyhogy lehet hogy azért fagy, mert a tűzfalnál rosszul lett vmi beállítva.
   
xanat - Tag | 489 hsz       Online status #96232   2008.09.22 12:54 GMT+1 óra  
jah okézsoké!
Bocsi, nem akartam elvenni a lehetőséget a kedves fórumozó társaktól
Amúgy közben sikeresen rájöttem, hogy mire gondoltál...

kis off:
sikerült, működik a konzol is, az összes (mind a 2 ) funkcióval:
http://www.screamengine.extra.hu/Images/engine/konzol1.jpg
Másik: ezt nem árt átnyálaznia senkinek, okos dolgok vannak itt:
http://www.riemers.net/eng/Tutorials/XNA/Csharp/series2d.php
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
Kuz - Törzstag | 4455 hsz       Online status #96225   2008.09.22 12:17 GMT+1 óra  
Nyugodtan kérdezz csak ITT, majd válaszolunk...
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???

   
xanat - Tag | 489 hsz       Online status #96224   2008.09.22 11:13 GMT+1 óra  
Idézet
kuzanth :
Idézet
xanat :
...


Több megoldás is létezik, ez függ attól, hogy mennyire komolyan akarod beleásni magad. Egy tök egyszerű megoldás az, hogy ha egy tömbben eltárolod a pozíciókat, majd a Draw() metódusban végigmész a tömb elemein, és egyenként kirajzolod a modelt, csak ugye minden egyes lépésben az adott tömb értéket adod meg, mint worldmatrix-t.
Ha már komolyabb szinten akarod csinálni, akkor lesz majd külön osztályod a modelleknek, és amikor betöltesz egy modelt, akkor már rögtön betöltésnél a SetValue( )-nál megadod az adott worldmatrix értékét, így rajzoláskor nem kell foglalkoznod már magával a tömbbel, hiszen az adott példány tartalmazni fogja a worldmatrix-ot. Más kérdés, hogy ettől függetlenül kirajzolásnál is be kell állítani a worldmatrix értékét, amennyiben a model képes helyzetváltoztatásra, de ez értelemszerű...



húha ennyire még nem értek hozzá, majd msn-en értekeznénk egyszer? örülnék ha tudnék tőled tanulni
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
xanat - Tag | 489 hsz       Online status #96223   2008.09.22 11:10 GMT+1 óra  
Idézet
Orphy :
Hali,

XAct-tal kapcsolatban van valakinek tapasztalata?

Hétvégén próbálgattam, de nem találtam meg pl azt, hogy egy betöltött wave-nek hogyan tudom beállítani a tömörítését...

A másik kérdésem, hogy nálatok is csinálja-e azt az XACT programja, hogy ha a felületén keresztül bele akarok hallgatni egy hangba, akkor nemes egyszerűséggel lefagy...



Nem, én még nem foglalkoztam vele... hangok használatától még "kicsit" odébb állok
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] [25] [30] > 35 < [40] [45] [50] [55]