Anonymní profil Mutagen – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Mutagen – Programujte.comAnonymní profil Mutagen – Programujte.com

 

Příspěvky odeslané z IP adresy 193.138.154.–

Mutagen
Hry › Unity3D HDRP světla, baking…
16. 3. 2020   #385664

Zdravím,

našel by se tu někdo zkušenejší než jsem aktuálně já a byl by schopen pořádně vysvětlit jak pracovat s lightmapama, lightprobama, bakingem apod v Unity3D s HDRP?

Jelikož můj projekt nemá statické světla tak jsem narazil na hodně velký problém. Nejdříve jsem pruběžně asi 1/4 roku řešil proč se mi nebakuje scéna (po baknutí vše zčernalo), ale to jsem konečně včera vyřešil a objevil se daleko horší problém ... Nehází to stíny a ještě k tomu baknutý světlo je napevno, tzv jakmile disabluju světlo, textury pořád shinujou. Tohle vše mi při RT světlech fungovalo, ale jakmile se sešlo více světel v dosahu renderu kamery tak byly neskutečný FPS dropy. Proto potřebuju pořešit bakování a zároven i stíny.
Našel by se tu někdo kdo by mi to dokázal vysvětlit jak takovýhle problémy řešit? Vím jak světla fungují, ale nevím jak fungují obecně v Unity a nastavení tak aby to korektně fungovalo.
Když nastavím mixed světla, tak to docela jde, ale dropy tam bohužel jsou, nejsou tam drastický, ale bohužel jsou tam a to se mi opravdu nelíbí a nechci aby moje hra nutně potřebovala highend pc.

S podravem Mutagen

Mutagen
.NET › Vytvoření exe souboru zahrnu…
9. 3. 2020   #385613
Mutagen
.NET › Kdy uvěřit webové stránce?
24. 1. 2020   #385318

#3 Matěj Andrle
Sice o daný problematice nevím nic, ale co třeba kontrolovat velikost bufferu a jakmile by jeho velikost další tick byl stejnej tak se vše dokončilo, protože už nic nenačítá?

Mutagen
.NET › Deserializace určité třídy
6. 12. 2019   #384949

#12 MilanL
Já prostě nepochopím proč mě tu pořád snažíš přesvědčit, že to "řeším" špatně. To, že si to rozdělím do 2 souborů ještě nutně neznamená, že ty data (herní čas a level) jsou nutné v tom hlavním save souboru a kdyby náhodou jo, tak není problém to tam přidat. Nejsem vývojář pár měsíců (v Unity možná ano přesněji 8), ale to rozhodně neznamená, že to co mám vymyšlený je špatně. Jednoduše prostě nechci v menu načítat velký soubory, protože vím, že to je akorád zdržování a žraní paměti, daleko lepší je si přečíst 1 file kde máš HeaderInfo od každého save souboru a při výběru se odkážu jen na ten hlavní saveFile. Osobně v tom nevidím vůbec nic špatně. Načtení 1souboru o velikosti pár kB vs načtení (až) xx souborů o velikosti např 10-20mB.

Tak jak jsem napsal to funguje dokonale a bez zbytečných problémů a to jsme se od původní otázky, na kterou jsem napsal, že Ok rozumím nejde to (asi 3 nebo 4 příspěvek) docela dost vzdálilo a podle mě úplně zbytečně se to řeší :)

Mutagen
.NET › Deserializace určité třídy
5. 12. 2019   #384936

#10 MilanL
Ano já tohle všechno vím, nedělám v tom pár týdnů, ale už pár měsíců. Vím jak to musím udělat aby to fungovalo, já sem se jen ptal o serializaci/deserializaci určité třídy, kde je více tříd uložených (tzv 1 subclass z mainclass) nikoli na to jak pracovat ve hře s objekty a jejich ukládání. Já vím, že musím ty objekty mít předem definované a podle nějakýho ID nastavovat, popř pokud je to nový objekt tak vytvořit, tohle všechno orpavdu vím. Mě fakt šlo jen o uložení parametru (dat) tak abych nemusel pak načítat celý "save" kterej ve výsledku může mít několik mb. Vím, že na dnešní rychlosti disků a cpu je docela irelevantní, ale když by mě to mělo načítat 20 savů po třeba 50mb tak je to hned něco okolo 1gb paměti a takovýhle "zpomalení" a ještě k tomu v menu, který je jen jednoduchá scéna je totální blbost. Vyřešil jsem to jedním main souborem ve složce se savy, kde se ukládá jen header info a jaký filesave k tomu záznamu je přiřazen a pak bude loading "pravýho" savu, kde bude vše potřebné k nastavení scény a objektů.

Jediné k čemu jsem se ještě nedostal je UID objektů předem vytvořených ve scéně, jestli je pokaždém spuštění instance (hry) se přiřadí nové UID a nebo jestli se zachovávají napříč celé scény která už existuje, ale k tomu se postupně budu dostávat až budu ukládat data o objektech ve scéně.

Takže znovu opakuju, že mám předem určenou strukturu (třídu) kde mám v podsturuktur (podtřídy) a každá má svoje využití např class PlayerData, class Enemies, class SceneItems a tak dále a každá class má svoje proměnné (id, pozice, rotace, parametry scriptů, a tak dále) prostě vše co je potřeba k tomu aby se zpětně mohlo nastavit stav objektu. A jelikož jsem jen hledal jak to nejlípe uložit tak sem přišel na de/serializaci ale tam mě reálně nešlo načíst např jenom header ze souboru, což mi bylo řečeno, že ne, tak jsme to vyřešil hlavním save souborem jen o header informacích.

PS. Proč bych si měl držet v souboru cesty k texturám či materiálům nebo jejich názvy? V Unity tohle teda není potřeba. Pokud mám vytvořený prefab tak vše je vytvořeno dopředu jen vytvořím instanci a nastavím parametry a nic víc řešit nemusím a ty co budou ve hře fyzicky získám podle UID.

Mutagen
.NET › Deserializace určité třídy
4. 12. 2019   #384911

#2 MilanL
Tak to bych zrovna mohl si vytvořit vlastní fileformat, když bych měl mít vlastní de/serializační metody.

Takže reálný to bohužel není, dobře. Toto mi asi stačí, zkusím to vyřešit nějak jinak např spec. soubor čistě pro header a data.

Díky za info.

Mutagen
.NET › Deserializace určité třídy
4. 12. 2019   #384906

Zdravím,

je nějak možné při deserializaci získat pouze určitou třídu, když mám hlavní třídu (kterou serializuju) a v ní jsou další třídy jako podsekce? př
 

[Serializable]
    public class Ser
    {
        public float A;
        public float B;
        public float C;
    }

    [Serializable]
    public class Ser2
    {
        public float D;
        public float E;
        public float F;
    }

    [Serializable]
    public class ClassTest
    {
        public Ser SerA;
        public Ser2 SerB;
    }

Serializace třídy "ClassTest" ale deserializace jenom Ser2, je to vůbec nějak reálné? Nebo musím opravdu vše?
Jde mi hlavně o to, že když tam budu mít hodně dat abych zbytečně nečetl data, ale třeba jen hlavičku.

Mutagen
.NET › OutOfMemory v GUI v 32bit
4. 2. 2019   #383005

#33 jerry

VS2013 + konzole + volaný winform na 32bit systému...
Normální Winform čistý formulář kde mám jen listbox, 3 buttony a picturebox (na zobrazení bitmapy) ...
nechápu jak by tohle mohlo tolik zabírat. GUI vytvářím přímo v konzoli (protože GUI má být jen nadstavba, pro lidi co rádi klikají) a už jsem psal že to dělám doma na 32bit systému takže asi těžko to může být konzole pro 64bit.

Ale chápeš, že to tak mám udělaný od začátku to co jsi napsal? Vše je v konzoli a z gui volám jen společný funkce a ano volám to v threadu. Jinak bych celou dobu nepsal "stejný kod volaný z GUI hází out of memory a z konzole ne"

Mutagen
.NET › OutOfMemory v GUI v 32bit
4. 2. 2019   #382995

K jerrymu už nemám co bych vyjádřil, ten tu furt jede tu svojí písničku, že se mi to do 32bitu vejde, ale ano já vím, že se to tam vejde, tu řeším důvody proč se to děje v GUI aplikaci v konzolový ne.

A k tomu, jak se do mě furt navážíš, tak to je úplně zcestný. Všichni ostatní to pochopili, jen ty tu jedeš to svoje, že to dělám špatně apod...

Jinak #30 Ovrscout
Vše dělám jak bych měl ... jak jsem psal, kod co jsem začal upravovat jsem už redukoval tak aby si to neukládalo každou bitmapu do paměti ale po zápisu zničím referenci na ten objekt. Kdybych to nechal po staru tak si neuložím do streamu ani 2k bitmap *hehe*

Ono jde o to, že to co si načtu do streamu to po zápisu do souboru zanikne, takže tam prostě je problém převážně v tom, že ty všechny data (bitmapy) se ukládají do 1 objektu kterej díky tomu nabobtná, proč to ale v GUI nefunguje a v konzoli ano je mi záhada i když to tu bylo tolikrát řečeno pořád mě to hlava nebere proč se to neuspořádá do paměti líp. Zatím jsem to vyřešil tak, že dopředu nadefinuju kapacitu memorystreamu což nějakým způsobem "zatím" funguje, ale do budoucna to budu chtít nějak zapisovat třeba po 1k bitmapách do souboru a vždy vyčistím.

Mutagen
.NET › OutOfMemory v GUI v 32bit
30. 1. 2019   #382944

#19 jerry
Třeba to myslím tak, že načtu bitmapu, zapíšu do souboru (tím ho i zavřu) a vyprázdním memorystream a znova ho otevřu pro další zápis? Opravdu si myslíš, že jsem blbej, že tohle není "zpomalení" zápisu? Nebo spíš mám říct když si už hrajem na slovíčka zvýší čas doby ukládání? ...

Nevím na kom si léčíš komplexy ale je tu od tebe víc příspěvků jak od jiných a zajímavý příspěvěk (upozorňuju zajímavý, né užitečný) se tu objevil maximálně jeden.

Takže pokud k tomu nemáš co říct víc než jen hate tak si dej zpátečku... Blbý kecy umí mít každej, v tvým případě jsou to jen blbý kecy.

Mutagen
.NET › OutOfMemory v GUI v 32bit
30. 1. 2019   #382941

#14 gna
Tak nastavení kapacity memorystreamu to vyřešilo ... Prošlo to, ale nevidím to bohužel jako ideální řešení. Docela se přikláním k postupnému přidávání dat do souboru, ale zase se určitě neskutečně zpomalí zápis.

Mutagen
.NET › OutOfMemory v GUI v 32bit
30. 1. 2019   #382940

#14 gna
No právě to je ten největší problém asi v tý využití paměti, že se to nějak blbě nafragmentuje a hned je to prostě problém...

Jinak napadlo mě že bych při každý bitmapě zapsal do souboru a vyprázdnil BinaryWriter a tím i MemoryStream ... Sice by to asi vyřešilo tento problém, ale zase netuším jak by to ovlivnilo rychlost zápisu...

Teď je jen otázka zda se vyplatí zápis do souboru co bitmapa nebo nastavit pamět dopředu.

Pokud nastavím u MS kapacitu na 350M tak se automaticky nastaví i binaryWriter?

Mutagen
.NET › OutOfMemory v GUI v 32bit
29. 1. 2019   #382922

Zdravím,

měl bych takovej dotaz ohledně BinaryWriteru a OufOfMemory s GUIčkem a konzolí...

Jde o to, že při stejném kodu (32bit) mi přes konzoli projde všechno v pohodě, ale jakmile stejný kod volám z GUI tak mě to vyhodí OutOfMemory kde kapacita při erroru je 268435456, ale když to volám z konzole kapacita je když doběhne binarywriter 536870912 kde délka je 300673812 (žádná chyba OutOfMemory).

Může mi někdo vysvětlit proč tomu tak je? Nebo jak tohle by se dalo opravit?

Když vytvořím klasicky x64 app tak vše funguje v pohodě. Chápu, že asi problém je v 32bitu ale co nechápu proč (v x86) přes konzoli žádný error a přes GUI vyskočí OutOfMemory (teda občas se stane, že nevykočí a vše se provede jak má, ale to je fakt málokdy)

PS Aplikaci bych měl rád jak pro 32 tak 64bit

Mutagen
Delphi › Blendr model do TModel3D mes…
17. 1. 2019   #382820

Zdravím

Nemá někdo zkušenosti při 3Dmodelování v blendu a následné načítání do TModel3D v delphi?

Jedná se o to Meshcollection, který mají property name ale pokaždé jsou úplně prázdné, i když v blendu ve scénáři každý objekt mám pojmenovaný ...

Je to nějaká specifická property která to v sobě má uloženo nebo v blendru musím někde něco spec. nastavit?

Díky

Mutagen
.NET › C# přidaná databáze
23. 10. 2018   #382046

Sloupečky ID, Text

1 A, 1 B, 1 C, 2 D, 2 E, 2 F

Dotaz: SELECT * FROM TABLE WHERE ID = 1;

Dotaz vyhodí všechny data kde ID je 1 tzv 1 A, 1 B, 1 C

Samosebou insert do tabulky musí obsahovat ID a Text, to ale záleží jak si to nastavíš.

Mutagen
.NET › OOP-Dotaz začátečníka
16. 10. 2018   #381955

#8 KIIV
Možná sem se blbě vyjádřil, měl jsem namysli tím, že přímo hráč bude mít přístup k metodám který by byly obsažený v ceníku ohledně toho, že this(hrac).deposit += pivo s tím, kde metoda pivo by byla obsažena v ceníku.

Samosebou, že by bylo nejlepší když Ceník by byl jako samostatný kde by pak volal hrac.depozit += cenik.pivo

Mutagen
.NET › OOP-Dotaz začátečníka
16. 10. 2018   #381950

Určitě jde o to jak si to rozvrhneš a jak to hlavně ty potřebuješ používat.

Já osobně bych to udělal tak, že bych měl třídu Hráč který by dědil třídu Cenik a v ceníku metody Pivo, Bramburky, Orisky a každá metoda by vrátila tvuj aktuální počet třeba Pivo return 25.

S tím, že Hráč by měl svuj depozit (Kasa) kam jsi jsi tyto akce přičítal (depozit += Pivo) a asi měl když už máš tu možnost udělal i klubovou kasu kde by sis třeba přičítal depozit od hráče který ti to zaplatil.

Ukládání asi nejlelpší do ini souboru je to aktuálně nejlehčí pro začátečníka. (Každý hráč by měl svuj vlastní ini soubor, třeba Franta.ini, kde by jsi měl aktuálně uložený jeho depozit)

Na ukládání bys mohl použít streamwriter a nebo přímo nějakej ini parser který ti dovolí načítat/ukládat data po sekcích.

Já rozhodně bych ten model udělal KlubováKasa která by v sobě měla List Hráčů (hráče jsme rozebrali nahoře) a promennou Kasa do který bys přičetl Hráčuv depozit pokud by "zaplatil" a hráčovi vynuloval.

Mutagen
.NET › Zjednodušení algoritmu
3. 7. 2018   #221535

#20 gna
Ajo máš pravdu, promin, ten princip funguje přesně jak potřebuju, jenže to je jen ten princip, (pro vývoj. studio) pořád tu je ta věc, že akce +1 simuluje tlačítko co automaticky pošle data na server takže ve výsledku musím ještě tohle doladit, ale s tím si musím poradit už sám.

PS. opravdu díky, ten kod je fakt parádní, snad se mi povede to přepsat přímo pro ten učel co potřebuju.

Mutagen
.NET › Zjednodušení algoritmu
3. 7. 2018   #221532

#14 MilanL
Ten cyklus nemůže počkat, chápeš, že v cyklu to být nemůže už jenom kvuli tomu, že ty čekáš až ti přijde eventa? Pořád to řikám, jakmile přičteš jedničku je to akce u který to má skončit protože ti v tu chvíli příjde od serveru další eventa kde zpracováváš další příčtení?

Prostě to nejde udělat, že v 1 cyklu zkontroluju všechny kombinace, kdyby to šlo tak už to co tu píšete dávno mám tak přepsaný. Prostě si musím při přičtení čísla pamatovat stav kde jsem skončil abych mohl v následujcím kroku (v proceduře od znova) odtamtud pokračovat. Určitě by to šlo nějak udělat líp, ale né přesně jak tu radíte. Ale určitě nad tím pořád přemýšlím, tak snad to nějak vymyslím.

Mutagen
.NET › Zjednodušení algoritmu
29. 6. 2018   #221510

#4 MilanL
To je přesně ten důvod proč jsem napsal i ty další příspěvky a v tom posledním napsal přesnou simulaci jak to funguje.

Kdyby se to dalo řešit hned v jednom spuštění tak bych to dokázal taky napsat. Tady jde o to jak jsme psal v posledním příspěvku, že co akce (snížení/zvýšení/odeslání) to přijde nová eventa a je to na tom pastebinu kompletně funkční jak to funguje v praxi. To z čeho jsi vycházel byl pouze pseudokod na testování cyklu nikoli praktické použití proto jsem pak napsal i ty další příspěvky protože sem se v tom prvním nevjádřil až tak moc dobře.

Při začáteční inicializaci jsou všechno 0 (přijde ze serveru) a co akce to proběhne komunikace se serverem viz pastebin volání eventy (OnServerEvent(e);) simuluje akci co client pošle na server (v tomhle případě zvýšení/snížení/odeslání)... Pořád je to jen kod kterej má daleko k praxi protože v praxi (třeba) e.ThirdNumber += 1; je už právě to odeslání (je to jenom ukázka pro prostředí aby to demonstrovalo serverová data co se posílaj) takže si pod e.ThirdNumber += 1; představ akci co client odešle serveru.

Mutagen
.NET › Zjednodušení algoritmu
29. 6. 2018   #221507

https://pastebin.com/ckWPWDtr

Tady jsem vytvořil přesnou kopii jak to funguje v praxi. Eventa simuluje přijem/odeslaní na server. Takže já sem závyslej jen na tom co se děje v eventě, nijak neovlivním data co mi dorazí.

Mutagen
.NET › Zjednodušení algoritmu
29. 6. 2018   #221502

Jen sem zapomněl dodat, že cyklus while je irelevantní (cyklus emuluje eventu co přijde ze serveru) kde po každé změně čísla příjde právě ona eventa. Takže zjednodušeně co 1 akce (zvýšení čísla/snížení čísla/odeslání kombinace) to přijde event (proto tam mám ten globální přepínač, který si drží v jaké fázi aktuálně je) kde po odeslání kombinace mi to napíše otevřeno nebo špatná kombinace (a tam se znova udrží stav pro zvýšení čísla až znova přijde event)

Mutagen
.NET › Zjednodušení algoritmu
29. 6. 2018   #221501

Zdravím,

už druhý den si lámu hlavu s tímto kodem, spíše s jeho zjednodušením, protože bych ho do budoucna chtěl rozšířit o další čísla, ale už takhle "jenom" při 3 číslech je to neskutečně zdlouhavý.

Zjednodušeně, jedná se o brutoforce attack s tím, že zkouší kombinace "pro tří číselný zámek" 0 0 0 -> 0 0 1 -> 0 0 2 -> ... 0 0 9 -> zvýší nadřezený (0 1 9) -> sníží podřízený postupně od 9 do 0 (0 1 0) a takhle jede dál... Jde o to, že bych to nechtěl vynulovat (proměnnou) na 0 a jet od znova ale ten postup na snížení se musí dodržet. Chtěl bych to udělat nějak elegantně, ale nedokážu si představit tohle psát třeba pro 20čísel.

Enum Send označuje že teprve tam se provede "ODESLANI" kodu (na server). Kód funguje přesně jak potřebuju a jak to má fugnovat (postup musí zustat), jen bych ho rád nějak zjednodušil a vůbec mě nenapadá jak.

Kod není úplně totožný s originálem (je to jen pro testování ve VS a bylo zkompilovatelný) proměnný
lFirstNum, lSecondNum, lThirdNumber tam ve skutečnosti nejsou je to demonstrace dat co přijdou ze serveru (ale to je asi irelevantní)
 

static void Main(string[] args)
        {
            Switch FHatratTruhlaSwitch = Switch.RaiseThird;
 
            int lFirstNum = 0;
            int lSecondNum = 0;
            int lThirdNumber = 0;
 
            while (true)
            {    
                switch (FHatratTruhlaSwitch)
                {
                    case Switch.RaiseThird:
                        if (lThirdNumber == 9)
                            FHatratTruhlaSwitch = Switch.RaiseSecond;
                        else
                        {
                            lThirdNumber += 1;
                            FHatratTruhlaSwitch = Switch.Send;
                        }
                        break;
 
                    case Switch.DownThird:
                        if (lThirdNumber != 0)
                        {
                            Console.WriteLine("Down " + lFirstNum.ToString() + "-" + lSecondNum.ToString() + "-" + lThirdNumber.ToString());
                            lThirdNumber -= 1;
                            FHatratTruhlaSwitch = Switch.DownThird;
                        }
                        else
                            FHatratTruhlaSwitch = Switch.Send;
                        break;
 
                    case Switch.RaiseSecond:
                        if (lSecondNum == 9)
                            FHatratTruhlaSwitch = Switch.RaiseFirst;
                        else
                        {
                            lSecondNum += 1;
                            FHatratTruhlaSwitch = Switch.DownThird;
                        }
 
                        break;
 
                    case Switch.DownSecond:
                        if (lSecondNum != 0)
                        {
                            Console.WriteLine("Down " + lFirstNum.ToString() + "-" + lSecondNum.ToString() + "-" + lThirdNumber.ToString());
                            lSecondNum -= 1;
                            FHatratTruhlaSwitch = Switch.DownSecond;
                        }
                        else
                            FHatratTruhlaSwitch = Switch.DownThird;
                        break;
 
                    case Switch.RaiseFirst:
                        if (lFirstNum == 9)
                        {
                            FHatratTruhlaSwitch = Switch.End;
                        }
                        else
                            FHatratTruhlaSwitch = Switch.DownSecond;
                        lFirstNum += 1;
                        break;
 
                    case Switch.Send:
                        Console.WriteLine(lFirstNum.ToString() + "-" + lSecondNum.ToString() + "-" + lThirdNumber.ToString());
                        Thread.Sleep(25);
                        FHatratTruhlaSwitch = Switch.RaiseThird;
                        break;
 
                    case Switch.End:
                        Console.WriteLine("Konec");
                        Console.ReadKey();
                        break;
                }
            }
        }
    
enum Switch: byte
    {
        RaiseFirst,
        RaiseSecond,
        RaiseThird,
        DownFirst,
        DownSecond,
        DownThird,
        Send,
        End
    }

Díky

Mutagen
.NET › Jak je to s těmi { závorkami…
22. 6. 2018   #221444

Nechci se plíst, ale nemá náhodou VB též bloky? Akorád se zapisují

if () THEN

ELSE nebo END IF

?

Mutagen
.NET › Co programovat ,jako začáteč…
28. 5. 2018   #221163

#7 Josef
Nebo se koukneš jak pracovat s bitmapou a vytvoříš si herní plochu, kde si vykreslíš mřížku a podle pozice kliknutí vykreslíš do čtverce kolečko či křížek a do nějaký matice napíšeš X či O podle který budeš vyhodnocovat výsledek.

Dejme tomu, že máš bitmapu 100x100 rozdělenou na 10x10 políček (10x10 velikost) (máš eventu mouseClick) kde ti posílají X,Y (možná mouseDown ted nevím) s ty podle X,Y (dejme tomu X = 55, Y = 59) to bude políčko na pozici 5,5 tak tam vykreslíš O/X. V matici kterou budeš procházet co tah (kvůli vyhodnocení) to budeš zapisovat též.

Toto je trošku těžší než psal BDS, v jeho verzi pracuješ přímo s objektama, tady bys pracoval čistě s 1 objektem (bitmapou) s tím, že musíš víc kontrolovat co kde kreslíš a jak.

Mutagen
.NET › Co programovat ,jako začáteč…
25. 5. 2018   #221128

#4 Josef
Určitě co psal BDS, vytvoř hru, která nepotřebuje animace, já třeba vyhrál školní kolo v programování jen díky naprogramovaým piškvorkám...

Ted si vem, že můžeš začít pexesem, pak postoupit třeba na prší apod... Takových her na který nepotřebuješ žádnou animaci je nepočet, můžeš třeba udělat elektronickou obdobu aktivit, pexesa, piškvorek, battlefield (lodě), dámu, člověče nezlob se, pokud bys chtěl do toho zapojit i trošku algoritmizaci a výpočty tak bych zkusil šachy, loyd 15, je toho nespočet co bys mohl udělat... Samosebou jak se oháníš, že z toho co umíš nemůžeš moc dělat, ale to je právě to co bys měl dělat, naučit se díky něčemu něco novýho, třeba u tohohle použiješ práci s bitmapou pak v pokročilejší fázi můžeš zkusit udělat i AI protihráče/protihráčů... Do všeho můžeš později zapojit i TCP/IP prvky (player vs player po síti) a takhle to můžeš udělat u všech vyjmenovaných her až na loyd 15 ... A postupně do toho projektu budeš přidávat další a další vychytávky.

Už jen to, že se to učíš sám od sebe je dostatečný impulz si najít nějaký projekt, který budeš postupně rozvíjet a díky tomu učit nový věci, a že to děláš sám od sebe znamená, že tě to baví takže je jedno co uděláš, vždy z toho budeš nadšený když to bude fungovat.

PS. osobně kdybych začínal já tak bych začal dámou, postupně jí rozvíjel třeba až po hraní po síti s tím, že pak když budeš chtít udělat šachy budeš mít úž předpřipravenou hrací plochu a tahy po poli a jiné. Jen tomu dáš jinou grafiku a povolené tahy pro figurky (které při výběru figurky můžeš i zvyraznit kam se figurka může pohybovat)

Mutagen
.NET › Co programovat ,jako začáteč…
22. 5. 2018   #221079

#1 Josef
Já osobně jsem se učil tak, že jsem psal i sebemenší blbosti, vlastní packer souboru, nějaký crypto programy apod. Postupně dával vyšší a vyšší cíle a převážně se učil z examplů (teorie minimum) viz když mi někdo řekl udělej matici tak jsem na něj čuměl jak na vrata, ale když řekl dvourozměrný pole hned jsem věděl ...

Dávat si zbytečně vysoký cíle (např. chci vytvořit hru) to je prostě cíl k ničemu.

Já osobně jsme dělal různý programy na stahování dat z webu, práce s mysql přes webové rozhraní (php scripty uzpůsobený postum z programu, apod) prostě různý blbůstky, který mě učili vždy něčemu novýmu. Jakože různý classy (tpc, udp, streamwriter, streamreader, vytváření vlasních komponent a tak dále).

Mutagen
.NET › Podmínky v C#
12. 4. 2018   #220345

#1 JD_1609
Co takhle si projít nějaký úplně začátečnický tutoriály? Pokud neumíš ani udělat podmínku, tak bych začal hlavně tím. Zbytek si najdeš přes google

Mutagen
.NET › Někdo ochotný pomoct se C#..…
2. 1. 2018   #219189

#1 houlis
Zkus sem něco víc poslat, třeba zadání těch uloh.

Mutagen
.NET › BinaryWriter/BinaryReader
1. 12. 2017   #218812

#2 gna
Heh, tak to vyřešilo celej problém   Taková blbost   

Mutagen
.NET › BinaryWriter/BinaryReader
1. 12. 2017   #218809

Zdravím,

Chtěl bych se zeptat jak udělat "dobře" binární zápis podle "nějakého" vzoru,

např: ID (30znaků), Size (Long hodnota), MemoryStream o velikosti Size (předchozí long hodnota).

Když jsem udělal

string g = bin.GraphicID.PadRight(30);
w.Write(g);
w.Write((long)bin.Size);
w.Write((byte[])bin.Graphic.ToArray());


Tak při načítání mě to hodí ke stringu (na začátek) nějaký znaky (\u001e) a přečte to špatnou velikost size (takže ve výsledku nemůžu číst dál)

string a = Encoding.UTF8.GetString(r.ReadBytes(30));
long size = BitConverter.ToInt64(r.ReadBytes(8), 0);
MemoryStream s = new MemoryStream();
byte[] bb = r.ReadBytes((int)size);
s.Write(bb, 0, bb.Length);
s.Seek(0, SeekOrigin.Begin);
using (FileStream fs = new FileStream(a.Trim() + ".png", FileMode.OpenOrCreate))

{
   s.CopyTo(fs);
   fs.Flush();
}

Poradíte mi jak tohle elegantně vytvořit tak aby to zapisovalo i četlo korektně?

Mě třeba napadlo si předem nadefinovat struct, který by měl jasně daný velikosti všeho, ale to jsme vypustil protože MemoryStream dopředu neznám velikost.

Díky

PS. Jedná se o zápis ID a Png souborů do jednoho dat. souboru.

Mutagen
.NET › Hra - Vrstvy na postavě
8. 11. 2017   #218423

#6 Ovrscout
Jedenapulruční? O tom jsem ani neslyšel, ale dvouruční ano.

#7 peter
Prej zkus myslet databázově a programově a napíšeš čistě teoretickej text a tom, jak teoreticky provázat celý tělo na ruzný kombinace, ano některé kombinace (štít + štít dokonce už reálně můžu použít, když někdo bude chtít)  ano počítám do budoucna i s váhou itemu, brnění apod (equipload), jinak až tak do detailu, že někdo bude utočit na ruku, nohu, krk apod ... Ne říkal jsem oživím a procvičím C# nedělám žádnou AAA propracovanou gamesu. Čistě základní systém RPGher.

Jinak co si myslíš, že u postavy je ten čtvereček? Ano Layer! Celý systém Layerů je strom (nebo to snad z tý ukázky kodu není poznat, že tam mám strom?) Tzv postava se rozděluje na Hlava, Krk, Hrud, Nohy, Ruce. Ruce mají další části a tak dále... Takže vlastně jsi tu napsal to co je úplně jasný. Jenom ses trošku rozvášnil a předvedl svojí vizi, což ti neberu za zlé, ale do puntíku fakt nehodlám ani jít. Zkušenosti si beru z her co jsem hrál, takže si myslím, že stačí to jen realizovat.

#8 MilanL
Polymorfismus už praktikuju... Jelikož tam v hlavním Layers vracím object (protože části mají jinou class). Ty itemy co nemají další podmnožiny jsou typu ItemLayer (item rozšířen o možnosti layeru/equipu...) a ruce jsou typu HandsLayer. Tzv s polymorfismem pracuju o uroven výš (na Playeru), kde mám vlastně metody Equip/Unequip/Use apod..

Player má v sobě Layers kde defakto mámrozložený typy layeru viz kod, kterým jsem vyřešil práci s layery...

Právě to co řikáš jsme řešil hned jako první věc pole, alenarazil jsme u rukou s tím, že to nešlo do dalších levelů (Hands.Left -> Hands.Left.Ring) ... Já věděl dopředu jak to udělat (teoreticky), ale kodově jsem s tím měl problém, protože práce s tou kolekcí byla otřesná. Nemohl jsem lehce přistupovat k danému itemu a bylo to dost krkolomný. Takhle už od začátku vím, že mám na layeru zbran a potřebuju jí snížit durabilitu ... jednoduše zavolám ((HandsLayer)layers[LayerID])[HandsID][HandID] a hned mám přímo k tomu objektu přístup. Šlo by to k tomu přistupovat i z batohu (jelikož třeba sekera je obsažena v batohu se statusem equipped) ale to bych musel rpojet celej batoh zjistit IDLayerů a podle nich najít tu sekeru a tam jí to snížit... Což dobře je oboje, ale přijde mi víc logicky, že přistoupím přímo k layeru a tam budu obsluhovat objekt, než abych ho obsluhoval z batohu (když je nasazen) ... Ze začátku jsem měl namysli právě to, že se mi to z batohu bude mazat (to by pak nebyla jiná možnost než k tomu tak přistupovat)

Mutagen
.NET › Hra - Vrstvy na postavě
8. 11. 2017   #218403

#4 gna
Též by se dalo použít, ale už není třeba. Možná v budoucnu použiju na rozšíření. Ty layery by se tím daly též využít, to neřikám, ale předělával jsem to na 2x a teď to funguje jak potřebuju, i práce s tím je minimální oproti tomu switch/case jak jsem to měl předtím a přehlednější.

Mutagen
.NET › Hra - Vrstvy na postavě
7. 11. 2017   #218387

Zdravím,

po delší době sem si chtěl trošku oživit C# tak jsem si vymyslel menší projekt (základní systém tahového rpg), všechno se zatím vyvyjí kladně, ale až na jednu věc. Tou jsou vrstvy (layers) na postavě (hlava, hrud, ruce, nohy). Jako první mě napadlo to udělat jednoduše, normální pole/list objektu (IDLayeru, Item) s tím, že každá část je předem definovaná. Tam jsem problém ještě neviděl, fungovalo to jak mělo až do chvíle, kdy jsem chtěl udělat  Item, který musel mít i předem definovaný na jaký layer jde nasadit (což u hlavy, těla a nohou nevadí), ale problém nastal tehdy, když to měla být zbraň, která se dá nasadit do rukou. Jelikož jsem musel při vytváření definovat kam ten item pujde nasadit tak jsem měl navýběr pravá nebo levá ruka (napevno) a nemohl si člověk vybírat do jaké ruky to dá.

Tak jsem to předělal (do aktuální podoby), že Layers je objekt který drží objekty Torso, Head, Legs a Hands (Hands je rozšířen o Hand(Left/Right) a Hand má v sobě objekty Ring, Bracelet, Hand).

Což ve výsledku funguje přesně jak potřebuju, ale to nastavování a práci s těmi objekty mě příjde strašně krkolomná až otřesná. Přes switch/case rozlišuju podle LayerTypu jaký objekt mám naplnit/přepsat/vymazat, což se mi zdá nepraktické, když do rukou můžu nasadit typ Weapon či Armory (štít) a další rozšíření o šperky a další věci co by mohli být na layeru v rukách).

Tím bych se rád zeptat jaké zkušenosti máte Vy, jak vyřešit tento problém, či jestli neuchyluju náhodou špatným směrem.

PS. Kdyby náhodou byl zájem vidět aktuální kod, dodatečně dodám.

Děkuji za pomoc :)

Mutagen
Java › Java - Cykli
2. 11. 2017   #218305

Jak to tak vidím, měla by se tu zavést speciální sekce "Pomoct s domácími úkoly - Zadarmo".

Pokud člověk ví, že je nemocnej a ve škole řeknou, dnes odevzdat, tak se jdu omluvit (normální věc), pokud učitel i tak řekne, že si to měl zjistit dopředu (normální věc), podle mě ani jedno z toho jsi neudělal a ještě tady pěkně kecáš, prostě jsi na to zapomněl a snažíš se to řešit na poslední chvíli. Přece jen takových tu bylo před tebou hodně.

Naopak, nikdo by tu neměl kecy, kdyby jsi ukázal snahu a aspoň něco napsal, tak poradí co je blbě.

Stojím si za stejným názorem jako JoDik

Mutagen
C / C++ › Ukázka kódu
26. 10. 2017   #218198

Já když jsem se třeba hlásil na post Java programátor tak jsem dostal kompletní zadání a zároveň seznam technologií co jsem měl použít při vývoji a cca 2 týdny na vypracování.

Pokud nemáš nějaký vlastní projekt, který jsi dělal (takové portfolio) co by jsi jim mohl zaslat, tak si napiš o zadání nějakého přikladu. Oni ti sami namixují převážně to, co oni preferují si myslím, přesně jak psal KIIV.

A hlavně jak čistý kod umíš napsat, jak umíš dodržovat nějakou sturkturu, zda názvy funkcí vystihuje to co dělá, popřípadě řádně okomentovaný kod. Já osobně jsem se setkal s člověkem co dělal názvy proměnnýh na bázi list1, list2, num1, num2 což není zrovna přivětivé pro nikoho.

Mutagen
Java › Pořadí prováděných metod
9. 6. 2017   #216676

#1 Honza228
Vždit se provedou po sobě. Pokud jde o to aby se spustilo na pozadí, tak spustit ve vlákně

Mutagen
.NET › Visual Basic
18. 4. 2017   #215660

Já absolutně nechápu proč někdo chodí na školu s IT zaměřením, když pak chce aby za něj někdo dělal ukoly.

PS: Ukrajinskej učitel jako učitel a určitě je vystudovanej. Místo brouzdání na netu by stačilo plnit ukoly co vám při hodině dá či vysvětluje a problém by jsi neměl.

Mutagen
Java › čtení ze souboru do swingu
25. 11. 2016   #213767

#3 Domča 

while ((s = br.readLine()) != null)
{
    String predchoziText = mujTextik.getText();      
    mujTextik.setText(predchoziText + "\n\r" + s);
}


Je tam setText neboli se vždy přepíše ...

Mutagen
C / C++ › C# / Java / C++
3. 11. 2016   #213441

Ještě se k tomu přidám já jestli můžu.

Jak už tu bylo psáno udělej si 3 uplně stejné aplikace ve všech jazycích a uvidíš co ti sedne líp ... Pokud bys chtěl aplikace hlavně na rychlost tak na javu zapomen, při větších projektech je to dost výrazné zpomalení ...

Pokud se rozhoduješ podle toho aby to bylo víc userfriendly tak Java je zase na to výborná.

Podle mě por začátečníka je výborný C#, je lehce naučitelná a docela rychlá. A hlavně přecházet mezi Javou a C# je pak docela lehký.... Já se v Javě orientoval do týdne když jsem se jí učil kvůli práci a to jsem přešel z C# ... Do C++ jsem ještě nezavítal víc jak pro konzolové aplikace takže nemůžu nějak extra soudit, ale určitě na rychlost vývoje aplikace mě vždy stačilo C# (a vše co jsem dělal v tom šlo napsat) popřípadě sem využil knihovny z C++...

A dodatek, dělal jsem totožnou aplikaci v C# (pro mě) a Javě (pro kámoše) ... Totožná aplikace mi v C# zabrala necelý 2 hodiny a v javě něco okolo 6 hodin. Takže za mě jednoznačně C# ... Ale pokud budeš chtít někdy dělat android aplikace tak se javě nevyhneš (a nebo jsem slyšel že existuje nějaký Xamarin který se píše C# a je to andorid vývoj)

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý