Diskuze: Svět z písmen
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Tvůrce
Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Spíše než cyklům bych se vyhnul té příšerné deklaraci nahoře, to patří do souboru, si udělej třeba texťák, kde bude:
001100
010010
010010
001100
To si načti. Nechápu tu třetí dimenzi, k čemu je? Stačí ti přeci tohle, jestli tam chceš náhodné znaky, tak místo jedniček měň v update nějaké ASCII hodnoty, jen si vyber jednu, co bude označovat prázdno.
Jo už chápu, to jsou políčka animace. Stejně bych to raději dal do jednoho pole typu Frame (struktura co obsahuje ty políčka), tyhle pole jsou cesta do pekla. Celé by to mohlo být jako struktura Sprite, obsahovat věci jako rychlost animace a tak. Prostě abys s tím pracoval jako s objekty a ne s x-rozměrným polem.
No to mi na cyklech jen přidá... Chtěl jsem se vyhnout kopírování (z tvé práce) a práci se soubory. Ty cykly vidím jako problém kvůli tomu, že jak píši - chci tak udělat celý svět...
A jak si budu uchovávat jednotlivé snímky?
Což takhle?
public string[][] frames = new string[][]
{
new string[]
{
"00011000",
"00111100",
"00111100",
"00011000",
"11111111",
"10111101",
"10111101",
"10111101",
"10111101",
"00100100",
"00100100",
"00100100",
"00100100",
"01100110"
}
};
int X = x;
foreach (string line in hero.frames[0])
{
foreach (char part in line)
{
string letter = Convert.ToChar(r.Next(97, 122)).ToString();
Rectangle rectToCenterIn = new Rectangle(X, y, 12, 12);
if (part == '1')
spriteBatch.DrawString(mainFont, letter, new Vector2(rectToCenterIn.Left, rectToCenterIn.Top) + (new Vector2(rectToCenterIn.Width, rectToCenterIn.Height) - mainFont.MeasureString(letter)) / 2, Color.RoyalBlue);
X += 12;
}
X = x;
y += 12;
}
Z hlediska návrhu nemají data ve zdrojáku co dělat, ta patří mimo. V kódu má být logika. Snímky zapíšeš za sebe, jako jsem to dělal třeba u těch kostek v Tetrisu. Takový soubor poté naparsuješ jako instance Snimek a uložíš do instance Sprite, což bude kolekce snímků.
Zobrazeno 6 zpráv z 6.