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

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2198
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1654
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] [143]
~Cre@tine~> - Tag | 702 hsz       Online status #41144   2006.12.18 00:30 GMT+1 óra  
Idézet
MaximumViolence :
A Dev-Cpp 1etlen előnye szerintem,hogy van
hozzá magyar nyelvi csomag,de egy olyan C fordító amit delphiben írtak?!
Inkább a Code::Blocks,vagy miért ne lenne jó kezdésnek a Visual???


Ez pont olyan kérdés minek Java-hoz JBuilder amikor a JCreator sokkal egyszerűbb konzolos programokat irogatni. Teljesen fölösleges a bonyolultabbal kezdeni. Minek rajzolgasson formokat, meg gombokat VC projectekben, amikor még egy Hello world-öt se tud leprogramozni? Jó persze express változatot csak konzolra, meg OGL, DX-re lehet használni, de akkor is szerintem túl bonyolult ez a kezdéshez és csak elmegy a kedve az egésztől.

   
Csaba42 - Törzstag | 946 hsz       Online status #41143   2006.12.18 00:22 GMT+1 óra  
Idézet
MaximumViolence :
A Dev-Cpp 1etlen előnye szerintem,hogy van
hozzá magyar nyelvi csomag,de egy olyan C fordító amit delphiben írtak?!
Inkább a Code::Blocks,vagy miért ne lenne jó kezdésnek a Visual???


Jó az kezdésnek is, de akkor mielőtt nekiesne a programozásnak a delikvens, szánnia kell rá egy kevéske időt, hogy megismerkedjen a bonyolultan szerteágazó kezelőfelülettel.

   
MaximumViolence - Törzstag | 1020 hsz       Online status #41142   2006.12.18 00:14 GMT+1 óra  
A Dev-Cpp 1etlen előnye szerintem,hogy van
hozzá magyar nyelvi csomag,de egy olyan C fordító amit delphiben írtak?!
Inkább a Code::Blocks,vagy miért ne lenne jó kezdésnek a Visual???
Ez egy reszeg post...

   
~Cre@tine~> - Tag | 702 hsz       Online status #41139   2006.12.17 23:46 GMT+1 óra  
Idézet
kicsy :
Hát az stdio.h a C standard library része, de tény, lehet használni C++-ban is
Egyébként én is inkább valami egyszerűbb IDE-t ajánlanék, Code::Blocks pl, de kezdésnek még DevCpp is megteszi.


Ja igaz, de az include-olás miatt is ha nagyon szőrözni akarunk. Nekem legfőképpen attól c++ egy porogram, hogy vannak osztályok öröklés stb.

Szerintem is elég lenne a Code::Blocks. Dev c++ azért nem jó, mert még a megjegyzésekben se szereti az ékezetes karaktereket és kapsz egy csomó error-t. Bár lehet a legújabb változat már unicode, rég használtam már.

   
kicsy - Szerkesztő | 4304 hsz       Online status #41120   2006.12.17 14:27 GMT+1 óra  
Mondd h elgépelted
kicsy ● SilentVertigo Team - project Solarah
http://blog.yscik.com
   
magic - Tag | 41 hsz       Online status #41113   2006.12.17 13:19 GMT+1 óra  
hát én se vagyok magamnál az biztos.
CV VC ezeket össze keverni.

   
Csaba42 - Törzstag | 946 hsz       Online status #41107   2006.12.17 12:51 GMT+1 óra  
Idézet
magic :
De akkor miért cpp a kiterjesztés?
Még soha nem láttam C kódot cpp ben.

Látszik hogy nem ismerem a CV-t.


Egy C++ fordító kompatibilis egy C fordítóval. Visszafelé nem. Attól még, hogy .cpp egy fájl kitrejesztése, lehet benne C kódot alkalmazni, max rosszalóan fognak Rád nézni. De kit érdekel, konzolos proginál én sokkal jobban szeretem a printf-et, mint a cout-ot. Egyelőre az én dolgom, hogy mit írok, hogy írom meg a programom, és akinek nem tetszik, az csináljon jobbat Hogy is jön ide a CV? Bocsi, ha most nem pörög az agyam, hullafáradt vagyok, mivel korán keltem.

   
TDawn - Tag | 14 hsz       Online status #41097   2006.12.17 12:29 GMT+1 óra  
Köszi a hozzászólásokat mindenkinek, sikerült megoldanom a problémát. Kicsit keresgéltem MSDN-en és sikerült beállítanom rendesen a VC++ 2005-t. Egyébként az Empty Project indítása jó ötlet, bejött, nagyon köszi

   
magic - Tag | 41 hsz       Online status #41094   2006.12.17 12:17 GMT+1 óra  
De akkor miért cpp a kiterjesztés?
Még soha nem láttam C kódot cpp ben.

Látszik hogy nem ismerem a CV-t.

   
kicsy - Szerkesztő | 4304 hsz       Online status #41087   2006.12.17 11:32 GMT+1 óra  
Idézet
~Cre@tine~> :
Ebből az 5 sorból ezt még nehéz eldönteni.
De érdekes rögtön VC-vel kezdeni a c/c++ tanulást. Jól beletenyerelt TDawn.
Én csak 2 év után mertem VC-re átállni.



Hát az stdio.h a C standard library része, de tény, lehet használni C++-ban is
Egyébként én is inkább valami egyszerűbb IDE-t ajánlanék, Code::Blocks pl, de kezdésnek még DevCpp is megteszi.
kicsy ● SilentVertigo Team - project Solarah
http://blog.yscik.com
   
Csaba42 - Törzstag | 946 hsz       Online status #41085   2006.12.17 11:19 GMT+1 óra  
TDawn: kapcsold ki a Project Settingsben a Precompile header-t, vagy valami ehhez hasonlót Bocsi, már egy ideje nem programoztam, és eddig én is mindig empty projecttel indítok.

   
~Cre@tine~> - Tag | 702 hsz       Online status #41082   2006.12.17 11:13 GMT+1 óra  
Ja tényleg TDawn includolása c magic-é viszont c++. Eszméletlenül kardinális.

   
~Cre@tine~> - Tag | 702 hsz       Online status #41079   2006.12.17 11:06 GMT+1 óra  
Idézet
kicsy :
No meg ez nem C++ program, hanem C


Ebből az 5 sorból ezt még nehéz eldönteni.
De érdekes rögtön VC-vel kezdeni a c/c++ tanulást. Jól beletenyerelt TDawn.
Én csak 2 év után mertem VC-re átállni.

   
kicsy - Szerkesztő | 4304 hsz       Online status #41067   2006.12.17 10:16 GMT+1 óra  
No meg ez nem C++ program, hanem C
kicsy ● SilentVertigo Team - project Solarah
http://blog.yscik.com
   
beast - Törzstag | 1241 hsz       Online status #41064   2006.12.17 08:57 GMT+1 óra  
Ha mondjuk egy "simple console application"-t hozol létre, akkor még odapakol egy stdafx.cpp és stdafx.h fájlt is, amit a main-ben ugye inludeolnod kellene. Mivel látom nem includeoltad az stdafx.h-t, ezért dobott neked egy ilyen üzenetet. Vagy includeold, vagy empty projectet hozz létre...

   
~Cre@tine~> - Tag | 702 hsz       Online status #41060   2006.12.17 08:20 GMT+1 óra  
Jájj azért ékezetet DOS-ban ne nagyon használj. Persze a hiba valóban a header-től van. Amúgy mákod van hogy VC a kompiler mondjuk DEV c kapásból vagy 40 hibát adott volna az ékeztek miatt mégha ez csak megjegyzés is!

   
magic - Tag | 41 hsz       Online status #41056   2006.12.17 07:25 GMT+1 óra  
#include <iostream>

   
TDawn - Tag | 14 hsz       Online status #41055   2006.12.17 07:16 GMT+1 óra  
Sziasztok!

A segítségeteket szeretném kérni. Most kezdek ismerkedni a "Visual C++" -al és egyáltalán a programozással. Egy nagyon egyszerű kis feladattal kezdtem, de a "VC++ 6"-nak sem és a "VC++ 2005 Express"-nek sem tetszik:

#include <stdio.h>
void main (void)
{
printf ( "Első példaprogram! " );
}



"VC++ 6"-ban az alábbi üzenetet kapom build után:

--------------------Configuration: First - Win32 Debug--------------------
Copying contents file...
1 f jl m sol sa t”rt‚nt meg.
Making help include file...
Making help file...
1 f jl m sol sa t”rt‚nt meg.
Compiling resources...
Compiling...
StdAfx.cpp
Compiling...
First.cpp
FirstDlg.cpp
Elsokod.cpp
c:\program files\microsoft visual studio\myprojects\first\elsokod.cpp(6) : fatal error C1010: unexpected end of file while looking for precompiled header directive
Generating Code...
Error executing cl.exe.

First.exe - 1 error(s), 0 warning(s)

"VC++ 2005"-ben pedig ezt:

------ Build started: Project: First, Configuration: Debug Win32 ------
Compiling...
stdafx.cpp
c:\documents and settings\arkhanorh\dokumentumok\visual studio 2005\projects\first\first\stdafx.h(33) : fatal error C1083: Cannot open include file: 'afx.h': No such file or directory
Build log was saved at "file://c:\Documents and Settings\Arkhanorh\Dokumentumok\Visual Studio 2005\Projects\First\First\Debug\BuildLog.htm"
First - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


Mit ronthattam itt el, vagy mi nincs jól beállítva?

   
gaborlabor - Moderátor | 4449 hsz       Online status #40917   2006.12.16 04:00 GMT+1 óra  
nagyjából erre gondoltam én is, csak a beszúrt példa volt rossz.
tehát lemérem az időt, egy változóban meg benne van az előző időpont. a különbség alapján számoltatok, aztán renderelek, és végül a változóba eltárolom a mostani időpontot. így tervezem, csak azt nem tudom, hogy létezik-e másik függvény, vagy megoldás az idő nagyon gyors lekérdezésére.

   
Matzi - Szerkesztő | 2529 hsz       Online status #40911   2006.12.16 03:47 GMT+1 óra  
Mi lenne, ha minden ciklusban csak egyszer mérnéd meg, és mindig a legutóbbi mérés óta eltelt időt adnád csak át? Akkor a mérést is beleszmámítaná az eredménybe, így nem lenne vele gond.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
gaborlabor - Moderátor | 4449 hsz       Online status #40889   2006.12.15 15:14 GMT+1 óra  
Köszi a helpet, hétfőn ki is tudom próbálni...
Lenne még egy kérdésem. Ha FPS számoló függvényt szeretnék írni, akkor ugye számolnom kell a 2 renderelés között eltelt időt. Vagy ha olyan játékot szeretnék írni ami különböző sebességű gépeken is hasonlóan fut, akkor is bele kell számolnom az eltelt időt (pl a karakterek mozgatásához). A kérdésem az volna, hogy hogyan lehet ezt a lehető legegyszerűbben megoldani, és gyors is legyen. Eddig ilyet próbáltam ki:
Kód:
   time_t start,end;
   double eltelt_ido;
   time (&start);
   // feladatok végrehajtása
   time (&end);
   eltelt_ido = difftime (end,start);

Van ennél jobb/hatékonyabb megoldás? Mit javasoltok?

   
Eagle_Lor - Tag | 54 hsz       Online status #40880   2006.12.15 12:50 GMT+1 óra  
Idézet
gaborlabor :
Köszi a segítséget.
Hát annyi bizonyos, hogy semmit nem állítottam el. Az érdekesség pedig az, hogy itthon megy, a kollégiumban megy, az iskolában az egyik teremben megy, a másikban meg nem. Mindenhol windows xp sp2 van, és sehol nincs semmi spéci eset.
A Project Settings erdejében én elveszek. Pontosan mikett is kéne ott keresnem?



Ugyanez a probléma már a MS Visual C++ témában is felmerült, a megoldást itt találod.

   
gaborlabor - Moderátor | 4449 hsz       Online status #40847   2006.12.15 09:30 GMT+1 óra  
Köszi a segítséget.
Hát annyi bizonyos, hogy semmit nem állítottam el. Az érdekesség pedig az, hogy itthon megy, a kollégiumban megy, az iskolában az egyik teremben megy, a másikban meg nem. Mindenhol windows xp sp2 van, és sehol nincs semmi spéci eset.
A Project Settings erdejében én elveszek. Pontosan mikett is kéne ott keresnem?

   
Csaba42 - Törzstag | 946 hsz       Online status #40821   2006.12.15 04:53 GMT+1 óra  
Idézet
gaborlabor :
Hello.
Lenne egy kis problémám...[...]


Valószínűleg a Project Settings-eddel lesz gond, szerintem ott nézz körül!

   
gaborlabor - Moderátor | 4449 hsz       Online status #40820   2006.12.15 04:45 GMT+1 óra  
Hello.
Lenne egy kis problémám... MS Visual Studio 2005-ben írok egy console application-t, C-ben, és 5 gépből 2-n ezt a hibaüzenetet kapom:


A kódban semmi gépfüggő dolog nincs, ANSI-C az egész. Semmi ötletem nincs, mert ugyanez történik Debug fordítással és Release fordítással is.
Ha valaki tud, pls segítsen!
THX

   
Joga - Törzstag | 1791 hsz       Online status #40753   2006.12.14 05:10 GMT+1 óra  
Ja tényleg, rosszul írtam be........
(ಠ ›ಠ) Stewie!

   
MaximumViolence - Törzstag | 1020 hsz       Online status #40752   2006.12.14 05:07 GMT+1 óra  
"Mert Isten úgy szerette a világot, hogy az ő egyszülött fiát adta, hogy aki hisz Őbenne el ne vesszen, hanem játékfejlesztő legyen."

Joga kicsit beteg
Ez egy reszeg post...

   
Joga - Törzstag | 1791 hsz       Online status #40749   2006.12.14 04:56 GMT+1 óra  
Dosra kéne......
(ಠ ›ಠ) Stewie!

   
Hacker - Törzstag | 567 hsz       Online status #40747   2006.12.14 04:52 GMT+1 óra  
Idézet
Joga :
Függvények kénének egérhez és billentyűzethez:
Egér:
Be- kikapcsolás.Elrejtés,stb
Pozícionálás
Keret meghatározása(ahol mozoghat)
Koordináták, gombok lekérdezése.
Billntyűzet:
Egy bizonyos utasítás után elmenti a billentyűk állapotát egy bool tömbbe



Aha és mihez gondoltad? Dos, Windows, Linux, Mac?
No [img] !
Programozz ne háborúzz!!!!

   
Joga - Törzstag | 1791 hsz       Online status #40740   2006.12.14 03:44 GMT+1 óra  
Függvények kénének egérhez és billentyűzethez:
Egér:
Be- kikapcsolás.Elrejtés,stb
Pozícionálás
Keret meghatározása(ahol mozoghat)
Koordináták, gombok lekérdezése.
Billntyűzet:
Egy bizonyos utasítás után elmenti a billentyűk állapotát egy bool tömbbe
(ಠ ›ಠ) Stewie!

   
TPG - Tag | 3402 hsz       Online status #39412   2006.12.02 12:04 GMT+1 óra  
Idézet
Csaba42 :
Hehe, a régi nóta sosem halkul Az ilyen kérdésekre kéen egy FAQ, vagy valami hasonló cucc.


Nem rossz ötlet, le lehetne koppintani a Gamedev.net-es Forum FAQ-kat és valami látható helyre kitenni őket.
Reality is almost always wrong. - House

   
Csaba42 - Törzstag | 946 hsz       Online status #39411   2006.12.02 12:02 GMT+1 óra  
Idézet
barcafiu :
Milyen progival érdemes kezdeni? És ezt hol tudom letölteni?


Hehe, a régi nóta sosem halkul Az ilyen kérdésekre kéen egy FAQ, vagy valami hasonló cucc.

   
barcafiu - Tag | 128 hsz       Online status #39386   2006.12.02 06:45 GMT+1 óra  
Milyen progival érdemes kezdeni? És ezt hol tudom letölteni?
gra-fika
   
Orphy - Törzstag | 1893 hsz       Online status #39342   2006.12.01 13:35 GMT+1 óra  
Hmmm, ez a dll-es dolog nálam még mindig áll.

Állítólag az is megoldás lenne, ha a c++os projektet le tudnám fordítani ActiveX vagy COM dll-nek.

Ebben tud valaki segíteni?
   
Eagle_Lor - Tag | 54 hsz       Online status #39245   2006.12.01 09:40 GMT+1 óra  
Idézet
Hacker :
OK thx most már értek mindent és gondolom a double-el is ugyanez a helyzet.



A doublenál is jelentkeznek ugyanezek a hibák, csak ott a dupla precizitás miatt kisebb számoknál.

   
Hacker - Törzstag | 567 hsz       Online status #39243   2006.12.01 09:28 GMT+1 óra  
OK thx most már értek mindent és gondolom a double-el is ugyanez a helyzet.
No [img] !
Programozz ne háborúzz!!!!

   
Eagle_Lor - Tag | 54 hsz       Online status #39242   2006.12.01 09:21 GMT+1 óra  
Idézet
Hacker :
Köszi így már működik, de kíváncsi lennék, h miért nem működik egy ilyen egyszerű összehasonlítás? Talán máshogy tárolja egy float az adatokat, mint egy int vagy mi lehet a baj? Egyáltalán normális az ilyen?


Ez teljesen normális, szinte sose a fordító a felelős az esetleges programhibákért

A float valóban máshogy tárolja az adatokat mint az int-ek, 1 biten tárolja az előjelet, 23 bit jut a számjegyeknek és van még egy 8 bites kitevő része. Ebből a számot úgy kapod, h. (-1)^s * 1.m * 2^k , ahol m a számjegyeket tartalmazza, k pedig a kitevőt és s az előjelbitet.

Az algoritmusoddal az a gond, h. kerekítési hibák keletkeznek benne. Például ha egy nagy számhoz egy nála sokkal kisebbet adsz, akkor a kettő összegét nem tudod már a float precizitásán ábrázolni és ilyenkor az FPU az eredményhez legközelebbi számra kerekít.

A másik problémád, h. az sprintf alapértelmezésben nem írja ki a float-ok összes számjegyét. Ez a következő módon orvosolható:
Kód:
float a=1.0f;
float b=0.2f+0.5000001f+0.3f;
printf("a=%f b=%f\n",a,b);
//ez mást fog kiírni mint az előző, mivel megadtuk hány számjegyet akarunk látni
printf("a=%10.10f b=%10.10f\n",a,b);
if(a!=b)
printf("not equal\n");


A kerekítési hibákra egy megoldás, ha megadsz egy hibaküszöböt, amin belül egyenlőnek veszel két értéket:
Kód:
#include <math.h>
const float epsilon=0.000001;
if(fabsf(a-b)<=epsilon)
printf("equ\n");

TheProGamer felszorzós megoldása is nagyjából ugyanezt csinálja, csak épp ez hatékonyabb, mivel nincs benne szorzás és konverzió.

A másik megoldás h. más algoritmust használsz, pl. azt amit a Matematika topicban megadtam

szerk: nagyy megelőzött

   
nagyy - Törzstag | 248 hsz       Online status #39239   2006.12.01 08:55 GMT+1 óra  
Hacker

Köszi így már működik, de kíváncsi lennék, h miért nem működik egy ilyen egyszerű összehasonlítás? Talán máshogy tárolja egy float az adatokat, mint egy int vagy mi lehet a baj? Egyáltalán normális az ilyen?


Úgy tudom azért nem lehet ilyen egyszerűen összehasonlítani float-okat, mert a szám ábrázolásából következően lehet, hogy a változóba kerülő érték nem tökéletesen ugyanaz, mint amit értékül adsz neki. Ez a pontossággal van összefüggésben. Azaz pl ha írunk egy ilyet:
float a = 2;
Akkor lehet hogy a változó értéke nem 2, hanem valójában 1.9999999999 lesz a szám ábrázolás miatt. És mivel 1.9999999999 != 2, ezért nem teljesülni a feltétel.
Általában ezt úgy oldják meg, hogy definiálnak egy küszöbértéket, ami egy nagyon kicsi szám. Ezt általában EPSILON-nak vagy hasonlónak nevezik el. Ekkor így lehet elvégezni az ellenőrzést:

Kód:
#define EPSILON 1e-5

// ...
float a = 2;
float vizsgalando = 2;
if (abs(a - vizsgalando) < EPSILON)
{
//...
}


Ilyenkor teljesül a feltétel, mivel itt azt ellenőrizzük, hogy ha a vizsgálandó szám, és a vizsgált szám különbsége egy tetszőlegesen kis értéknél kisebb, akkor a kettőt egyenlőnek tekintjük. Általánosságban elmondható, hogy a valós számok egyenlőségének ellenőrzését nem lehet pl.: a = 2 formában használni, mert az előbb leírt helyzet alakul ki. Persze ez nem valami gyors megoldás, de működik. Ha hatékonyabb kell, akkor sztem olyasmivel kellene próbálkozni, amit TheProGamer is javasolt. Ha valahol tévedtem, akkor elnézést.
   
Csaba42 - Törzstag | 946 hsz       Online status #39209   2006.12.01 06:42 GMT+1 óra  
Idézet
Hacker :
Köszi így már működik, de kíváncsi lennék, h miért nem működik egy ilyen egyszerű összehasonlítás? Talán máshogy tárolja egy float az adatokat, mint egy int vagy mi lehet a baj? Egyáltalán normális az ilyen?


Szerintem normális, mivel Pascalban sem lehet egyszerűen összehasonlítani a kettőt egymással. Aki tud valami érdekes információval szolgálni a float-ról, leírhatná Hacker kérdésére a választ, én sajnos nem tudom megmondani .

   
Hacker - Törzstag | 567 hsz       Online status #39205   2006.12.01 05:34 GMT+1 óra  
Idézet
TheProGamer :
Idézet
Csaba42 :
Próbáld meg azt, hogy először levágod egy int változóba az egészrészt, s ezt ellenőrzöd. Ha egy, akkor megnézed a mantisszát is (asszem ez a neve ), máskölönben false. Ha a mantissza 0, akkor true, amúgy meg false.


Ilyen problémám nekem is volt,én azt csináltam hogy az összehasonlításnál felszoroztam a float-ot tíz egy kellemes méretű hatványával (100-ra és 1000-re ment, nem teljesen pontos de nekem működik) majd azt typecast-oltam int-nek és úgy hasonlítottam össze. Úgy már működött.



Köszi így már működik, de kíváncsi lennék, h miért nem működik egy ilyen egyszerű összehasonlítás? Talán máshogy tárolja egy float az adatokat, mint egy int vagy mi lehet a baj? Egyáltalán normális az ilyen?
No [img] !
Programozz ne háborúzz!!!!

   
Csaba42 - Törzstag | 946 hsz       Online status #39204   2006.12.01 05:06 GMT+1 óra  
Idézet
TheProGamer :
Ilyen problémám nekem is volt,én azt csináltam hogy az összehasonlításnál felszoroztam a float-ot tíz egy kellemes méretű hatványával (100-ra és 1000-re ment, nem teljesen pontos de nekem működik) majd azt typecast-oltam int-nek és úgy hasonlítottam össze. Úgy már működött.


Én legutoljára ilyet pascalban csináltam, egy egyszerű truncate függvényhívással meg is volt az egészrész "levágása". De persze az a legjobb s legegyszerűbb, amit mondtál, mert abban kényelmesen le lehet ellenőrizni a karakterisztikát és a mantisszát, egy egyszerű [b[if, és meg is one.

   
TPG - Tag | 3402 hsz       Online status #39203   2006.12.01 04:44 GMT+1 óra  
Idézet
Csaba42 :
Próbáld meg azt, hogy először levágod egy int változóba az egészrészt, s ezt ellenőrzöd. Ha egy, akkor megnézed a mantisszát is (asszem ez a neve ), máskölönben false. Ha a mantissza 0, akkor true, amúgy meg false.


Ilyen problémám nekem is volt,én azt csináltam hogy az összehasonlításnál felszoroztam a float-ot tíz egy kellemes méretű hatványával (100-ra és 1000-re ment, nem teljesen pontos de nekem működik) majd azt typecast-oltam int-nek és úgy hasonlítottam össze. Úgy már működött.
Reality is almost always wrong. - House

   
Csaba42 - Törzstag | 946 hsz       Online status #39192   2006.12.01 04:09 GMT+1 óra  
Idézet
Hacker :
Ez jó. Ezzel nem megy:

Kód:
if (eredmeny!=float(1)) return false;
else return true;


De ezzel működik:

Kód:
if (eredmeny!=float(2)) return false;
else return true;



Próbáld meg azt, hogy először levágod egy int változóba az egészrészt, s ezt ellenőrzöd. Ha egy, akkor megnézed a mantisszát is (asszem ez a neve ), máskölönben false. Ha a mantissza 0, akkor true, amúgy meg false.

   
Hacker - Törzstag | 567 hsz       Online status #39184   2006.12.01 03:27 GMT+1 óra  
Ez jó. Ezzel nem megy:

Kód:
if (eredmeny!=float(1)) return false;
else return true;


De ezzel működik:

Kód:
if (eredmeny!=float(2)) return false;
else return true;
No [img] !
Programozz ne háborúzz!!!!

   
Hacker - Törzstag | 567 hsz       Online status #39181   2006.12.01 03:23 GMT+1 óra  
Igen próbáltam. A legjobb az egészben, int-el működik, de float-al nem. Gondoltam arra, h mivel lehet, h nem véges törtek lesznek az eredmények ezért nem pontosan egy lesz, de a kiíratással ellenőriztem és pontosan 1. Ezért nem értem.
No [img] !
Programozz ne háborúzz!!!!

   
Csaba42 - Törzstag | 946 hsz       Online status #39179   2006.12.01 03:21 GMT+1 óra  
Idézet
Hacker :
[...]
A gondom az lenne hogy a végén az összehasonlítást valami furcsa módon nem végzi el vagy legalábbis rosszul: vagyis neki 1 nem egyenlő 1-el.


Próbáltad azt, hogy eredmeny!=egy?

   
Hacker - Törzstag | 567 hsz       Online status #39177   2006.12.01 03:13 GMT+1 óra  
Van egy kis gondom MS VC++ EE alatt ezzel a függvénnyel:

Kód:
bool Is_Point_In_Triangle(CVector2* V1, CVector2* V2, CVector2* V3, CVector2* P)
{
float P_V1=CVector2(*P-*V1).Length();
float P_V2=CVector2(*P-*V2).Length();
float P_V3=CVector2(*P-*V3).Length();

float V1_V2=CVector2(*V1-*V2).Length();
float V2_V3=CVector2(*V2-*V3).Length();
float V1_V3=CVector2(*V1-*V3).Length();

float s=(V2_V3+V1_V3+V1_V2)/2;

float Terulet_Haromszog=sqrt((s)*(s-V2_V3)*(s-V1_V3)*(s-V1_V2));

s=(P_V1+P_V2+V1_V2)/2;

float Resz_Terulet=sqrt((s)*(s-P_V1)*(s-P_V2)*(s-V1_V2));
float i=Resz_Terulet/Terulet_Haromszog;

if (i>1 || i<0) return false;

s=(P_V1+P_V3+V1_V3)/2;
Resz_Terulet=sqrt((s)*(s-P_V1)*(s-P_V3)*(s-V1_V3));
float j=Resz_Terulet/Terulet_Haromszog;

if (j>1 || j<0) return false;

s=(P_V2+P_V3+V2_V3)/2;
Resz_Terulet=sqrt((s)*(s-P_V2)*(s-P_V3)*(s-V2_V3));
float k=Resz_Terulet/Terulet_Haromszog;

if (k>1 || k<0) return false;

float eredmeny=i+j+k;
float egy=1;
char szoveg[255];
sprintf(szoveg,"%f\n%f",eredmeny,egy);
MessageBox(NULL,szoveg,"",MB_OK);

if (eredmeny!=1.0) return false;

return true;
}


A gondom az lenne hogy a végén az összehasonlítást valami furcsa módon nem végzi el vagy legalábbis rosszul: vagyis neki 1 nem egyenlő 1-el.
No [img] !
Programozz ne háborúzz!!!!

   
storedenen - Tag | 22 hsz       Online status #39164   2006.12.01 01:53 GMT+1 óra  
Csak ezután vettem észre a C#-os fórumban írtakat.... szerkeszteni már nem tok, szóval stornó...

szerk: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=966174&SiteID=1

   
storedenen - Tag | 22 hsz       Online status #39160   2006.12.01 01:27 GMT+1 óra  
natív esetében sztem ez:
Kód:
[DllImport(DllNev, EntryPoint = "FuncNev")]
static public extern FuncTipus FuncNev(ParamterList);


Szóval nálad valahogy így:

Kód:
[DllImport(NemtommiDll.dll, EntryPoint = "AddSima"]
static public extern int AddSima(int x, int y);


CLR esetében ha a namespace-n belülre raknád akkor lehet, de olyat még sose kellett csinálnom.

De nem vagyok biztos a megoldásban, mert nagyon régen kellett már ilyet csinálnom... azért remélem segít

   
Orphy - Törzstag | 1893 hsz       Online status #39151   2006.12.01 00:48 GMT+1 óra  
Sziasztok, lenne egy érdekes problémám:

C++os dll-t kellene használni C# alól, és nem akar összejönni
Perpill addig jutottam, hogy mivel a natív nagyon nem jött össze, fordítottam egy CLR-es dll-t, így már be tudtam húzni C# alá, de csak a namespace és az osztály látszik, a függvények közül egy sem...

A C++ kód így néz ki:
Kód:
#define DLLEXPORT __declspec(dllexport)

namespace CppNameSpace
{
public class DLLEXPORT Cucc2
{
public:
static int /*__stdcall*/ Add(int x, int y)
{
return x+y;
}
private:
Cucc2(){}
};

DLLEXPORT int AddSima(int x, int y)
{
return x+y;
}
}


MSDN-en azt olvastam, hogy ha az osztály dllexport-olom, akkor a tagfüggvényei is benne lesznek a dll-ben. A mellékelt .lib-ben látom is a függvények nevét, ha belenézek, de C# alatt nem...

A C++ oldalon mindent jól csinálok?
   
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] [143]