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] [46]
LugaidVandroiy - Törzstag | 504 hsz       Online status #189057   2012.11.28 07:22 GMT+1 óra  
Ahol olvastam tegnap, ott mindenki egy meglevő vagy saját plugint javasolt. Sajáttal azt csinálsz, amit akarsz. Elvileg nem is nehéz írni egyet.

   
bolyzsolt - Törzstag | 607 hsz       Online status #189055   2012.11.28 07:00 GMT+1 óra  
Lehet, hogy kívülről nem megoldható, mert ha jól emlékszem, az MSN Messengeres bővítményhez (ami kiírta az aktuálisan játszott számot) is külön engedélyezni kellett a saját WMP-s pluginjét.

   
Seeting - Törzstag | 2306 hsz       Online status #189041   2012.11.27 18:49 GMT+1 óra  
Ugyebár azt tudom, hogy lehet remote irányítani a wmp-t, csak abban nem vagyok biztos hogy kérdezhetek-e információkat a wmp-től az aktuálisan lejátszott médiáról.
   
Seeting - Törzstag | 2306 hsz       Online status #189040   2012.11.27 18:46 GMT+1 óra  
Köszi!

A szerk2-ben leírtakhoz kéne nekem valami példakód, mert nem mozgok valami otthonosan .NET-ben.
   
Pretender - Törzstag | 2498 hsz       Online status #189039   2012.11.27 18:04 GMT+1 óra  
Első ötletemnek olyasmi támadt, hogy az adott exe névre figyelsz, hogy indul-e, de az a többi nem igen oldja meg.

szerk.:
Van valami ActiveX cucc ahogy látom, nem néztem nagyon utána, érdemes ilyesmin elindulni:
[url]http://msdn.microsoft.com/en-us/library/windows/desktop/dd562461(v=vs.85).aspx[/url]
http://stackoverflow.com/questions/56478/how-to-interact-with-windows-media-player-in-c-sharp

szerk.2:
Vagy ahogy láttam, sokkal egyszerűbb az ilyesmi. Próba cseresznye

Ezt a hozzászólást Pretender módosította (2012.11.27 18:33 GMT+1 óra, ---)

   
Seeting - Törzstag | 2306 hsz       Online status #189037   2012.11.27 17:26 GMT+1 óra  
Hali!

Az a kérdésem, hogy szerintetek lehetséges-e a következő:

A C# programom észleli ha fut vagy elindul egy Windows media player alkalmazás.
A C# programom kinyeri a WMP instancebol hogy van-e lejátszás alatt valami, illetve hol tart a lejatszasban.

Köszi!
   
LugaidVandroiy - Törzstag | 504 hsz       Online status #189032   2012.11.27 13:42 GMT+1 óra  
Ha, nem tudom, hogy C#-ban van-e valamiféle hashmap, de én is hasonlóképpen oldanám meg, mint Pretender. A kulcs az eredeti szó, az érték meg a módosított.

   
Pretender - Törzstag | 2498 hsz       Online status #189030   2012.11.27 12:56 GMT+1 óra  
Akár fel is vehetnél rá valami mapet, és akkor csak szóközönként lépkedsz, mapben keresni n*logn idejű a legrosszabb esetben is.
Eltárolod azt, hogy
Kód:
map["még"] = "mög";

és így tovább, majd amikor lépkedsz a szövegen, akkor ha találsz a mapben ilyen elemet, akkor replaceled.

   
Bukta - Tag | 308 hsz       Online status #189027   2012.11.27 11:55 GMT+1 óra  
Megint hűha. Am ha neked jó ez a megoldás akk jó. Ékezektek? UTF-8. Azt is be lehet állítani hogy mien formába írja ki a StreamWriter és/vagy társai. Elgondolásom szerint ez vmi prop valamelyik osztályba ami egy enum értéket vár és neked ASCII van beállítva talán. De én ugy emléxek hogy a StreamWirter az alapból helyesen ír -mindent.
ArgumenException: A megadott DependencyObject nem ehhez a Freezable elemhez tartozó környezet. Paraméter neve: context
:oO Mi a???
   
Pixi - Tag | 205 hsz       Online status #189026   2012.11.27 11:35 GMT+1 óra  
Hűha hát azért én nem így képzeltem ezt az egészet Időközben sikerült működő megoldást létrehoznom, lehet pazarlás meg hasonló mások szerint, de működik és szerintem egyszerű, lényeg hogy kell hozzá 3 string az eltárolás végett, ebben az esetben kb. így néz ki (most csak 3 szóval mutatom):

Kód:
string s1, s2, s3;

        void Update1()
        {
            s1 = textBox1.Text;

            s2 = s1.Replace("meg", "mög");
            s3 = s2;

            s2 = s3.Replace("egyszer", "eccő");
            s3 = s2;

            s2 = s3.Replace("enni", "önni");
            s3 = s2;
            ...
            textBox2.Text = s3.ToString();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            Update1();
        }


szerk.: azért néz ki ilyen hülyén, mert ez a Replace nem tud egy lépésben több szavat lecserélni, ezért kellett ehhez folyamodni, hogy 1 szó kicserélés, majd az összes eltárolása, majd újabb lépésben másik szó kicserélése...

Már csak az az egy gondom van, hogy ha File-ba akarok menteni (akármelyik projektben) az ékezetes betűket nem hajlandó normálisan kimenteni, nem tudom ezt hogyan lehetne konvertálni. Így csak a kézzel való Copy-Paste működik.

   
Bukta - Tag | 308 hsz       Online status #189025   2012.11.27 10:56 GMT+1 óra  
Hűha hát az ilyen maszek megoldások nem biztos, hogy jók . Először mindig nézd meg h van-e erre beépített megoldás és akk össze tudod vetni a dolgokat.
Most ami így eszembe jutott az a "Globalization and Localization" ami van .netben. Ez valami nyelvi dolgokat ügyez meg. Pl kiiratod hogy Console.Write("szöveg"; akkor valahogy be lehet állítani, hogy ezt milyen nyelven írja ki. Ha pl angolra állítod akkor nem az fog kiirodni h "szöveg" hanem h "text" kb.
Meg van egy olyan is, hogy IFormatter vagy valami hasonló amivel tod a stringeket formatolni pl hogy String.Format("asd {0:Z}", valuee); és te tudod a megmondani vmi származtatással, hogy a Z mit is jelent.
Ha valahogy létrehozol olyan osztályt ami egy uj nyelvet -a tájszólást- implementál akko a Globalization and Localization -nal megoldható sztem. De nem tom pontosan, mostanság nem néztem ilyeneket, de nagyjábol tudom h van ilyesmi, meg h hol mit érdemes megnézni.
ArgumenException: A megadott DependencyObject nem ehhez a Freezable elemhez tartozó környezet. Paraméter neve: context
:oO Mi a???
   
Pixi - Tag | 205 hsz       Online status #188729   2012.11.11 19:22 GMT+1 óra  
Hali mindenki.

Felmerült bennem, hogy írnék egy kis segédprogit, ami a magyar nyelvű szöveg bizonyos szavait átírná egy adott tájszólásra. Működik is ha egy szavat szeretnék átírni így, hogy:
pl:
Kód:
        string s;

        void Update1()
        {
            s = textBox1.Text;
            textBox2.Text = s.Replace("meg", "mög");
        }


Arra viszont nem jöttem rá, hogy megoldható-e egyéb trükközés nélkül az, hogy egyszerre több szavat is kicseréljen egy lépésben? Meg lehet ezt oldani, vagy egy külön függvényt kell írni hozzá?

Eddig két elméletem van:
1. Egy ciklus ami szépen egyenként átpásztázza a string szavait, majd ha érzékel egy adott szavat azt lecseréli a megadottra.
2. Van a string, és külön-külön több lépésben módosítaná a szavakat, de mindig csak egyet. Először kicserélné az egyik szavat és eltárolná az egész stringet, másik lépésben ugyanezt a módosított stringet megint leellenőrzi és egy másik fajta szavat cserél ki, megint eltárolná és jönne a harmadik lépés, stb.

Szükség van ezekre, vagy van rá egyszerű beépített megoldás?

   
Matzi - Szerkesztő | 2519 hsz       Online status #188050   2012.10.17 21:42 GMT+1 óra  
Bukta:
A trükk itt az üzletmodell. A MS nem is akarja, hogy fusson mindenhol a C#, mert a nyelvből nincs bevételük, míg a windowsból van. A benzin ingyen van, csak fizesd ki a kocsit.
Míg a SUN nem gyárt operációs rendszert (ha jól tudom az Oracle sem), nekik a fordítottja az érdekük, hogy fusson mindenhol, és a virtual machine használatáért fizessenek. Fizesd ki a benzint, és menni fog az autódba. Pont ez a problémájuk az androiddal, mert ők kikerülték a licence-elést ügyesen.

És igen, persze, hogy a pénzről szól. Nézd meg az OpenGL-t. Nincs mögötte nagy tőke, szinte mindenhol az fut, és már nagyon ráférne egy rendes újra tervezés, de így igazán senkinek sem érdeke annyira, hogy fizessen érte. Pedig lenne mit javítani rajta, legacy dolgok elhagyása, visszafelé kompatibilitás elvágása valamilyen szinten, összeszedettebb interface megírása, egységesebb, jobban definiált elvárás a driverekkel szemben. Nézd meg mennyit fejlődött a DX az elmúlt 15 évben, és mennyit az ogl. A pénz az egyik legfontosabb tényező, de nem véletlenül. Ilyen az élet és a gazdaság. Ha a pénz nem számítana, akkor nem tudnál kaját se venni a boltban.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
Pretender - Törzstag | 2498 hsz       Online status #188044   2012.10.17 19:48 GMT+1 óra  
A Java és a C# ugyan hasonlóan működik, de mégis más
A Javanak ott a virtual machine, ami a javac által előállított kódot értelmezi és fordítja runtime az adott konfigurációra. Annyival van előrébb a java, hogy ezt a JRE-t (Java Runtime Environment) elég sok platformra megírták, így egy java kód az fut winen, unixon, böngészőben, mikrón, stb.

A c# szoros összeköttetésben van a .Nettel, ami - ahogy Matzi is mondta - szoros kapcsolatban áll a Windowszal. A Microsoft pedig mindig is annak a híve volt, hogy csak az ő termékét használják, amit azért nagyjából sikerült is elérniük (a legtöbben azért nem Unixon bohóckodnak, lássuk be )

Ott van ugye maga a Windows, hozzá lett a kényelmes, csodajó nyelv a C#, a jó kis .Net keretrendszer, az egész DirectX úgy ahogy van Microsoftos platformokon fut (Windows, xbox), stb., de ez egy teljesen jó üzletpolitika szerintem.

A natív kódra meg annyit, hogy a win32s kódot nem tudod lefordítani unixra, mert az win32. De az meg mondjuk attól lett win32, hogy Windows-specifikus dolgokat írtál bele. Ha viszont megírod azt, hogy mondjuk interfacekkel dolgozol, és egy külön dll-ben vannak a platform-specifikus dolgok, akkor kaptál egy multiplatform gyors, natív kódot

   
Bukta - Tag | 308 hsz       Online status #188041   2012.10.17 19:16 GMT+1 óra  
Matzi: rosszul írtam. Nem a C#ra gondoltam hogy interpretálodik hanem az IL-re és az első futás alkalmával a JIT az interpreter ha lehet így nevezni. Na mind1 ezt értem. Nem is ez az érdekes, hanem az hogy a mircrosoftnak újra kell írnia (pl) a winformot ha linuxra is meg akarja írni. A java függvénykönyvtára meg egyszer meg lett írva és mindenhol működik. (Persze a java vm-ét meg kell írni minden oprendszerre vagy legalábbis konfigolni kell gondolom, de ez még mindig jobb mind mikor az ADO.NET-et mindenhova át kell írni.)
Egyébként tényleg elég jo kis nyelv a c# nem azt mondom h nem. Csak az a furcsa hogy a széllel szembe pisálnak. Lényegében csak winen működik jol. Nehogy csökkenjen a win részesedése a piacon. Az a baj hogy ez az egész már rég csak a pénzről meg a versengésről szól.

Pretender: le lehet jah. De hát a win32es programomat hiába fordítanám más platformra ha a win32 az win32.
Na mind1 nem is ez a lényeg. A lényeg hogy a nyelvek viszonyleg jók, de az elvük amire épülnek meg amit lehet rájuk építeni az már nem mutat messzire.

Ui.: multkor olvastam hogy a javanak lett (200 egy testvére a Scalar ami teljesen kompatibilis a java-val, de sokat nem tanultam róla...
ArgumenException: A megadott DependencyObject nem ehhez a Freezable elemhez tartozó környezet. Paraméter neve: context
:oO Mi a???
   
Parallax - Tag | 574 hsz       Online status #188032   2012.10.17 15:07 GMT+1 óra  
@bolyzsolt: Mono-t próbáltuk a cégnél, de elég nyögvenyelős, akkor már inkább a C++.
A TypeScript bizonyos webes alkalmazásoknál nyújt segítséget, de ennek nincs köze a C# hoz.
w8 alatt is inkább a C++ és C++/CX combo ajánlott játékhoz.

   
bolyzsolt - Törzstag | 607 hsz       Online status #188031   2012.10.17 14:19 GMT+1 óra  
Idézet
Matzi :
A .net elég sok helyen támaszkodik a windowsra, nem véletlenül. Ezért is nem nagyon tudod a keretrendszert telepíteni sem mondjuk linuxon. Illetve nem tudom pontosan mi a helyzet a mono-val, azzal elvileg működhetne, ha nem is minden.


A Mono meglepően jól támogatja a .Net-et, és van hozzá egy erősen Visual Studio-ra hajazó IDE, szóval Linux, ill. OSX alatt is ugyanúgy használható. Érdekes projekt még a Xamarin, ami egy keresztplatformos, C#-os mobilos fejlesztői környezet (nyilván a Mono-ra épülve). Folyamatosan adnak ki vele játékokat, szóval valószínűleg megérett a felhasználásra, és az sem utolsó dolog, hogy a kódodnak csak minimális része platformfüggő. Mono alatt persze nincs WinForms, meg WPF, helyette van GTK#, nem tudom mekkora a különbség, de a célnak nyilván teljesen megfelel. Sebességben nagyon picit lassabb, mint a Microsoftos CLR, illetve egy-két speciális benchmark esetében sokkal lassabb...
Egyébként sosem értettem, miért van ennyire háttérbe szorulva úgy az egész .Net, pedig mint a fentiekből is kiderül, nem vagy vele Windowsra korlátozva. A legdurvább az egészben, hogy mintha a Microsoft se nagyon erőltetné... A W8 Metronál meg lehetett volna húzni, hogy csak managed programokat lehessen rá írni, ehelyett még a JavaScriptet is behozták 3. lehetőségként. Nekem kicsit furcsa a dolog
Szerk.: a C# atyja pedig eközben a TypeScript nevű JavaScript kiterjesztésen dolgozik... Ha már ott van egy jó nyelv, a C#, miért kell ennyire erőltetni egy alkalmazásfejlesztésre teljesen alkalmatlan nyelvet, annal toldozgatását?
/off

   
Pretender - Törzstag | 2498 hsz       Online status #188030   2012.10.17 10:58 GMT+1 óra  
Amúgy a natív kódot is lehet ám több platformra fordítani

   
Matzi - Szerkesztő | 2519 hsz       Online status #188021   2012.10.16 22:16 GMT+1 óra  
Bukta:
Kicsit el vagy tévedve.
A C#nem interpretálódik, hanem a saját VM-ére forduló kód generálódik belőle, úgynevezett CIL (Common Intermediate Language), amely egyfajta bytekód, de még nem gépi kód. A JIT generál ebből a gépen futó alacsony szintű kódot. Ilyet például a php tudtommal nem tesz, legalábbis alapból, bár írtak már hozzá pár compilert, pl a facebooknál is.
Az unsafe keyword csak annyit jelöl, hogy az adott blokkban használhatsz pointereket, de a kódot lényegében ugyanúgy kezeli. Persze ezzel keresztbe teszel a garbage collectornak, meg pár alapvető óvintézkedésnek, amitől a C# biztonságos, ezért az a neve, hogy unsafe. De ettől még semmivel sem natívabb az a kód, min bármelyik másik, csak te írod bele a pointereket, és nem a C# kezeli helyetted.
A .net elég sok helyen támaszkodik a windowsra, nem véletlenül. Ezért is nem nagyon tudod a keretrendszert telepíteni sem mondjuk linuxon. Illetve nem tudom pontosan mi a helyzet a mono-val, azzal elvileg működhetne, ha nem is minden.

Amúgy a java nem rossz nyelv, bár ráférne egy alapos újratervezés, nem csak a ráncfelvarrások, meg egy-két egyéb apróság. Viszont a C# kimondottan jó nyelv, a .net pedig egy jól sikerült framework, nem értem miért szidod őket. Jelentősen rosszabb nyelvek is vannak, nem is egy.

Jah igen, GUI. Elég marginális kérdés. Attól függően, hogy mire kell fejlesztened, úgyis másikat kell használni, az amúgy sem baj, ha többet megtanulsz. Amíg te döntöd el, hogy mit használj, addig válogathatsz, de ez a luxus a munkában szinte biztosan nem lesz meg. Próbálj ki inkább minél többet, hogy egy +1. már ne legyen nagy meglepetés, és ha egyszer véletlenül neked kellene választanod, akkor megalapozott döntést tudj hozni.
Ha meg javát kell tanuli, akkor tanuld meg azt, aztán meglátod melyik jön be. Pl a javahoz nem tudom mennyire vannak jó gui design tool-ok, ha jól tudom a netbeans tud ilyesmit, de sosem láttam, míg a C#hoz a visual studióé kimondottan jó. De például c++hoz elég nehézkes gui-t szerkeszteni.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
Bukta - Tag | 308 hsz       Online status #188018   2012.10.16 19:18 GMT+1 óra  
Szevasztok!

Épp java-t kell tanulnom és eszembe jutott valami. Az hogy mikor .net-be írok unsafe kódot akkor azt is interpreter (vagy JIT) hajtja végre, vagy pedig fordításkor lesz meg a natív kód. ? (szerintem fordításkor, de most már leírtam nem törlöm ki )
Mert ha jól értesültem akkor a php az az olyan hogy forráskódból interpretál natív kódot. Meg feltehetőleg a .net clr azért nem fut mindenhol mert natív win hívásokat kezdeményez.
Csak azért írok ilyenekről mert linux van a gépemen és hát tényleg nem megoldás a natív gui-k használata, mert rengeteg van (qt, gtk,win32,...) és inkább használnék vmi virtuálisat. A guinak ugyse kell ultra gyors c++ sebesség. A lényeg hogy -már- csak +1et akarok megtanulni.
Ha más nem akkor a java-t megtanulom, de azért ez a nyelv még a c#-nál is pocsékabb.

Am Pixi van StreamReader is ha már erről van szó
ArgumenException: A megadott DependencyObject nem ehhez a Freezable elemhez tartozó környezet. Paraméter neve: context
:oO Mi a???
   
Pixi - Tag | 205 hsz       Online status #187131   2012.09.06 13:16 GMT+1 óra  
Köszi nem tudtam hogy ennyire egyszerű, a FileStream valóban megkerülhető, ha egyből írni is akarok a file-ba:

Kód:
        //static FileStream stream;
        static StreamWriter sw;

        public Form1()
        {
            InitializeComponent();

            //stream = File.Create("MyTest.txt");
            //stream.Close();

            sw = new StreamWriter("MyTest.txt");
            sw.Write("abc");
            sw.Close();
        }

   
Pretender - Törzstag | 2498 hsz       Online status #187122   2012.09.06 09:11 GMT+1 óra  
Esetleg próbálhatnád úgy, hogy nem nyomsz File.Create-t, hanem simán new StreamWriter
Idézet
The path parameter can be a file name, including a file on a Universal Naming Convention (UNC) share. If the file exists, it is overwritten; otherwise, a new file is created.

innen: http://msdn.microsoft.com/en-us/library/fysy0a4b

Az Exist meg egy bool típusú fgv, ami megnézi, hogy létezik-e az adott file.

szerk.:
Vagy ha a File osztályt akarod használni, akkor
Kód:
FileStream stream = File.Create("filename.ext");

stream.Write(...);

stream.Close();

ezt meg innen:
http://msdn.microsoft.com/en-us/library/system.io.file.aspx
és innen:
http://msdn.microsoft.com/en-us/library/system.io.filestream.aspx

   
Pixi - Tag | 205 hsz       Online status #187121   2012.09.06 08:48 GMT+1 óra  
Hali.

Van egy kis gondom File létrehozásakor:

Kód:
        static StreamWriter sw;

        public Form1()
        {
            InitializeComponent();

            File.Create("MyText.txt");
            //File.Exists("MyText.txt"); -->ezt próbáltam de semmi változás

            sw = new StreamWriter("MyText.txt");
            sw.Write("abc");
            sw.Close();


Mivel tudok kilépni a File.Create metódusból? Mert mindig azzal a hibaüzenettel áll le mikor mást is szeretnék csinálni, pl írni bele, hogy:

"The process cannot access the file because it is being used by another process."

   
Kuz - Törzstag | 4455 hsz       Online status #185272   2012.07.28 21:20 GMT+1 óra  
Ez sem rossz, de ennyire már nem akartam belemászni az öröklődés kialakításába. Ettől függetlenül a lenti kérdésemre szerintem a válasz, hogy nem lehet a változót befolyásolni, hiszen azt a List definíciójánál kéne megadni.
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???

   
gopher - Törzstag | 491 hsz       Online status #185270   2012.07.28 21:11 GMT+1 óra  
Nem vagyok C#-os, és lehet én is gyökér vagyok de, nem volna egyszerűbb, ha

class A
class BC : A
class B : BC
class C : BC
class D : A

és akkor List<BC> ?
   
Kuz - Törzstag | 4455 hsz       Online status #185261   2012.07.28 20:05 GMT+1 óra  
Bizonyára gyökér vagyok, de elakadtam. Van az alábbi osztály öröklődésem:
class A
class B : A
class C : A
class D : A

Szeretnék csinálni egy olyan List/HashSet/akármi változót, ami csak B-t és C-t fogad el, de D-t nem, tehát a List<A> kiesik. Változónál lehet 'where'-t használni valahogy, vagy ehhez külön tároló osztályt kell létrehoznom? Vagy tényleg csak gyökér vagyok, és van egyszerűbb megoldás is?
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???

   
DMG - Szerkesztő | 3172 hsz       Online status #184726   2012.07.17 21:26 GMT+1 óra  
Nice.
-----------------------------------------
Dont Listen to the Naysayers
   
Kuz - Törzstag | 4455 hsz       Online status #184720   2012.07.17 21:05 GMT+1 óra  
Ja nem is miattad írtam, feltételeztem, hogy ha a borokhoz értesz, akkor ennyit még csak kinyögsz, karbantartó létedre.
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???

   
DMG - Szerkesztő | 3172 hsz       Online status #184714   2012.07.17 19:49 GMT+1 óra  
Na ennyire azért csak nem vagyok hülye, szóval nyílván így is megoldható, csak kerestem a magyarázatot az if-re.
-----------------------------------------
Dont Listen to the Naysayers
   
Kuz - Törzstag | 4455 hsz       Online status #184705   2012.07.17 11:28 GMT+1 óra  
Idézet
DMG :
Szerintem, (de én hülye vagyok. )

Az iffel azt vizsgálja, hogy egyáltalán van-e olyan index amit ő megad szoveg_szamlalo-nak, mert ügye.

Kód:
int a = 12;

esetén

Kód:
for (int i = 0; i < 10; i++)
{
     if (i == a)
         arr[i] = 2;
}


nélkül túlindexeli a tömböt.
Más értelmes magyarázatot nem tudnék elképzelni.



Kód:
if(a < arr.Length)
   arr[a] = 2;
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 | 205 hsz       Online status #184699   2012.07.17 00:10 GMT+1 óra  
http://data.hu/get/5350076/Game_State.zip

Kb. ennyi az egész, valahogy navigálni is kell, valamint a navigálás korlátjait megadni a szövegeknél, meg átlépni másik játék státuszba egy szövegen keresztül, ezért kellet for (szerintem).

(a kód nincs benne, mert ahogy ismerem már a saját nyelvem azt leszólnák jó sokan )

   
Pretender - Törzstag | 2498 hsz       Online status #184693   2012.07.16 21:23 GMT+1 óra  
@DMG: azt lehetne úgy is, hogy a > 0 && a < arr.Count

Lehet Kuznak van igaza, és az összes többi színét visszaállítja. De akkor meg kár ifeléssel terhelni, állítsa be mindet, aztán a végén meg az adott elemre külön beállítja De ő tudja mit akar.

   
DMG - Szerkesztő | 3172 hsz       Online status #184684   2012.07.16 20:40 GMT+1 óra  
Szerintem, (de én hülye vagyok. )

Az iffel azt vizsgálja, hogy egyáltalán van-e olyan index amit ő megad szoveg_szamlalo-nak, mert ügye.

Kód:
int a = 12;

esetén

Kód:
for (int i = 0; i < 10; i++)
{
     if (i == a)
         arr[i] = 2;
}


nélkül túlindexeli a tömböt.
Más értelmes magyarázatot nem tudnék elképzelni.
-----------------------------------------
Dont Listen to the Naysayers
   
Kuz - Törzstag | 4455 hsz       Online status #184681   2012.07.16 20:34 GMT+1 óra  
Ciklus akkor kell, ha vissza kell állítani a színt, amennyiben nem teljesül a feltétel.
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 #184672   2012.07.16 19:13 GMT+1 óra  
Igen, ezt mondtuk... de akkor minek az if? Ez csakis egy esetben fog teljesülni, ha ugye az i a szoveg_szamlaloval egyenlő, azaz simán nézhetnéd a szovegek[szoveg_szamlalo]-t is, nem? (hacsak nincs más dolgod a for ciklusban)

Ez most kb. így néz ki
Kód:
int a = 2;
for (int i = 0; i < 10; i++)
{
    if (i == a)
        arr[i] = 2;
}

ekkor arr[a] = 2

   
Pixi - Tag | 205 hsz       Online status #184670   2012.07.16 17:49 GMT+1 óra  
Oké megoldódott, erre nem is gondoltam

Kód:
            for (int i = 0; i < szovegek.Count; i++)
            {
                if (i == szoveg_szamlalo)
                {
                    szovegek[i].szin = Color.Yellow;
                }
            }


Csak simán az i-vel kellett összehasonlítani.

   
Pixi - Tag | 205 hsz       Online status #184669   2012.07.16 17:32 GMT+1 óra  
Na akkor az elejétől. Egy menüt szeretnék össze hozni kicsit szebb módon mint ahogy elkezdtem 2 évvel ezelőtt. Mikor létrehozunk egy listát és for ciklussal lekezeljük, akkor mindegyik kap egy indexet amit mi i-vel (vagy ahogy akarjuk) jelölünk. És pl. törlésnél tudom van egy olyan hogy RemoveAt(i), vagyis ekkor azt az 1 bizonyos indexű elemet törli amire érvényes egy akármilyen feltétel. De nekem most nem törölni kell, hanem csak megvizsgálni, hogy a lista elemei közül melyik az az 1 darab amely indexe (i)-je megegyezik a statikus int-el. Mert azt tudom ,hogy létrehozáskor sorban kapják növekvő sorrendben az indexet, ezzel nincs is baj. Azért szöveg számláló a statikus int neve, mert ha egyik lista elem index száma megegyezne a statikus változó értékével, akkor annak az egy szövegnek a színét állítsa át egy másik színűre, ez kb. olyan mintha kijelöltem volna egy opciót a menüben. És a többi már menne, csak itt akadtam el:

Kód:
public static int szoveg_szamlalo = 1;

szovegek.Add(new Text("Start Game", new Vector2(250, 100), Color.White));   //1-es indexű...
szovegek.Add(new Text("Options", new Vector2(250, 150), Color.White));   //2-es indexű...
szovegek.Add(new Text("About", new Vector2(250, 200), Color.White));   //3-es indexű...
szovegek.Add(new Text("Exit", new Vector2(250, 250), Color.White));   //4-es indexű...

            for (int i = 0; i < szovegek.Count; i++)
            {
                if (szovegek(i) == szoveg_szamlalo)   //de ezt ilyen formában nem engedi, M4 megoldását pedig nem tudom itt hogy alkalmazni.
                {
                    szovegek[i].szin = Color.Yellow;   ///vagyis a legelső szövegre lenne érvényes a "Start Game"-ra
                }
            }

   
Pretender - Törzstag | 2498 hsz       Online status #184668   2012.07.16 16:42 GMT+1 óra  
Továbbra sem értem mi az a szoveg_szamlalo. Az most egy int? Mit jelöl? Ha index, akkor nem kell for, ahogy M4 mondta, hanem szovegek[szoveg_szamlalo]-ra igaz a feltétel.

   
Kuz - Törzstag | 4455 hsz       Online status #184665   2012.07.16 15:51 GMT+1 óra  
Kód:
szovegek[i].poz

?
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 | 205 hsz       Online status #184664   2012.07.16 15:49 GMT+1 óra  
Ez egy SpriteFont:

Kód:
        public string szoveg;
        public Vector2 poz;
        public Color szin;

        public static List<Text> szovegek = new List<Text>();

        public Text(string szoveg,
                    Vector2 poz,
                    Color szin)
        {
            this.szoveg = szoveg;
            this.poz = poz;
            this.szin = szin;
        }

//és ezt így nem fogadja el:

            for (int i = 0; i < szovegek.Count; i++)
            {
                if (szovegek[i] == szoveg_szamlalo)
                   {
                         ...
                   }
            }

//Operator '==' cannot be applied to operands of type 'Game_State.Text' and 'int'


Biztosan kell oda az i után valami, csak nem tudom mi.

   
M4 - Tag | 187 hsz       Online status #184658   2012.07.16 14:49 GMT+1 óra  
Csak a szovegek[szoveg_szamlalo]-ra igaz, hogy az indexe egyenlő a szoveg_szamlalo-val. Nem kell for ciklus.

   
Matzi - Szerkesztő | 2519 hsz       Online status #184654   2012.07.16 14:14 GMT+1 óra  
A lista adott elemének az indexe ebben az esetben nem pont az i?
Vagy mire gondoltál?
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
Kuz - Törzstag | 4455 hsz       Online status #184653   2012.07.16 14:14 GMT+1 óra  
Mi az a 'szovegek'? Nem az általad vélt definíciót kérem, hanem a kódot.
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 | 205 hsz       Online status #184649   2012.07.16 14:02 GMT+1 óra  
Egy nagyon dedós problémába ütköztem. Van egy statikus változóm és egy listám amibe van sok elem. for ciklussal lekezelem őket ugye. És feltételnél szeretném összehasonlítani, hogy a lista egy adott elemének indexe (i) megegyezik-e a statikus változó értékével. A problémám az, hogy nem tudom mivel lehet rákeresni (vagy nem is lehet, hanem külön adattagot kell létrehozzak a lista elemeihez ami ezt tartja számon?). Azt hittem, hogy az IndexOf(i) szolgál erre, de ezek szerint nem, tehát olyasmit szeretnék, hogy:

Kód:
public static int szoveg_szamlalo = 1;

List...

            for (int i = 0; i < szovegek.Count; i++)
            {
                if (szovegek???[i]??? == szoveg_szamlalo)
                   szovegek[i]...
            }


Ezt lehet így, vagy külön trükk kell hozzá?

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

   
Kuz - Törzstag | 4455 hsz       Online status #184382   2012.07.10 09:36 GMT+1 óra  
Kód:
double valami = 10.00;
double valamimas 10.01;

...valami.ToString() --> "10"
...valamimas.ToString() --> "10.01"


(Időközben kiderült, hogy lévén a régi dll is így járt el, sima tostringezéssel,ezért nekünk is ez kell...No comment...)
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???

   
DMG - Szerkesztő | 3172 hsz       Online status #184380   2012.07.10 09:34 GMT+1 óra  
És mi a source? A számokat nem tudod alapból stringbe beolvasni?
-----------------------------------------
Dont Listen to the Naysayers
   
Kuz - Törzstag | 4455 hsz       Online status #184378   2012.07.10 09:28 GMT+1 óra  
Itt az alap probléma, hogy van egy régi, szarul működő delphis dll, ami xml-be generál adatokat egy rendszernek. Ezt kell újraírnom c#-ban, de az eredmény filet, illetve a source view-t nem változtathatom meg. Kb 5 éve írták a progit, hatalmas hozzáértéssel.
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???

   
DMG - Szerkesztő | 3172 hsz       Online status #184376   2012.07.10 09:18 GMT+1 óra  
Ha kiíratnád egy log file-ba akkor megmarad a 0? Ha igen akkor tudom,h og ydurva Workaround, de onnan már megoldható.

De ha így megoldható akkor biztos megoldható valahogy programon belül is, de nem értek e c#-hoz.
-----------------------------------------
Dont Listen to the Naysayers
   
zeller - Törzstag | 464 hsz       Online status #184375   2012.07.10 09:15 GMT+1 óra  
Nem lehet mas iranybol megkozeliteni a problemat? Gondolom valami formazas miatt erdekes, mondjuk lehetne egyseges a formazas 2 tizedesre. Ha a ket szam tartalmilag megegyezik akkor ennek nem sok teteje van...

   
Kuz - Törzstag | 4455 hsz       Online status #184373   2012.07.10 08:35 GMT+1 óra  
Van egy nagyon hülye problémám. Van x darab bejövő double értékem, aminek a decimális része nem fix, azaz 0-2 pontossággal lehetnek ilyen számok, pl.:
10
10.0
10.00
Namost nekem ebből meg kéne mondani, hogy hol van a decimális elválasztó, ami azért nem triviális, mert az alábbi két szám elviekben ugye különböző:
10.0
10.00
gyakorlatilag viszont az elsőnél a decimális pozíció 1, a másiknál meg 2.
A tostring sajnos mindkettőből levágja a decimális részt, ha az 0, formattingot meg nem tudok rá rakni, hiszen a ToString(0.00) nem használható, pont amiatt, mert nem fix 2 decimális helyi értéken jönnek a számok. Ötletek?

Szerk.: Ennek kéne a comment része, így érthető a problémám.

Kód:
public static int GetDecimalPosition(double param)
{
int decimalPosition;

//missing logic :D

return decimalPosition;
}

Ezt a hozzászólást Kuz módosította (2012.07.10 08:44 GMT+1 óra, ---)
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???

   
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] > 6 < [7] [8] [9] [10] [15] [20] [25] [30] [35] [40] [45] [46]