játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5440
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:    2185
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] [60] [65] > 70 < [75] [80] [85] [90] [95] [100] [105] [110] [115] [120] [125] [130] [135] [140] [141]
xanat - Tag | 489 hsz       Online status #111534   2009.05.30 05:13 GMT+1 óra  
Kód:
timeGetTime();

es itt a szamolas:
Kód:
static double startTime = timeGetTime();
float elapsed = (float)(timeGetTime() - startTime);
startTime = timeGetTime();
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
sirpalee - Tag | 1282 hsz       Online status #111533   2009.05.30 05:12 GMT+1 óra  
Mivel kérdezed le az időt?
raytraceisten és übermedic
   
xanat - Tag | 489 hsz       Online status #111532   2009.05.30 04:58 GMT+1 óra  
a mozgast hozzakotottem az idohoz. vagyis probaltam. sikerult is, csak nagyon fura, igy "remegve", akadozva mozog.
igy csinalom:
Kód:
//main.cpp
while (app->Run())
{
if (app->Active)
{
device->BeginBatch(D3DCOLOR_XRGB(100,147,247));

core->GetInput()->Update();

static double startTime = timeGetTime();
float elapsed = (float)(timeGetTime() - startTime);
startTime = timeGetTime();

core->SetTime(elapsed);
.....
}


ahol meg kell (pl. CPlayer.cpp Update-ben: )
Kód:
float _time = Core::Instance()->GetTimeSec();


az eltelt ido szamolasa miatt mozog akadozva?

ja a mozgas:
Kód:
if (input->KeyIsPress(DIK_W))
velocity.z = 1;
....

position.x += velocity.x * _time * speed;
position.z += velocity.z * _time * speed;
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
sirpalee - Tag | 1282 hsz       Online status #111510   2009.05.29 13:08 GMT+1 óra  
Nincsmit

Én ezért nem szeretem az fx fájlokat, túl sok tecnhika van bennük, inkább legyen minden, külön-külön, kis apró fájlokban.
raytraceisten és übermedic
   
xanat - Tag | 489 hsz       Online status #111486   2009.05.29 12:00 GMT+1 óra  
aha, ez lesz az... meg is van. koszi!
Nem tudtam, hogy igy nem lehet hasznalni... Hat minden nap tanul valamit az ember
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
sirpalee - Tag | 1282 hsz       Online status #111482   2009.05.29 11:46 GMT+1 óra  
Idézet
xanat :
mert hasznalom a PSSpecularNormal-ban is. Vagy azt "szamoljam" ujra?



Ez így nagyon gáz módszer. Írd meg mind a három függvényt egészében, szerintem ez a lesz a gond. Eddig nem is tűnt fel.

Jah ez lesz a gond, mert a PSNormal-al írni akarod a COLOR0 rendertargetet.

Jah meg másik apróság, nincsenek ilyen írható globális változók shader kódban. Ezek a registerekre vonatkozó változók, tehát ha írsz egy ilyet, akkor nem lehet megváltoztatni az eredményét. (kivéve DX11-ben, de az is sharelve van az összes shaderproci között)

Ezt a hozzászólást sirpalee módosította (2009.05.29 11:54 GMT+1 óra, ---)
raytraceisten és übermedic
   
xanat - Tag | 489 hsz       Online status #111481   2009.05.29 11:41 GMT+1 óra  
mert hasznalom a PSSpecularNormal-ban is. Vagy azt "szamoljam" ujra?
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
sirpalee - Tag | 1282 hsz       Online status #111468   2009.05.29 09:08 GMT+1 óra  
miért kívül van definiálva a normal? (a függvényen belül definiáld)

amúgy más furcsaságot nem veszek rajta észre.
raytraceisten és übermedic
   
xanat - Tag | 489 hsz       Online status #111467   2009.05.29 08:47 GMT+1 óra  
persze, a neve mas, ez a 4 van:
Kód:
float4 PSDiffuse(VS_OUTPUT In) : COLOR0
{
float4 outColor = tex2D(DiffuseTextureSampler, In.TexCoord);
float diffuse = saturate(dot(In.LightDir, normalize(LightDirection)));
return outColor * (LightAmbient + (diffuse * LightDiffuse * 1.2));
}

float3 normal = 0;
float4 PSNormal(VS_OUTPUT In) : COLOR0
{
float4 outColor = tex2D(DiffuseTextureSampler, In.TexCoord);
normal = 2.0 * tex2D(NormalTextureSampler, In.TexCoord) - 1.0;
float diffuse = saturate(dot(normal, normalize(In.LightDir)));
return outColor * (LightAmbient + (diffuse * LightDiffuse * 1.3));
}

float4 PSSpecular(VS_OUTPUT In) : COLOR0
{
float4 outColor = PSDiffuse(In);
float3 halfVector = normalize(LightDirection + In.EyeDir);
float4 specular = pow(dot(In.LightDir, halfVector), specPow);
return outColor + specular;
}

float4 PSSpecularNormal(VS_OUTPUT In) : COLOR0
{
float4 outColor = PSNormal(In);
float3 halfVector = normalize(In.LightDir + In.EyeDir);
float4 specular = pow(dot(normal, halfVector), specPow);
return outColor + specular;
}

kulon-kulon mind mukodik.
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
xanat - Tag | 489 hsz       Online status #111466   2009.05.29 08:46 GMT+1 óra  
kulon technika. De ha nem irom be a technikat, csak a lentebb emlitett PixelShader leirast, es lementem, mar akkor se tudja beolvasni. Most megcsinaltam ugy, hogy kulon fajlok, mukodik is, igy nez ki ni:
http://ilab.hu/jf/datas/users/1485-shot_normal.jpg
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
sirpalee - Tag | 1282 hsz       Online status #111465   2009.05.29 08:45 GMT+1 óra  
Ugye más a neve a másik pixel shader függvénynek? Más hibája elvileg nem lehet, bármennyi pixel shader függvényt tartalmazhat, elvileg.
raytraceisten és übermedic
   
fpeti - Törzstag | 1280 hsz       Online status #111464   2009.05.29 08:42 GMT+1 óra  
Xanat, külön pass-ok, vagy technikakba használod őket?
pl egy tech-el:
Kód:
technique en_kis_techem
{
pass pdiff // első pass
{
VertexShader = compile vs_1_0 vs_diffuse(); // vertex sh
PixelShader = compile ps_2_0 ps_diffuse();  // pixel sh
}

pass pspecu // második pass
{
VertexShader = compile vs_1_0 vs_spc();
PixelShader = compile ps_2_0 ps_spc();
}
}

(amúgy meg írd ide, mi a hibaüzenet)
   
xanat - Tag | 489 hsz       Online status #111456   2009.05.29 07:07 GMT+1 óra  
szuper, mukodik shaderrel is a kirajzolas, minden stimmel, minden fut, minden ok
azonban lenne egy kerdesem:

szerk.:
na ha mar postoltam... nem azt kerdezem amit eredetileg akartam, es ez akar mehetne a dx topicba is...
van egy .fx fajlom.
Ha csak egyetlen PixelShader leirast (nemtudom hogy hivjak szaknyelven... ) hasznalok, akkor be tudom olvasni, de ha mar van benne 2, akkor a D3DXCreateEffectFromFile(...) fgv. hibaval ter vissza.

a PixelShader leiras alatt ilyet ertek:
Kód:
float4 PSDiffuse(VS_OUTPUT In) : COLOR0
{
float4 outColor = tex2D(DiffuseTextureSampler, In.TexCoord);
float diffuse = saturate(dot(In.LightDir, normalize(LightDirection)));
return outColor * (LightAmbient + (diffuse * LightDiffuse * 1.2));
}

ha ilyenbol mar ketto, vagy annal tobb van, akkor nem mukodik. Miert?

De vegulis nem problema, mert tehetem kulon .fx fajlba a diffuse, specular, normal, normalspecular-t, de azert erdekelne, h miert van ez igy.

Ezt a hozzászólást xanat módosította (2009.05.29 08:09 GMT+1 óra, ---)
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
sirpalee - Tag | 1282 hsz       Online status #111406   2009.05.28 07:58 GMT+1 óra  
Használj memcpy-t , de ugyanaz a végeredmény.
raytraceisten és übermedic
   
xanat - Tag | 489 hsz       Online status #111404   2009.05.28 07:55 GMT+1 óra  
szuper, eddig is igy akartam, csak nem jottem ra hogy hogy kell... az ugy hulyeseg, ha csinalok egy for ciklust, es "atmasolom" lekerdezes elott az adatokat a lastKeyState-be a currKeyState-bol?
mert most igy csinalom, es mukodik!
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
xanat - Tag | 489 hsz       Online status #111403   2009.05.28 07:47 GMT+1 óra  
azt hasznalom, amit lentebb Asylum irt be, ami szinte ugyan az, mint amit en irtam meglejjebb megprobalom ezzel a dupla dologgal.

mivel ez egy bool fgv., csak fogom es pl.:
Kód:
if (Core::Instance()->GetInput()->KeyIsPressed(DIK_SPACE))
//akkor csinal eztmegazt
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
sirpalee - Tag | 1282 hsz       Online status #111399   2009.05.28 07:16 GMT+1 óra  
Milyen függvényt használsz most? És hogyan hívod meg?

Amúgy én azt csináltam dinputnál, hogy a lenyomott billentyűk dupla bufferelve vanak, mindig letárolom az előző frame állását, és úgy tudom nézni, hogy csak egyszer legyen lenyomva. És akkor lehet nézni a released-e.
raytraceisten és übermedic
   
xanat - Tag | 489 hsz       Online status #111397   2009.05.28 07:08 GMT+1 óra  
oke, jogos... viszont arra nem talalok leirast, hogy miert van az, hogy ha a KeyIsPressed(const int _key)-t csak egyszer hivom meg, akkor mukodik rendesen, ha mar legalabb ketszer, akkor bugos?
XNA-ban ugyan ez mukodott, de lehet (sot valoszinu ) hogy en csinalok valamit rosszul.
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
sirpalee - Tag | 1282 hsz       Online status #111394   2009.05.28 06:47 GMT+1 óra  
Nem mondtam, hogy találjon meg mindent, ahhoz kell egy kis háttér, hogy egy hivatalos dokumentációból meg. De ahogy te is írtad, ezek alap dolgok. De most mit lehet mondani, egy olyan problémára, ami le van írva, feketén-fehéren?

Amúgy kerültem már szembe olyan helyzettel, hogy nem volt hivatalos dokumentáció, több feature-hez is, és bogarászd ki, hogy működik. Ami meg volt dokumentáció, egy fejlesztői közösség oldalán, hibás volt (illetve pár fontos részletre nem tért ki).

Xanat, nem kell durcizni, csak azt mondtam, hogy az alap dolgoknak nézz utána, ha úgyis foglalkozni akarsz vele. Egy idő után idegesítő, hogy annyiból áll a válasz, hogy lapozzam fel az sdk-t, és másoljam ki belőle a szöveget. Annak bárki utána tud nézni.

Próbálj meg önnálóbb lenni, majd egyszer mint programozó szembekerülhetsz olyanokkal, jön valaki, nem hozzáértő, és mondja csináld meg. Legyen szép, és gyors. Aztán jöjj rá magadtól, meg bújj át több száz tanulmányt. Az a tudás a legértékesebb amit magadtól szerzel meg. De ha azt a kezet is megharapod aki segíteni akar...
raytraceisten és übermedic
   
mark576 - Tag | 256 hsz       Online status #111391   2009.05.28 05:55 GMT+1 óra  
Ez a mindent megoldok magam mert megtalálom elég idealista duma. Elolvashatok egy raklapnyi könyvet, meg amit akarok, ha egyszer a másik már 15 éve ezt csinálja úgyis jobban fog tudni dolgokat. Nem azért mert hülye vagyok, hanem, mert egész egyszerűen ő tapasztalatból tudja már ezeket és tudja mennyi szívás lesz, ha néhány dolgot nem úgy írok meg, ami első látásra értelmetlennek is tűnhet.. Ez lehet architektúrális probléma, vagy egyszerű optimalizálás is stb.
Itt most elég alapok voltak, amiknek tényleg utána lehet nézni és tényleg falakba ütközik az ember, ha nem bújja a doksikat, de azért ez mindenre messze nem elég.
   
xanat - Tag | 489 hsz       Online status #111390   2009.05.28 05:49 GMT+1 óra  
eddig meg rajtad kivul senki nem baszott le... erdekes... namind1, igazad van, biztos bennem van a hiba... megyek is, oszt' nemkerdezek tobbet ^^
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
sirpalee - Tag | 1282 hsz       Online status #111387   2009.05.28 04:54 GMT+1 óra  
Nem arról van szó, hogy szégyen feltenni egy kezdő kérdés, hanem el kéne olvasni egy DirectX SDK-t például. Ott minden szájbarágósan és részletesen le van írva. Ahelyett, hogy olvasnál, inkább kérdezel, ilyen hozzáállással nem fogsz sokáig eljutni.

Aki DX-el el kezd foglalkozni, feltételezhető, hogy legalább egyszer elolvassa az SDK-t, hiszen azért van. Ha olyan kérdésekkel jössz, ami le van írva, pontosan, akkor ne csodálkozz, hogy hülyének néznek (és nem alaptalanul).

Tanulj meg google-t használni, és tanulj meg olvasni. Ajánlom kezd a DX SDK dokumentációjával, ott szépen minden alaposan le van írva. Bár feltételeznek egy alap programozói tudást, de gondolom az megvan.

Azért hagyd, mert a hozzáállásoddal van gond. És tőled trógerség, hogy nem nézel utána semminek sem. Ne csodálkozz, hogy lebasznak.

Én is voltam kezdő, de nem kérdeztem meg minden apróságot fórumban, maximum a maya-val kapcsolatban, amikor tényleg kellett valami gyorsan. De arról is leszoktam, mert mindig előbb oldottam meg, olvasva a hivatalos dokumentációt, minthogy válaszolnak rá. Ami meg megválaszolatlan kérdéseim vannak feltéve itt-ott, azokra kb az api fejlesztői sem tudtak semmit sem mondani.
raytraceisten és übermedic
   
xanat - Tag | 489 hsz       Online status #111386   2009.05.28 04:42 GMT+1 óra  
ebbol is csak az a tanulsag, h semmi "kezdo kerdest" nem lehet feltenni, mert a "nagy okosok" leb.sszak azonnal, h ha ennyire nem megy, akkor hagyd... hat ez tenyleg lelkesito, meg tudom erteni, h kezd az oldal kihalni...
na sebaj, majd jelentkezek ha van valamim, meg kerdezoskodok kulfoldi oldalakon, ott nem akkora trogerek, h a haladok leb.sszak a kezdoket, hanem segitenek nekik, es nem mondjak, h inkabb hagyd, mert hulye vagy hozza...
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
xanat - Tag | 489 hsz       Online status #111385   2009.05.28 04:41 GMT+1 óra  
sirpalee

Ha ennyire nem vagy tisztában a d3d pipeline-val, akkor inkább hagyd a c++/d3d-t. Van másik rendszer, ahol ezek okosan el vannak rejtve előled.

1.: valamikor meg kell tanulni, te se igy szulettel
2.: ja kuz, ez nekem is tetszett!
Van másik rendszer, ahol ezek okosan el vannak rejtve előled
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
dollocska - Tag | 6 hsz       Online status #111384   2009.05.28 04:35 GMT+1 óra  
köszönöm

   
mark576 - Tag | 256 hsz       Online status #111380   2009.05.28 03:52 GMT+1 óra  
Idézet
dollocska :
köszi ezeket, de életemben most csinálok elősször ilyet. ciki nem ciki de ez nekem így kínai... valami egyszerűbb leírás?


Egyszerű leírás nincs, ha semmit nem tudsz. Venni kell egy könyvet:
http://www.computerbooks.hu/EK-OOC++/
   
sirpalee - Tag | 1282 hsz       Online status #111379   2009.05.28 03:52 GMT+1 óra  
A c++ for dummies sorozat pont errő való. Vagy szerezd be amazonról, vagy töltsd le valahonnan pdf-ben.

A felettem szólóhoz komment, magyar "szakkönyvet" sose végy ilyen témában.
raytraceisten és übermedic
   
dollocska - Tag | 6 hsz       Online status #111378   2009.05.28 03:46 GMT+1 óra  
köszi ezeket, de életemben most csinálok elősször ilyet. ciki nem ciki de ez nekem így kínai... valami egyszerűbb leírás?

   
sirpalee - Tag | 1282 hsz       Online status #111377   2009.05.28 03:33 GMT+1 óra  
Idézet
dollocska :
Sziasztok! Segítsetek

Olyat kell csinálnom h "kérjen be egy számot" , meg olyat h valami szöveget ki kell íratnom egymás alá úgy, h sorszámot tegyen mindegyik elé. Most ismerkedem éshátna...értitek

Előre is köszi mindent.



link
raytraceisten és übermedic
   
mark576 - Tag | 256 hsz       Online status #111376   2009.05.28 03:21 GMT+1 óra  
Idézet
dollocska :
Sziasztok! Segítsetek

Olyat kell csinálnom h "kérjen be egy számot" , meg olyat h valami szöveget ki kell íratnom egymás alá úgy, h sorszámot tegyen mindegyik elé. Most ismerkedem éshátna...értitek

Előre is köszi mindent.


http://www.htmlhelpcentral.com/messageboard/showthread.php?t=4359
   
dollocska - Tag | 6 hsz       Online status #111375   2009.05.28 03:15 GMT+1 óra  
Sziasztok! Segítsetek

Olyat kell csinálnom h "kérjen be egy számot" , meg olyat h valami szöveget ki kell íratnom egymás alá úgy, h sorszámot tegyen mindegyik elé. Most ismerkedem éshátna...értitek

Előre is köszi mindent.

   
Kuz - Törzstag | 4455 hsz       Online status #111367   2009.05.27 16:21 GMT+1 óra  
"Van másik rendszer, ahol ezek okosan el vannak rejtve előled."
Ez tetszett...
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???

   
sirpalee - Tag | 1282 hsz       Online status #111364   2009.05.27 15:24 GMT+1 óra  
Idézet
xanat :
szerk.2:
ok, modelles hulyeseg megoldva, nemtudtam, hogy nem az Update(), hanem a Draw() metodusba kell tenni a kovetkezot:
Kód:
d3ddevice->SetTransform(D3DTS_WORLD, &world);




Ha ennyire nem vagy tisztában a d3d pipeline-val, akkor inkább hagyd a c++/d3d-t. Van másik rendszer, ahol ezek okosan el vannak rejtve előled.
raytraceisten és übermedic
   
mark576 - Tag | 256 hsz       Online status #111354   2009.05.27 12:14 GMT+1 óra  
xanat: Szerintem nézd át ezt a kis engine-t és tanulmányozd, hogy a különböző burkoló osztályokkal hogyan oldja meg ezeket az alapokat a szerző: http://monster3d.freeweb.hu/
   
xanat - Tag | 489 hsz       Online status #111351   2009.05.27 11:32 GMT+1 óra  
hat ugytunik nem csak itt van problema... ^^
ha mar 2 modelt akarok kirajzolni, az se megy, az elso model nem latszik, beteszi a 2. poziciojara, es csak 1 latszodik... valami nagy baj van valami nagyonnagyon nagy baj
amugy igen, dinput

szerk.:
ja, itt nem a fuggvennyel lesz a baj, hanem valami nagyon el van baszarinta. Akarmit ha tobbszor meghivok, az osszefossa magat. ez nekem magas

szerk.2:
ok, modelles hulyeseg megoldva, nemtudtam, hogy nem az Update(), hanem a Draw() metodusba kell tenni a kovetkezot:
Kód:
d3ddevice->SetTransform(D3DTS_WORLD, &world);

ez mostmar oke, de szerintem akkor sincs rendben minden. Asylum, majd szolj, ha 1x raersz, azt atlokom msnen. Nem sok

Ezt a hozzászólást xanat módosította (2009.05.27 11:48 GMT+1 óra, ---)
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
Asylum - Törzstag | 5440 hsz       Online status #111350   2009.05.27 11:29 GMT+1 óra  
talán igy jobb lenne:

Kód:
static bool released = true;

if( released )
{
    if( keystate[key] & 0x80 )  // dinput?
        released = false;
}
else
{
    if( !(keystate[key] & 0x80) )
        released = true;
}


mondjuk nem tudom itt mért lenne baj a static, olyan mint egy globális változo ami csak ezen a fven belül látszik.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
xanat - Tag | 489 hsz       Online status #111344   2009.05.27 05:12 GMT+1 óra  
hat en... amugy ha minden igaz ugy se mukodik. mind1, egyelore hagyom, ugyse hasznalom csak 1 helyen, majd kesobb kitalalom hogy legyen, hogy jo legyen

Ezt a hozzászólást xanat módosította (2009.05.27 05:21 GMT+1 óra, ---)
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
sirpalee - Tag | 1282 hsz       Online status #111343   2009.05.27 05:12 GMT+1 óra  
Mert statikus a released csináld meg registerbe. Ezért nem tűnt fel, mert ki az aki lokális változót statikusként definiál...
raytraceisten és übermedic
   
xanat - Tag | 489 hsz       Online status #111342   2009.05.27 05:03 GMT+1 óra  
hm, erdekes tapasztalat:
ha kivettem minden mast ami az inputhoz kapcsolodik hivas (KeyIsPress(int _key)) akkor mukodik. Szoval ez a "cucc" akkor mukodik, ha csak egy helyen hivom meg. Ez igy nem jo
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
xanat - Tag | 489 hsz       Online status #111341   2009.05.27 04:53 GMT+1 óra  
jaja, bentebb van. Ennek ugyebar azt kellene csinalnia, hogy ha fel evig nyomom a megfelelo bill-t, akkor is csak 1x lesz true a visszateresi ertek. Ha felengedem a billentyut, akkor released = true;, tehat ujra lehet vizsgalni, hogy le van-e nyomva a bill. Namost nem ez tortenik olyan, mintha a releases dolog nem lenne. Ahogy neztem a megjelolt sornal lesz a gond, mert hiaba van lenyomva az adott key, o azt mondja, hogy nincs, ezert a released = true; utasitas vegrehajtodik...
az az erdekes, hogy eddig mukodott, es azota (ha jol emlekszek ) akkor nem valtoztattam ezen semmit.
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
sirpalee - Tag | 1282 hsz       Online status #111340   2009.05.27 04:50 GMT+1 óra  
Mi a hiba?

Gondolom itt nem látszik, de azért rákérdezek, a második if-nél egy tabal bentebb van a sor nem?
raytraceisten és übermedic
   
xanat - Tag | 489 hsz       Online status #111339   2009.05.27 04:41 GMT+1 óra  
Kód:
bool CInput::KeyIsPressed(const int _key)
{
static bool released = true;

if (keyState[_key] && released)
{
released = false;
return true;
}

if (!keyState[_key] && !released) //<--itt van a hiba
released = true;

return false;
}


eddig mukodott... -.-' most miert nem?

egernel ugyan ezt csinalom, es ott mukodik...

szerk.:
felve merem/mertem megkerdezni, mert megint le leszek kijabalva, hogy milyen hulyeseget kerdezek...
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
sirpalee - Tag | 1282 hsz       Online status #111304   2009.05.26 14:19 GMT+1 óra  
Jaaa, azt nem mondtad, hogy abszolút hivatkozol rá, relatívan kell.

HGE alatt más lehetőséged nem is igazán lesz, ahogy ismerem a motort.
raytraceisten és übermedic
   
keedav - Tag | 8 hsz       Online status #111303   2009.05.26 14:13 GMT+1 óra  
Meglett a megoldás: a lockolt területre relatívan kellett hivatkozni nem abszolút módon.
Lockolni meg szükséges, mert pixelenként kell kirajzolni teljesen alaktalan formákat. De minél ritkábban próbálom tenni. Mást megoldást pixelenkénti rajzolásra nem láttam.

   
sirpalee - Tag | 1282 hsz       Online status #111291   2009.05.26 13:15 GMT+1 óra  
Igen, de a texture_getwidth alapján meg tudod mondani, hogy a videómemóriában mekkora a textúra, és az alapján lekérdezni. (és az alapján módosítani az elérni kívánt textúráka koordinátákat)

Amúgy gondold át az elérni kívánt eredményt, biztos nem tudod lock nélkül megoldani? A lockolás nagyon költséges művelet.
raytraceisten és übermedic
   
keedav - Tag | 8 hsz       Online status #111289   2009.05.26 13:08 GMT+1 óra  
Igen ez megvan, de a Texture_GetWidth az egész textúra méretét adja vissza, és a lock meg csak egy kis rész tömbjét és annak már nem annyi a méretei.

   
sirpalee - Tag | 1282 hsz       Online status #111287   2009.05.26 12:08 GMT+1 óra  
Idézet
keedav :
Üdv mindenkinek. Lenne egy problémám a Haaf's Game Enginben. (nem találtam külön topicot, ezért ide írtam). Szóval lenne egy nagy textúra, és Texture_Lock()-kal egy kis részt szeretnék belockolni belőle. Ez visszatér egy DWORD egydimenziós tömbbel, ahol a színeket így lehet olvasni: dtex[y*tex_width+x]. A probléma az, hogy egyes videókártyákon kettő hatványára kerekíti a textúraméreteket, így a belockolt részt is kerekíti, így nem annyi a tényleges szélessége mint amennyit megadtam. Nem lehet valahogy megnézni, hogy a belockolt rész tényleges mérete mekkora? Vagy hogy a DWORD tömb hány elemet tartalmaz? Innen már meglenne a szélesség és lehetne hivatkozni a pixelekre.



Kerüld a nem kettő hatványú textúrákat, főleg ha régebbi kártyákat is akarsz használni. Úgy egységesebb.

De HGE-ben van két függvény, azokkal elsőnek kérdezd le a textúra méretét, és utána lockold a megfelelő részeket.

Texture_GetWidth
Texture_GetHeight

(és itt a második változót false-ra állítsd, így a videókarin lévő textúra méreteket kapod vissza)
raytraceisten és übermedic
   
keedav - Tag | 8 hsz       Online status #111285   2009.05.26 11:54 GMT+1 óra  
Üdv mindenkinek. Lenne egy problémám a Haaf's Game Enginben. (nem találtam külön topicot, ezért ide írtam). Szóval lenne egy nagy textúra, és Texture_Lock()-kal egy kis részt szeretnék belockolni belőle. Ez visszatér egy DWORD egydimenziós tömbbel, ahol a színeket így lehet olvasni: dtex[y*tex_width+x]. A probléma az, hogy egyes videókártyákon kettő hatványára kerekíti a textúraméreteket, így a belockolt részt is kerekíti, így nem annyi a tényleges szélessége mint amennyit megadtam. Nem lehet valahogy megnézni, hogy a belockolt rész tényleges mérete mekkora? Vagy hogy a DWORD tömb hány elemet tartalmaz? Innen már meglenne a szélesség és lehetne hivatkozni a pixelekre.

   
xanat - Tag | 489 hsz       Online status #110976   2009.05.24 06:30 GMT+1 óra  
ja ertem.
es bocs...
Elsosorban nem a program a hulye, hanem a felhasznalo nem tudja hasznalni.
   
sirpalee - Tag | 1282 hsz       Online status #110975   2009.05.24 06:29 GMT+1 óra  
Idézet
xanat :
az miert van, hogy ha a DInputot igy allitom be:
Kód:
...

hiaba nyomogatom az ESC-t. viszont, ha a DInput nem ugy van beallitva, akkor mukodik. Miert fugg ossze a ketto?



Mivel exkluzív módban hozod létre, így a szokásos win message loop nem megy, oda már nem jutnak el az üzenetek. Próbáld non_exclusive módban létrehozni, vagy a dinputon belül kezeld le a cucckoat.

Amúgy ez nem c++ kérdés, hanem DirectX.
raytraceisten és übermedic
   
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] [25] [30] [35] [40] [45] [50] [55] [60] [65] > 70 < [75] [80] [85] [90] [95] [100] [105] [110] [115] [120] [125] [130] [135] [140] [141]