Keresés

Új hozzászólás Aktív témák

  • Alexios

    veterán

    válasz Tomi_78 #10024 üzenetére

    Min akarsz végig iterálni?
    foreach (JatekElemei jatelem in JatekElemei) {

    itt a foreach ugye maga a ciklus. Ezek után a zárójelen belül először jön a típusa az adatoknak ami esetedben JatekElemei lenne(amúgy használhatsz var-t is ha nem akarod kiírni, de itt most pont jól látszik) aztán a ciklusváltozónév amit adsz az adott elemnek, majd magát a listát amin végig akarsz iterálni. Viszont te az objektum típusát adtad meg és nem egy listát/tömböt/valamit amin végig lehet menni.

    Mivel egy gyűjteményed van az egészben, és az is más típusú, ezért ha tippelnem kéne nem erre akarod használni, viszont kicsit zavaros számomra hogy mit szeretnél akkor.

    Ha a kérdésed az hogy az összes JatekElemei típusú objektumodat szeretnéd frissíteni, akkor ezeket valahol trackelned kéne és azon végigiterálni(vagy technikailag reflectionnel is meg lehet valószínűleg csinálni, de ne tedd), de ebben a kódrészletben az se világos igazából hol hozod létre azokat amiket frissíteni szeretnél itt

    van egy fő osztály, amelyből minden más osztály származik a programban
    Már ez a kiindulási pont is rosszul hangzik amúgy hogy miért akarsz ilyet csinálni, biztos erre van-e szükséged

    [ Szerkesztve ]

  • quailstorm

    nagyúr

    válasz Tomi_78 #10024 üzenetére

    Mi alapján tanulsz? Eddigi kommentjeidből úgy néz ki, hogy nem vagy birtokában stabil tudásnak, nem érted a fogalmakat és eszközöket amiket próbálsz használni, csak másolsz és csavarsz rajta valamit.
    Mielőtt nekiállsz egy grafikus játéknak, legalább egy programozás könyvön rágd át magad.

    #10025 Alexios: amúgy ki lehet gyűjteni reflectionnel egy assemblyben egy adott típus összes implementációját. Pl. arra jó, hogy a tesztpluginunkba így elég egy új osztályt behajítani és a lefordított plugin már ki is teszi az új osztályt a UI-ra mint választható test scenario.

    [ Szerkesztve ]

  • Tomi_78

    tag

    válasz Tomi_78 #10024 üzenetére

    Tanácsaitok alapján végül egy List használatával oldottam meg a problémát, mégpedig így:
    class JatekElemei
    {
        public int xhely,yhely;   
    }
            
    List<JatekElemei> jatelemeilista = new List<JatekElemei>();
            
    class Jatekos: JatekElemei
    {
        public Bitmap kepe;
        public byte animidozito=5,lovesvsz;
    };

    Jatekos a_jatekos;
           
    class JatLovedekei: JatekElemei
    {
        public Bitmap kepe;   
    };
            
    List<JatLovedekei> jatlovlista = new List<JatLovedekei>();
            
    class Deneverek: JatekElemei
    {
        public int dirx,diry;
        public Bitmap kepe;
        public byte animidozito=5;
    }

    List<Deneverek> deneverlista = new List<Deneverek>();

    Aztán minden példányt a létrehozásakor beleteszek ebbe a jatelemeilista listába, pl.:
    a_jatekos = new Jatekos();
    (...)
    jatelemeilista.Add(a_jatekos);

    S most már mehet rajta a foreach ciklus:
    foreach (var jatelem in jatelemeilista) {
            jatelem.xhely=...
                }


    Nekem jónak tűnik így, de ha láttok benne valami hibát, írjátok meg okvetlenül.

Új hozzászólás Aktív témák