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 185.138.71.–

Mutagen
.NET › Nutné schopnosti na trhu
5. 11. 2021   #388925

Podle mě pokud nehledají doslova profesionála, tak šance určitě by byly. Rozhodně bych se nebál toho, že si člověk někde neškrtne, protože každá firma má popř. vlastní systémy, ve kterých je potřeba se orientovat (ale to naučí oni). Pokud znáš syntaxe tak by to určitě problém být neměl.

PS. Delphi mrtvý není, u nás ve firmě je to pořád hlavní jazyk.

Mutagen
.NET › Prostřední hodnota.
1. 11. 2021   #388917

#33 Montezo
"To si pročtu na Wikipedii, a můžu to odvyprávět"

Popravdě, snažíš se učit programovat/vyvýjet, ale dohaduješ se tu s náma o něčem o čem nevíš, že existuje, ale na wiki taky dáváš klíčový slova co ti to má najít. U hledání na google je to to samý. "Nevím, že ¨taková metoda existuje", no tak co třeba to zkusit podle klíčových slov zadat do googlu? Viz jak tu už někdo psal.

Mutagen
.NET › Prostřední hodnota.
29. 10. 2021   #388858

Já bych použil Array.Sort(), pokud víš, že budou vždy 3 hodnoty tak bych to naplnil do arraye, vysortoval a vypsal prostřední číslo

int[] hodnoty = new int[] {40,78, 55 };
int prostredniHodnota = Array.Sort(hodnoty)[1];
 

Mutagen
.NET › Window server - cloud
23. 9. 2021   #388657

A co třeba steam? Tam si můžeš udělat dedikovanej server a přímo jejich api podporuje i to, že hráč založí lobby a ostatní se k němu můžou připojit.

Dokonce mám pocit, že ani nemusíš hru vydat na steamu, postačilo by jí do steamu přiřadit jako lokální aplikaci a mělo by steamAPI taky fungovat. Ale to nemám odzkoušený.

Mutagen
.NET › Dynamické rozložení ovládací…
15. 9. 2021   #388607

#10 Kubas129
Já být tebou tak přejdu na Unity, já sice o Vulkanu nevím nic, ale v Unity už nějaký ten pátek dělám a za mě top i na mobily

Mutagen
.NET › Dynamické rozložení ovládací…
15. 9. 2021   #388594

#1 Kubas129
Já na design aplikace tak aby byla scalovatelná použivám rozložení přes panely s aligmentem, takže při rozšíření/zmenšení okna se vše drží přesně jak má.

Kdybys to dělal v Unity (jak jsem ti jednou říkal, že by to bylo asi jednoduší) tak tam stačí 2-3 řádky co ti vypočítá poměr okna a nascaluje canvas s tvým UI.

Pokud ti jde o ruční nsatavování pozic u komponent tak vždy musíš počítat s komponentou za kterou to chceš dát. Takže pokud máš label3 na pozici podle tvého výpočtu, tak musíš do dalšího výpočtu ho zařadit

textbox.Left = label3.Left + label3.width + mezeraMeziKomponentama

Mutagen
.NET › Server
14. 9. 2021   #388589

Klient pouze přes api co je na serveru a server co komunikuje napřímo s DB.
 

Mutagen
.NET › Nesmyslný error
16. 8. 2021   #388449

#6 BDS
Ber v potaz to, že je to "noob" :)


#5 Kubas129
Jako ale design nic moc no :D tak snad to aspon funguje kodově, jen škoda, že dovolíš hrát jednoho hráče :D

Máš komplet logiku nebo zatím jen tohle?
Tím komplet logikou myslím, i ty kartičky, co tě propustí z žaláře, osvobodí od daní apod? A dal bych opravdu ten obrázek pryč, je to díky tomu fakt nepřehledný, a nevím jestli ten telefon je stahnutý nebo nakreslený, ale vypadá jak reálna fotografie, mžoná by chtělo vše dělat z realistických obrazku nebo vše z naamlovaných, mix prostě nee.

Mutagen
.NET › C# ukazatelé
12. 8. 2021   #388384

#15 Kubas129
No je vidět, že asi nemáš ani základní znalosti v tomhle, ale nevadí.

Stáhni si paint.net ten umí vrstvy a je jednoduchej, v tom to uděláš krásně.

Jinak k problematice netransparentního pozadí

Bitmap bmp = tvujObrazek;
bmp.MakeTransparent(bmp.GetPixel(0, 0));

S tím, že na pixel 0,0 vlozíš barvu, která má být transparentní takže např. bílá

.NET › C# ukazatelé
11. 8. 2021   #388372

#6 Kubas129
Jasný, už asi vím o co ti jde,

zkus přidat do listu referenci playera nikoli jako nový objekt. Ale mam pocit, že pokud budeš mít
Player p = new Player();
list.Add(p);
list2.Add(p);

tak jakmile změníš např p.Name, tak by se to mělo projevit v obouch, ale záleží na tom jak to plníš a jestli to plníš ze stjený instance.

.NET › C# ukazatelé
11. 8. 2021   #388370

Nechci být rýpal, ale příjde mi, že ty vždycky si něco novýho přečteš a hned to musíš zakomponentovat do programu, i když to vůbec ale vůbec není nutný používat. Jinak JerryM ti poslal vše co pravděpodobně potřebuješ.

Jinak "is" a "Equals" se používá.

Mutagen
.NET › Filozofie komunikace klient…
9. 8. 2021   #388361

#18 Kubas129
A to je tak těžký si napsat vlastní proceduru na změnu jak tu někdo už psal?

AddUser, RemoveUser, apod a k tomu udělat jednu univerzální listChanged(list) kde provedeš přesně to co potřebuješ např pošleš klientům a oni si nový list nastaví? Hledáš něco složitého v něčem co je úplně triviální.

Mutagen
.NET › Filozofie komunikace klient…
9. 8. 2021   #388359

#16 Kubas129
Tak co třeba zkusit Unity3D? Též se v tom píše v C# a nemusel bys řešit žádný vlákna (pokud bys vysloveně nechtěl), mnoho návodů skoro na vše, a je to doslova GameEngine, takže lehčí práce s objektama, animacema, apod.

Mutagen
.NET › Filozofie komunikace klient…
9. 8. 2021   #388357

#13 hlucheucho
Já si zase myslím, že si ho spíš ulehčuje a to tím, že píše sem (na české forum) aby jsme mu vymysleli řešení, které si stejně udělá úplně jinak namísto vyhledávání na google, kde vše na co se tu ptal je lehce dohledatelné do pár minut i s examplama.

Pokud jsem to dobře pochopil snaží se udělat něco v XNA (nejsem si přesně jist, ale nepřestal se XNA nějak před několika lety vyvýjet?) Nebylo by pro něj lepší na tu hru použít nějaký gameengine (např. Unity3D též v C#) s tisicema návodů na yt, či dokonce přímo na jejich ofic. stránách?

Mutagen
.NET › Cross-thread operation not v…
3. 8. 2021   #388297

Já když pracuju s vlákny tak si většinou vytvářím eventy co mi posilaj data z vlákna ven a pokud potřebuju rpacovat s GUIčkem, tak použiju delegat a invoke

Mutagen
.NET › Server - Klient logika
29. 7. 2021   #388267

#20 hlucheucho
Doslova a dopísmene jsem mu toto posílal i cca 3 vlákna zpět, jen trošku jinak zformulovaný.
Tolik vláken a vše se točí okolo 1 problému.

Mutagen
.NET › Server - Klient logika
28. 7. 2021   #388255

Vše co ovlivnuje chod hry dělat na serveru.

Hráč hodí kostkou, tím se pošle požadavek na server aby vygeneroval hod, ze serveru jen vrátíš hráčovi výsledek se kterým pracuješ.

Vše co je na hráčovi straně se dá ovlivnovat a opravdu nemusí upravit zdroják.

Jinak co tu čtu, tak se zase řeší ten problém co se řešil asi 3 vlákna zpět.

Mutagen
.NET › Vhodný formát pro internetov…
19. 7. 2021   #388212

#48 Mutagen
I když, teď si přesně nejsem jist, jestli statická třída = singleton, pokud je to rozdíl tak používám jen singletony.

Mutagen
.NET › Vhodný formát pro internetov…
19. 7. 2021   #388211

#47 Kit
Tak já to taky nepoužívám na každou blbost, ale vím, že třída "GameManager", "Settings", "LevelManager", ... Prostě refaktorovat nikdy nebudu. Ale je fakt, že v klasickým programu sem to nepoužil taky už nějakej ten rok, jen u her.

Mutagen
.NET › Vhodný formát pro internetov…
19. 7. 2021   #388208

#31 Kubas129
Víš co, já ti poradil víc než dost, to, že tvoje znalosti tomu bohužel nestačí, už není moje chyba. To co jsem ti sem vše popsal sám používám ve svých hrách a nikdy jsem s tím problém neměl.

Ono by asi nejdřív stálo za pořádný návrh tvojí aplikace a tím se řídit, protože sám asi bastlíš z vody a zkoušíš co a jak dělá (neboj taky jsem to dřív dělal), ale když ti něco pošlu co je funkční a použitelný a ty k tomu vymýšlíš "jak to udělat jinak" tak je prostě chyba u tebe.

To co pošleš, to příjmeš.

Proč něco tvořit staticky? Já třeba statický třídy používám pouze když potřebuju 1 instanci na celej program/hru.

Vidím, že vlákno je označeno za vyřešené, ale nikde tu nevidím jak se to vyřešilo. Bylo by dobré pro další lidi, kdyby měli stejný problém aspoň sem hodit jak jsi to vyřešil a nejlíp i s částí kodu?

Mutagen
.NET › Vhodný formát pro internetov…
16. 7. 2021   #388170

#24 Kubas129
Pokud máš pocit, že moje řešení ti nevyhovuje, nepoužívej ho a udělej si vlastní :) Jen by mě zajímalo jak budeš dopředu vědět jak velký bude pole, když velikost pole ti vytvoří Serialize metoda. Samosebou za předpokladu, že budeš mít předem definovanou velikost pole a přesně rozloženou strukturu packetu, tak ano.

Spíš to vypadá, že nemáš ani pořádně základní znalosti a snažíš se udělat něco hodně nad rámec svých zkušeností, ale pokud si myslíš, že uděláš lepší řešení, tak udělej.

Mutagen
.NET › Vhodný formát pro internetov…
16. 7. 2021   #388168

#21 Kubas129
 

public static byte[] Nadstavba<T>(byte aID, T aData)
{
	byte[] lData = Serialize<T>(aData);
	byte[] lDataWithID = new byte[lData.Length + 1];
	Array.Copy(lData, 0, lDataWithID, 1, lData.Length);
	lDataWithID[0] = aID;

	return lData;
}

použití:
byte[] lTest = Nadstavba<Movement>(0x09, lMovement);
Mutagen
.NET › Vhodný formát pro internetov…
16. 7. 2021   #388167

#20 Kubas129
Možná by nebylo odvěci nejdřív začít se základama programování. A proč bys to přidával přímo do metody si na to udělej nadstavbu co ti to vrátí i s tvým přiznakem.

Btw. Array.Copy

Mutagen
.NET › Vhodný formát pro internetov…
16. 7. 2021   #388164

#16 Kubas129
Co??? Já vůbec o žádných statických třídách nepsal. Vůbec nevim smysl toho co jsi napsal.

To co chceš ze serveru posílat tomu klientovi na to si udělej třídu. Nechápu co nechápeš na tom, když jsem to za tebe defakto napsal, jen třídy musíš udělat sám, protože jen ty víš co za data potřebuješ posílat.

Mutagen
.NET › Vhodný formát pro internetov…
16. 7. 2021   #388158

#12 Kubas129
No to nebude, musejí byt přesně 1:1 aby to z dat šlo přečíst. Otázka spíš zní, proč mít jinak udělanou třídu v jednom programu a ve druhým též jinak?

Jinak né kolem 256, ale přesně 256. Popřípadě pokud chceš víc tříd tak si tam posílej 2 byte za sebou (ushort) a máš hned 65535 tříd k dispozici.

Asi nejjednoduší bude když si vytvoříš třídu přesně tech dat co chceš posílat a s tím budeš dál pracovat, podle mě je zbytečný něco víc vymýšlet a parsovat, když ti serializace vyřeší vše a nemusíš se o nic starat.

Mutagen
.NET › Vhodný formát pro internetov…
16. 7. 2021   #388153

#5 Kubas129
Jak napsat Kit, pokud to máš takto a nechceš to udělat jako datovou strukturu, tak to parsuj jako xml a máš vyřešeno.
Jinak [Serializable] to, že se ti nelíbí je sice fajn, ale prostě tam být musí pokud to chceš prohánět přes serializaci. Musí to být u každé třídy, kterou chceš tímto způsobem zpracovávat.

A ano můžeš tam mít i kolekce, pole cokoliv a samosebou, že stejně definované třídy musíš mít i ve druhé aplikaci aby je to dokázalo načíst. Pokud by ses pokusil poslat serializovaný data třídy Movement tak ti při čtení třeba třídy Combat vyhodí error, proto ten první byte co bys přidal k poli by značilo co to je za třídu
např.

byte 0x00 = Movement class
byte 0x01 = Combat class

než to pošleš do Deserialize tak vymažeš první byte

switch (array[0]):
case 0x00:
	Movement lBytesToMovement = Deserialize<Movement>(array);
break;
case 0x01:
	Combat lBytesToCombat = Deserialize<Combat>(array);
break;
Mutagen
.NET › Vhodný formát pro internetov…
16. 7. 2021   #388147

Já osobně bych použil serializaci. Je to asi nejjednoduší postup, sice budeš posílat data navíc (ale to asi v dnešní době pár bytů navíc nevadí) a třídy bych rozlišoval podle prvního byte, který si ke každýmu poli přidáš

public static byte[] Serialize<T>(T aData)
{
	BinaryFormatter formatter = new BinaryFormatter();
	using (MemoryStream ms = new MemoryStream())
	{
		formatter.Serialize(ms, aData);
		return ms.ToArray();
	}
}

public static T Deserialize<T>(byte[] aData)
{
	BinaryFormatter formatter = new BinaryFormatter();
	using (MemoryStream ms = new MemoryStream(aData))
	{
		return (T)formatter.Deserialize(ms);
	}
}

Nějaká tvoje třída dat který chceš posílat (např. pohyb)

[Serializable]
public class Movement
{
	public float X;
	public float Y;
	public float Z;

	public Movement(int x, int y, int z)
	{
		this.X = x;
		this.Y = y;
		this.Z = z;
	}
}

A použití

Movement lMovement = new Movement(5, 5, 5);
byte[] lMovementToBytes = Serialize<Movement>(lMovement);
Movement lBytesToMovement = Deserialize<Movement>(lMovementToBytes);

Je to psaný na koleni, možná tam budou chyby.

Za mě asi nejjednoduší cesta (záleží jestli nutně potřebuješ jen text nebo třeba kompletní třídy, kde máš data)

 

 

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