"ááá áĽáá°áááá á áááá" áśá áŤá áľ
ááá: á ááá ááá˘áá˝ áá ááá°á áĽá á¨ááłá¸áá ááŤááľ ááááá á¨á áᲠá°áá˝!
áľááá: á¨ááá á¨ááłáá˝á á C/C++ áĽáá´áľ ááá áĽáá°ááááŠ!
ááá áá á ááá ἠá ááĽááľ: á¨áá°áá áŞáŤ áááľ á¨áĽá á¨áľáŤ áአá áá°ááᣠáá á á¨áłáááą áŽáľ áááľá¨á áĽáááŤááᢠá¨ááłáá˝á áľááááľ!
áá áľá
á¨áŽáááŠá°á áá á˘áá°áľáľáŞ á áŁá áľáá
ááᣠááŹá á¨ááá á˘áá°áľáľáŞ á¨á áá áĽá¨á°á፠ááᢠá¨ááłáá˝ á¨á°áááľ á¨áŽáááŠá°áŽá˝ áĽáľááľ á¨á°ááá¨á áľ áá ááᎠáá, á áááá á°á¨ááá˝, ááľáĽáľáĽ áĽá áá°á¨áłá á¨áĽáľááľ áá´áá˝ á áá áá. á áá áá°áľ á¨á¨ááł áá°áŽá˝ ááľá á á°ááá ááŤáááľáŁ ááááľ áĽá áľáá˝ ááłá¨áľ áááŠá˘ á á¨ááłá á áŤáą áĽáľááľ áá áĽáá˛áŤá°áŠáŠ áĽá áľá áá°á¨áą áĽááłáá¨áá áŤáľá˝áááłá. ááá áá á¨ááą áá, á¨á¤áááá˝ áá, ááá˘ááš "ááá áľáá" áĽá áá
áŤá°ááá. á¨á¨ááłáá˝ áááľ á ááááŁá áá á°áááᢠáĽá á¨áááľ áá á á¨áĽáŤáľ á áá áá¸áá ááááŤá.
á á°ááłáłá ááᣠá¨ááá˝ á°áá˝á á¨ááłáá˝ áľááŤááľáŁ ááá˝ á°áá˝ áŁááĄáľ áŚáłáŁ á´áŤáŁ áá¸-áŁá
áŞáŤáľáŁ á¨á¨ááł ááŤááŽá˝ áŤáááá¨áĽ áĽááá°áłááᢠáľááá
áŤáá á°ááááĽáŠâŚ
ááĽá áĽáť á°áἠá ááá á¨áŤáłá˝áá áááá˝ áááá á ááá á áá ááᢠáĽá á áĽáŁ áááľ áĽá ááááľ á áąáľ á¨áááŠáŁá¸á ááááľ!
áĽá á¨áĽáŤáľáá á¨á¨ááł áá°á áĽá á áአáá á¨ááł á ááá ᣠáááá˝áá ááááᾠᣠááľáŽáśášá ááĽá¨á áĽá áŤá˘ááá á ááá á ááłáĽ á¨á áá áááľ áŤáá áĽá á áá ááŽááŤáá áááá áĽáá°áá˝á á á áááľ á ááááá˘
á áá á˝áá ááľáĽ á C / C ++ ááľáĽ áľááá˝ á¨ááłáá˝á áĽáá´áľ ááťá áĽáá°áááአᣠá¨áĽáľááľ áá°áą áá áĽáá°áá áĽá á á°á¨ááá á áŤáŁá˘ ááľáĽ á¨áľáá áá ááłáá፠áá áĽááłáá ááááá áĽáááŤááᢠáĽáą ááá áá áĽáá á¨ááá°áĽá á áá áá°áľ ááááťáᢠááłááľ áľá áľáááá áĽá áĽááᾠᣠáľá ááá á¨á áá áĽááłáŹ á á áá ááᢠá áá á áááá "á áľá°áłá°áŠ ááá á áĽááŽá á°á áŤá á áá°áá!"
ááááľ
"áŤá ááááľ áĽáááľ á¨ááą ááᣠáŤá áĽáááľ áááááľ á á°áá ááá˘" áŽááá˝á¨áľ
ááľáłááť á°áĽá°áŹ áááá´ áá!
áľááá
, á á°ááŁá, ááĽá ááá ááá á¨áááá¨á á ááľáłááť á°áĽá°á áá áááľ áĽá˝ááá. áĽá፠á¨áá˝áá á¨áĽááľ á°áĽááľ á°ááŁáŽáźá áĽáť áłááá ááłáᣠááŽááŤá áááŁáľáŁ á¨áá°áľ áá áłáá˝á ááá°á áĽá á˝ááŽá˝á áĽááłááᣠá¨ááłáĽ á˝ááŽá˝áá áááᢠáááá á¨ááľáłááť á°áĽá°á á°á áá áĽá á áĽááłáľ áĽáť áťáᢠáášá
ᣠááš áĽá á áľá°ááá ááᣠIMHOá˘
á¨áĽá (ááľááá á¨á°áá) ááľáłááť á°áĽá°áᢠáá
áááľááᢠá¨áááľ á°áááľ á°ááŁáŤáľá, ááłáŚá˝á, áľááá˝á, ááľáá˝á, áááľááá˝á, áĽáá áá˝áááśá˝á, áŽáľá áĽá á¨ááłá°ááľá ááá.
á áá á°á¨á, áśáľáľ ááŽáááśá˝á áá ááá á˝áŤáá (áá á "áá¨á¨áť" áááᤠááľáĽ áá, ááááŤáąá ááááá áááľ á á ááťáŤáááľ ááá፠á ááá ááłáĽá áá˝áá).
- ááŽáááľ 0 áá á¨á ááľááľ á¨ááł áá°áá á áá áá á C# á¨á°áťá á ááá´ááľ ááłáŤ 3D áľááááľ ááᢠá macOS áĽá áááśááľ ááľá¨áŽá˝á˘
- á¨ááł 1: á¨áŽááśá á¨ááł ááá áĽáŁáĽ (áááá á°á "áĽáŁáĽ" á ááŁá ááłááá) ááááśáᢠá C á°ááá˘
- á¨ááł 2: á¨áŽááśá á¨ááł Crazy Tanks (áááá á°á "áłáááľ" á ááŁá á¨ááłáá )ᣠá áľááľá á C ++ (áááá˝á á áá áá) áĽá áĽáá˛áá á áááśá á¨á°áťáá˘
ááŽáááľ 0 á ááá´ááľ ááłáŤ
- ááľá¨á áááśááľ (áááśááľ 7ᣠ10)ᣠáá áŚá¤áľ (OS X El Capitan v. 10.11.6)
- ááá: C#
- á¨á¨ááł áá°á;
á ááľááľ - á°ááłá˝ááľáĄ-
áłááŞá áá - áá¨ááťáĄ
á¨ááá
3D áľááááľ á ááá´ááľ ááłáŤ
á¨ááááŞáŤá ááŽáááľ á¨á°á°áá á¨á á C/C++ áłááá á C # á¨áŠáᲠá¨ááł áá°áá á áá áá ááᢠáá
áá°á á áááľáá áá á¨áááááá áŤá
á á ááá á¨á
áá á áŠáᲠááľáĽ á¨áá á¨á á áá á ááľ á áááľ á¨ááłá ááłá á á ááá á¨áᢠá¨áá á áááľ áŁá ᪠áŤáá 3D áľááááľ ááá á ááá áá áᢠáĽáą ááá áááá áĽáˇ (á¨áááłáľá áá áá´á á áľááááá =) ááááłááľ áĽá á¨ááá ááá áá áááááľ áá á¨áŁáľá˘ á ááľááľ áá áĽáá°ááᣠá¨áĽáľááľ áá°áą áá áĽáá°áá áĽá á ááľá ááá áááá á áá áŤá á áĽá¨áľ áĽáá°ááŤáľááá áá¨áłáľ áĽáť á áľááá áá áᢠá¨á ááá´ááľ á´á ááŽáááľ á¨á°ááá°á á áá ááááľ áá (áľá á¨á°ááá°áá á¨á Ꮰááá°) ááᢠááŽááŤáááᣠáá´áááᣠá ááá˝áᣠá´ááľáľ ááľá¨á ááááŁáľ á¨áááľ áá á¨áĽááľ áľáŤ áá áśáĽááá˘
á áŠá˛áŠáĽ áá á¨3-á áá´áá˝á áĽáá´áľ ááá á áĽáá°ááťá á ááľá°ááŞáŤ áŞá˛áŽáá˝ ááááŠá˘
á ááá˝á á°ááĽáŻá áĽáá˛ááľá ááááá ᣠá°á¨á᪠á¨á áĽááľ áááťáá˝á áá´á áŤáľááᢠá¨áĽáá°áá á áááľ áľáá ááśá˝ á áá ᨠ30 á°á¨ááľ áŞá˛áŽ áááá á áĽáť á¨á ááá˝á áááá˝ ááŁáŞáá˝ áá áŤá á áľáá áľáŤ áĽáá°áá°áŠ áááááŁá. áá 3D áááá˝ áá°ááłáľ áááŤá! áĽá á¨á፠á¨á˛áŤáľá á¤áśá˝ ááĽá°á á ááľ ááá áĽááááŤáááĄ- âTa, a shitty cartoon / movie! á¨á°áťá ááľáŤáľ áá˝á áá áâŚâ ááá˝!
áĽá á áá ááŽáááľ ááľáĽ áľá ááŽááŤááá á ááľ á°á¨á᪠ááá. áĽáá° á°ááá ᣠááĽá á áŁá á¨ááŤáľá°áľáľ ááá á¨ááłáĽ ááá áá áᢠáľááááąá áŤá¨ááá (á ááŽáááą ááá፠ááľáĽ áŤáá á¨áá¨á ááľ áá áááááľ) ᣠáŤááŤá á á´áľ áá áá¸-áŁá ᪠áá á áἠááŞáŤ áĽáá°áá˝á¨á¨á¨á áŤáľá°áááᢠáĽáá˛á ááááąá á¨áŤá፠áá˝á¨áá¨á ááŽááŤá ááááááľ á ááááŞáŤ á áá ἠ(2D) áá áŤááá á¨áŚáł ááĽáĽ ááá ááŤáá˝ áĽá á¨ááŤá á áá (3D) áá ááľááľ áá á¨áĽá. á¨ááŤáľáá ááá á áľáá ááľ á¤áľ ááłáĽá á áá áĽá á áľáá˝ áá á ááá ááᢠá á¨áá ᣠááááŁáľ ᣠááááŤáąá á áľáá ááľ á¤áľ áá ááłáĽ á á áááľ ááľáĽ áĽáá´áľ áááá áĽáá°áá°áá á á ááá á áŤáľá¨áąááľáᢠááá áá á áááá áľáľáłááľáŁ á ááᣠáŤá á áĽáᎠáá¸áłáᣠááááŁá! áĽá ááľáĽáľáĽ áľáŤáá˝á áĽáá° á áľá°áłá˝ ááĽáą ááľá°áá ááááŤá. áĽá á¨á፠áĽááľá áŤáľáŁá: "á°á á, ááá * á¨á°áá°áłá˝á * á¨ááłáĽ áá áĽááá áááŽá˝ á¨áľ ááá á áá áĽáá°áá˝á áááአá ááťáá?"
á áá ἠáĽá á áá áá á¨ááĽáĽ ááá ááŤáá˝á áááľááľ á¨áááŽá˝ áľááľ (á¨áĽá ááľáłááť á°áĽá°á)
á¨ááł 1
- ááľá¨á áááśááľ (á áááśááľ 7 ᣠ10 áá á°ááľáá)
- ááá: á ááá Რá¨á°áťá áááľááá
- á¨á¨ááł áá°á; á¨áááśá áŽááśá
- á°ááłá˝ááľáĄ-
javidx9 - áá¨ááťáĄ
á¨ááá
ááá á¨áĽáŁáĽ á¨ááł
á¨3-á áľááááą á¨ááł á áá°ááᢠá á°á¨ááŞá á¨3-á áááá˝á (á á°áá áá¸-áŁá áŞáŤáľá) áá á¨á˝ áĽá ááááłááľ á¨á á áĽá á¨áŁáľ ááᢠá¨á ááľááľ áá á¨á°áŤááľáŠ á ááᣠááá á áĽááłááĽá á°ááááĽáŠáŁ ááá á¨áá á¨áą áááá áĽááłááĽá á°á¨áłáᢠááá áĽá ááŁá á¨áá ááá, áá á á°ááłáłá áá ááá á ááá, á¨á¨ááłáá˝á ááá á ááá¨áłáľ.
áĽá ááá áĽá ááŁá áá á áá? áá áá áŽááśá áĽá 2D áá áἠá áľááá ᣠáŽááśá áĽá ááááśá˝ áĽááłáᢠáĽáá°áá á á áááá¨áĄ áá á°ááľáŚ áááá áááአ(á á á ááá á áááá¨áĽ ᨠXNUMX áá ááá ááá á áŁá á áĽáŽáłá áĽá á á°áá áá ፠áĽáá°áá áĽááĽá¨ááá)ᢠáŽááśá á´áľáŞáľá á¨á°áŤá á¨á ááľ ááŽááŤáá áŞá˛áŽ áááŹáŤááᢠáĽá á á¨ááłá á°ááłáłáááľ, "áĽáŁáĄá" áááá¨áĽ áá°á. á¨áŞá˛áŽá ᣠáľá áááľ áá á¨áłá áááŽá˝ á°áááŠá - á¨á¨ááł loop (á¨áśáľáľ áá á¨áłá á°ááŁáŤáľ / áááá˝) áĽá áá° ááľ áá ááľá˘
á¨á¨ááł ááááą áĽáá°áá áŤá ááá áááľá áá˝áááĄ-
int main()
{
Setup();
// a game loop
while (!quit)
{
Input();
Logic();
Draw();
Sleep(gameSpeed); // game timing
}
return 0;
}
áŽáą áááá áá () á°ááŁá á á ááľ áá áŤáááŁá. áĽá á¨á¨ááłá áá°áľ á¨áááá¨á á¨á°ááá á áľá°áŤá¨áľ á áá áá. á loop ááľáĽ áśáľáľ áá°á¨áłá á°ááŁáŤáľ á áᥠáá¤áľ()ᣠááá()ᣠáľáá()ᢠá ááááŞáŤ ᣠá¨áá¤áľ ááἠáá¤áľ (á áááááľ á¨ááá áááśá˝ ááĽáĽá) ᣠá¨á፠á¨ááŁáá ááἠáááá á ááľáŹáľ ᣠá¨á፠á á፠ááš áá - ááłáᢠáĽá áľááá áĽáŤááłááą ááŹá. á ááá˝á á¨ááá á¨á á áá ááááľ ááᢠáĽáá° áŤááąáá˝ ááᢠáĽááá áá á¨áá¤áľ áááĄá ááŤááľ áĽá áá áááľáłá áĽá áĽá áĽáľá¨áááá áľá¨áľ á¨á¨ááłáá ááŹá ááĽááľ áááľááᢠáá áĽáá á¨ááá () á°ááŁá á áŁá ááŁá áá. áľááá á¨ááŹá ááĽááą áá áá áá á á¨áááľáá á áĽáá áá () á°ááŁá á á¨ááł á¨ááĽááľ áááŞáŤ áááŁá á á áá áľá˘
á¨á¨ááł áá°áľ. á¨áĽáŁáĽ ááŽááŤá á ááľáłááť á°áĽá°á ááľáĽ
ááłááŤá á¨áŽááśá á¨ááłá áĽá¨á°áŠ á¨áá á á°ááá°á á¨áĽá¨áľ áá ááľ 'cout' á áá áá á áľááŞá áá áŤááá áá¨á ááłá¨áľ á áá°áŤá - á áŁá áááá ááᢠáľááá , áá¤áą á áľááŞá ááľ ááľáĽ áá¨ááá á áá áľ. á áŁá ááŁá áĽá á¨ááłá áŤá áĽáá¨á áá°áŤáᢠáĽáááąá áááááᣠáľááŞá ááľ áá áĽáá°áá áĽá áĽáá´áľ áĽáá°áá°áŤ á á°áἠá áááŁááᢠáá áĽáá á¨áŽáľ ááłá áĽá°áŁáá, áĽá ááááŁáľ á á áľá°áŤá¨áśáš ááľáĽ á ááľ á°á áááłáá ááá˝ ááľá¨á áá˝áá.
á¨áľááŞá ááľ ááááľ (áĽáá°á፠áááľ á¨áťááŠ)áĄ-
// create screen buffer for drawings
HANDLE hConsole = CreateConsoleScreenBuffer(GENERIC_READ | GENERIC_WRITE, 0,
NULL, CONSOLE_TEXTMODE_BUFFER, NULL);
DWORD dwBytesWritten = 0;
SetConsoleActiveScreenBuffer(hConsole);
áá° á ááľ á¨á°áá°á á¨ááľáá á¨áá¤áľ ááľáá áľááŞá ááĽáł áá ááľ (áá¤áśá˝á áááłá¨áľ ááľáá)
// draw the score
WriteConsoleOutputCharacter(hConsole, scoreLine, GAME_WIDTH, {2,3}, &dwBytesWritten);
á ááľá ááłáĽ ᣠá áá á¨ááł ááľáĽ ááá á¨á°ááłá°á ááá á¨áá ᣠááĽá á¨ááá˘áŤ á°á¨á á¨ááł áĽáŠ ááłá áááľáááᢠáŽáą á á ááľ ááá ááľáĽ á°á˝á á á ááŤáł á°ááŁáŤáľ á°ááá áˇá. ááá áááá˝, áááľ á¨áá. áĽááľá áĽáŤáľá á GitHub áá ááłáá áá¨ááť á áááľ á á¨ááłá ááá áŽáľ ááľáĽ áŤááá áááá ááá áá¨áľ áá˝ááá˘
á¨ááł 2 áĽáĽáľ áłááŽá˝
- ááľá¨á áááśááľ (á áááśááľ 7 ᣠ10 áá á°ááľáá)
- ááá: á C ++
- á¨á¨ááł áá°á; á¨áááśá áŽááśá
- á°ááłá˝ááľáĄ- á ááľ áá˝áá
á á¨ááł ááŽááŤááá Რ++ á áá - áá¨ááťáĄ
á¨ááá
á¨áĽáĽáľ áłááŽá˝ á¨ááł
ááááá˝á áá° áŽááśá áá°á ááááŁáľ áá° á¨ááł ááá¨á á¨áá˝ááľ ááá ááá ááᢠáá á¨á፠á ááľ á˝áá ááłáŤá-áááááš á¨á°ááŤá¨ áááľ áĽá áľááľ á áá¸á (áááą á¨áľááą á¨á áá áá). áľááá ᣠááá ááá áŤáá°ááŁá á áááľáá ᣠáĽá áá° áá ááá áá° áá ááááłááľ áá° á፠ááá áá á¨ááááłááľ á¨á áá ááŁá áááľááᢠáá á°á áá á "áĽáŁáĽ" (á¨ááł 1) ááľáĽ á áŁá á¨ááłá áá. "áłáááľ" (á¨ááł 2) áĽáá°áá á áááľ á˝áá á áááĽáá, ááááŤáąá áĽá፠áŤáá áá¤áľ á¨á°á°áŤáá á፠áášá á á°ááŤá¨ ááá á ááłá áá. á á°á¨ááá áťáአáááľ áľá˝ááá ᢠáĽáááľ áá ᣠáá ááľááá áľáá˝ á¨á°ááłá°á áá ᣠááá áĽááłá á¨á áá á áľá°áłá˝ ááá˘
ááá á¨ááł, á áľááŞá áá áááľáá˝á áááłá¨áľ á¨áĽáá áľáááľ ááááá˝ á á áááá. áá á¨á¨ááłá áá á áŤá áááľáááᢠáĽá ááá ááá á¨áŤáľá áá áááŁáľ áá˝áá.
áľááá ᣠá áľááŞá áá á¨ááŤáŠáľ á¨ááááłááą áŁá á áŤáľ áááááľ áľáĽáľáĽ ááá˘
á áŤáľ áááá áľáĽáľáĽ
áĽáŤááłááą á áŤáľ áááá á ááĽá á á°áá ááľáŞááľ ááá¨áá. á áááŤá˝á áá á ááľ á áľá°áłá˝ ááá ááááľ áĽá˝ááá - á á¨ááłá ááľáĽ áŤááľ ááá ááľáŞááľ áĽáá° á ááľ-ááŹáľ áľááľá á°ááá á°ááᢠáŁá áááľ á á áŁáŤ áłááá á ááľ-ááŹáľ! á ááľ-ááŹáľ áľááľáŽá˝ áááĽáŤáľ á áŁá ááá áĽá ááŁá áá¸áá˘
á¨á¨ááł áłáá ááľáŞááľ ááłá
á¨á¨ááł áłáá ááľáŞááľ á¨á ááľ-ááŹáľ á á°áŤá°á áá á ááá¨á
á áŁá á ááľ-ááŹáľ áľááľá á¨ááľáŞááľ áááá á¨á áá ááá ááłá
ááá áá á¨ááá áą á áŤááľ ááłá¨áť á áááľ áá áá¨á°áłáᣠá ááľ-ááŹáľ áłááá áŁá áááľ-ááŹáľ áľááľáᢠáá á¨á°á°á¨áá á ááá á¨ááľáŞááľ áá áĽá¨á°áŤá áľááá ááá˘
áŁá á ááľ-ááŹáľ áľááľá á áľáἠáá°áľ ááľáĽ áááᢠY á¨á¨áľá ááłáá፠ááᣠX á¨á ááľ ááłáá፠ááá˘
áĽáŁááá áŤáľáłááą á¨á°áááąáľ ááľáŞááľ ááŞáá˝ iᣠjáŁááŞáá˝á x áĽá y áĽá ááááᢠáľááá ᣠááĽá á¨áááľááᣠáááá áá áἠá¨ááŤáľá°áľáľ áĽá áá áĽáᎠáá áἠááá˝ ááᢠá á°á¨ááŞá ᣠáĽáá°áá ááááą ááľáłááť áŁá áááľ á á áŁáŤá ááľá á á°áá ááľá áááá˝ áá á¨ááŤáááááľá ááľáŞááľ á áĽáŠ áááł áááľáŹáľ áŤáľá˝ááá˘
á áá áľá áááľáá˝áŁ ááá áĽá ááłáŤá˘ á¨StretchDIBits á°ááŁá (áŤáľáᥠwindows.hᤠLibraryᥠgdi32.lib) ááá¤áľ áľáŤ áá ááááᢠá¨ááá˝ áááŽá˝ á á°á¨á᪠á¨áá¨á°áá áá°áá á°ááŁá á°áááá-ááľá á¨ááłáá áľ ááłáŞáŤ (á áĽá áááł áá á¨áááśááľ áŽááśá áá), ááľáá á¨ááłá¨áľ á áá ááá ááŤáá˝, áľááą / áááą áĽá ááľá. á áŤáą á á˘áľáá (á˘áľáá) áááᣠá áŁááľ áľááľá ááá¨ááᢠá˘áľáá áĽáá° áŁááľ áľááľá!
ᨠStretchDIBits() á°ááŁá á áľáŤ áááĄ-
// screen output for game field
StretchDIBits(
deviceContext,
OFFSET_LEFT, OFFSET_TOP,
PMATRIX_WIDTH, PMATRIX_HEIGHT,
0, 0,
PMATRIX_WIDTH, PMATRIX_HEIGHT,
m_p_bitmapMemory, &bitmapInfo,
DIB_RGB_COLORS,
SRCCOPY
);
á¨á¨áášááAlloc() á°ááŁáá á áá áá áá á°á¨ áľááľáł ááá á˘áľáá á áľááľá á°ááľá§áᢠáŤá áááľ áľá ááá áááľáá˝ áá¨áá ááá¨áá¸áľ á¨ááááá á¨áŁááľ ááĽá á°ááá, á¨ááŤá á áľááŞá áá ááłáŤá.
m_p_bitmapMemory bitmap ááá ááĄ-
// create bitmap
int bitmapMemorySize = (PMATRIX_WIDTH * PMATRIX_HEIGHT) * BYTES_PER_PIXEL;
void* m_p_bitmapMemory = VirtualAlloc(0, bitmapMemorySize, MEM_COMMIT, PAGE_READWRITE);
á áááľáŁ á˘áľáá á¨ááá°áá˝ áľáĽáľáĽá áŤáŤáľáłáᢠá áľááľá ááľáĽ áŤáá áĽáŤááłááą á áŤáľ áŁááľ RGB ááá°á ááᢠá ááľ áŁááľ á áá áĽá´áľáŁ á ááľ áŁááľ á á á¨ááá´ áĽá´áľ (á) áĽá á ááľ áŁááľ á á°ááŤá ááá (á˘)ᢠá á°á¨ááŞáᣠá á ááľ áἠá ááľ áŁááľ á áᢠáĽááá áśáľáľ áááá˝ - áá / á á¨ááá´ / á°ááŤá (RGB) - á á°ááŤá¨ áá á áĽááľ á ááľ áá°áŁááá - áá¤áąá á¨ááá°á ááá á°áááˇá.
á ááᣠáĽáá°ááᣠáĽáŤááłááą áŹááłáááᣠááá á¨á¨ááł áááᣠá ááĽá ááľáŞááľ ááá¨ááᢠáĽááá áá á¨á¨ááł áĽááá˝ á áľáĽáľáĽ ááľáĽ ááááŁá. áĽá á¨ááŤá á ááľ áľáá á¨ááĽá ááľáŞááľ á ááá á á ááŤááť ááł áá ááááŁá. á ááľáŞááľ ááľáĽ áŤááá áĽáŤááłááąá ááĽá áá° á ááľ á¨á°áá°á ááá áŤááł á áľáááááᢠáááłá, ááĽá 8 á°ááŤá áá, ááĽá 9 á˘áŤ áá, ááĽá 10 áĽáá ááŤáŤ, ááá°. áľááá , áĽáŤááłááą ááĽá á ááľ ááááľ ááá áŤáá á¨ááŤááť ááł ááľáŞááľ á áá áááľ áĽáá˝ááá.
áľááá á á ááľ á áŠá á¨ááŤááť ááłá á¨ááĽá ááľáŞááľ áĽá á áá á áŠá ááľáá áááłá¨áľ á˘áľáá á ááᢠáĽáľáŤáá áľá¨áľ, á˘áľáá "áŁáś" áá - áľá á°áááá ááá áááľáá˝ áá áá¨á á¨ááá. áá áááľ á¨áá¨á¨áťá áĽááá á ááŤááť ááłá á¨ááĽá ááľáŞááľ áá á áááľá¨áľ áľá áĽáŤááłááą ááá°á áá¨á á˘áľáá ááááľ ááááᢠá¨áá ááááą ááἠááłááŤá ááłá á¨áá á áłá˝ áŁáá áĽáá ááľáĽ áá á˘
á ááŤááť ááłá á¨ááĽá ááľáŞááľ (á˛ááłá ááľáŞááľ) áá á¨á°áá°á¨á° áá¨á á¨á˘áľáá (ááá´á ááľáŞááľ) á¨ááááľ ááłá (á¨ááá á˘áá´ááśá˝ á á¨ááłá ááľáĽ áŤá á˘áá´ááśá˝ áá á ááááąá)
áĽáá˛áá á¨á¨ááłá ááľáĽ á¨áĽááá°á áŽáľ ááŤá á áááŁááᢠá áĽáŤááłááą á¨áá áľáááá˝ áá áŤáá á°áááá á¨ááá áá¨á á áá á¨ááŤááť ááłá á¨ááĽá ááľáŞááľ (mainDigitalMatrix) áĽá´áľ (á¨ááá á˘áá´ááľ) ááá°áŁáᢠá¨ááŤá ááá áŤáą á áá¨á á ááá áá á°ááľááś áá° ááá á°áááá áááá. á á°á¨ááŞ, á¨á°ááá ááá áá° áá, á á¨ááá´ áĽá á°ááŤá (RGB) áĽáááł áá¨ááá. áĽá á¨ááá˘áŤá (pixelPadding) áá áá áá¨á áá° ááá´á á°ááá ááááᣠáá á á á˘áľáá ááľáĽ áŁá ááá ááľá áááĽáŤáá˘
áŽáą ááá¨áłáľ á áľá¸á᪠á¨áááľá á áááá˝á áĽá á˘áľáá áŚááŹá˝áá˝á áá áááᢠáľááá áĽáá°áá áŤá ááá áŽá˝ áĽáá´áľ áĽáá°áá አá ááľ áŚáł áá¨áĽáť áĽáá˛áŤáᥠáĽáááŤá˝ááá.
á ááŤááť ááłá á¨ááĽá ááľáŞááľ áá á áááľá¨áľ á˘áľááá á áá¨á ááááľáĄ-
// set pixel map variables
int colorIndex;
COLORREF color;
int pitch;
uint8_t* p_row;
// arrange pixels for game field
pitch = PMATRIX_WIDTH * BYTES_PER_PIXEL; // row size in bytes
p_row = (uint8_t*)m_p_bitmapMemory; //cast to uint8 for valid pointer arithmetic
(to add by 1 byte (8 bits) at a time)
for (int y = 0; y < PMATRIX_HEIGHT; ++y)
{
uint32_t* p_pixel = (uint32_t*)p_row;
for (int x = 0; x < PMATRIX_WIDTH; ++x)
{
colorIndex = mainDigitalMatrix[y * PMATRIX_WIDTH + x];
color = Utils::GetColor(colorIndex);
uint8_t blue = GetBValue(color);
uint8_t green = GetGValue(color);
uint8_t red = GetRValue(color);
uint8_t pixelPadding = 0;
*p_pixel = ((pixelPadding << 24) | (red << 16) | (green << 8) | blue);
++p_pixel;
}
p_row += pitch;
}
á¨áá á á°ááá¸á áá´ áá á¨áľ á ááľ áĽáá (ááŹá) á Crazy Tanks á¨ááł ááľáĽ á°ááĽáŻá áĽá á Draw () á°ááŁá ááľáĽ á áľááŞá áá ááłáŤáᢠá Input() á°ááŁá ááľáĽ á¨ááá áááśá˝á á¨á°áááᥠá áá áĽá á°á¨áłáŠ áá°áłá¸á á ááá() á°ááŁá ááľáĽáŁ á á˛áľ ááľá (ááŹá) ááá°á¨áłáᢠáĽáááľ áá, á¨á¨ááł áĽááá˝ ááľááá á ááŤááť ááł áá á¨á°áᨠá áá áááŤá¸á áá˝áá, áĽá á áá áá°á¨áľ, á á°áᨠáŚáł ááłáŁá. á ááá˝á (áĽáá áľáá´) á¨áááá á áá ááááľ ááá˘
á ááľá ááłáĽ (ááá ááá áŤáá¨áą á¨áá) á¨ááááŞáŤá á¨ááł á¨á¨ááłáá áá°áľ áá¨áłáľ ("áĽáŁáĽ") áĽá á¨ááá°áá á¨ááł ("áłáááľ") á áľááŞá áá áááľáá˝á áááłá¨áľ áľáááąá áá¨áłáľ áĽáť áá áááááá ááťá áŤáľáááááłá. ááááśááľ á¨áĽááľá 2D á¨ááłáá˝á˘ áľáá˝ á ááŁ! đ á¨á°ááŠáľ áááá˝ á¨áἠá á¨áŤ áĽáť áá¸áá˘
áĽááἠáá, á¨ááłá "áłááŽá˝" ᨠ"áĽáŁáĽ" á¨á áá á¨á°ááłá°á áá. á áľááľá á¨C++ áááá á°á áááŠáᣠáááľáᣠá¨á°ááŤáŠ á¨á¨ááł ááłááśá˝á á¨ááá áá ááá˝áŠáá¸áᢠá¨áŤá´á áľáĽáľáĽ áá áአ- áŽáąá á áŤáľááá˝/Box.h ááľáĽ áá¨áľ áľá˝ááá ᢠá áááŤá˝á áá, ááá˝áą áĽááá áá á¨ááľáłááľ á˝ááłá ááá°áľ á áá áľ. áŤáááá á áááá˝. á¨ááľáłááľ áá á°ááˇáᢠáá˝áá áĽá á¨áľáśáá áááľ á ááĽáᢠá á¨ááł ááŽááŤááá Რ++ á áá. áá á C++ ááľáĽ ááááŞáá˝ áĽáŠ á áá ááᢠáĽáą áľáὠᣠá áľá°áłá˝ áĽá á á°áἠá¨á°á°áŤá ááá˘
áá áá á¨ááł áááłá á áľáľáľáľ ááŤáľ áŤá á áá áˇáᢠáĽá á áááááľ á¨áťááŠáľ á ááł áĽá á áĽáŤ áŚáł á ááááĄá áľ áá áľ ááᢠáĽáą á˘áŽá áŠá˝á ááľáĽ á°ááጠááἠáá á¨áጠáŽáľ áťáᢠááá ááĽáŤáľ á¤áľ ááľáĽá˘ áľááá áĽáá°áá á áááľ "á¨áŠá˝á áŚáááśá˝" á ááá. áĽáá° áááá, á¨ááľáłááť á°áĽá°áá á áááľ á°á áááŠá, áĽá ááá á˝áá°-ááłáŚá˝ á áĽáą ááľáĽ á°áááą.
á á°ááŁáŤáá ááá áá¨á¨áť áá á¨ááľáłááť á°áĽá°áŹá áĽááľ áľáŤá á ááŁááᢠá áľááá á¨áá˝áááᣠáĽá¨áłááŠáŁ áĽá¨áá ááŠáŁ áĽá¨áá¨á˝áŠ áĽáá°áá ᨠáááłá¨áľâŚ
á¨áłáá ááľá ááľá. áĽá áĽáŤááłááą áłáá áá áŤá
á ááá°áá˝ á áľááŞá áá ááŤá áĽááłáá áľ ááş
ᨠáľáá° ááá áľááľ áĽá áááŽá˝ á ááľáĄ ááá ááŞáŤ áłáá áá˝á¨áá¨á
á¨áĽá áľáĽáľáĽ á˛áŤááŤá (á¨ááľáłááť ááá°áľ áŤáá ᾠᣠááááŁáľá)ᢠáľáĽáľáĄ áĽáá° á¨á°ááá áááá áá á¨á°áá á¨á
áĽá áĽááá
á áá´ááťá á˘áá°ááááľ á á¨ááłá ááľáĽ áááá°áľ á¨ááą áá¨áŤáá˝ áá¸áá˘
á˛áŽáŞ
"á¨áşá ááá áá áĽááłá á¨áááá¨á á¨ááááŞáŤá áĽááá áá" (á¨áĽáᡠáťááá áĽá áĽ)
á¨á°ááŁá áá° á˛á᪠áĽáá¸ááá! ááľáá ááá áá áĽáá´áľ áŤááá?
- á áľááá á¨áááááľá áááľá (áᎠᣠáá á áŁá á¨áŁáľ áá)á˘
- á áľá፠á¨áá°áŁá¸áá áááŽá˝ á ááá á˘
- áá áá á áľá፠á¨áá°áŁá¸áá áááŽá˝ áá "á¨áĽá á á áá" ááľáááľ á áľááá˘
- á á¨áá áá° ááŚá˝á áááąá˘
- ááľáá áá ááłáá፠áááľ ááá áśáľáľ á°ááłáľ áá áá áááŤá áĽáá á áá áĽáá˘
á á ááľ á áŠá, á¨áááááľá ááá°á áĽá á áľá፠ááľá áľ áŤáľáááááłá. á áá á áŠá, áĽááá á á áľá፠á¨áá°áŁá¸áá ááłáŽá˝ á áá°áá á ááłááľ ááłáŽá˝á / ááŽáááśá˝á áá°á ááťáá. á áá á áááá˝ áááá ááá "áĽá á á¨á á" ááľáááľ ááľá¨á á ááĽááľ. á á áááľ ááľáĽ á˘á á áśáľáľ áá áá á°ááŁáŤáľ ááአáĽáá°ááᣠá ááľ áŚáł á°ááᢠá¨ááŤá á á°áťá áá á áĽááąá áááá áá˝áá. áĽá á°á¨á᪠ááŽáááśá˝/á á áŁáŤáá˝ á áá á¨áá á á áá ááŤá ááááŤá. áá áá áá ᣠááááŁáľá ᣠááá áĽá ááá ááá˘
á ááľ á¨á°áá°á áááá á á á á: á ááŤá˝ 0% áá á ááá! áľá áĽáą á á ááľ á˘áᲠááᢠá á°áťá á˝áá ááľáĽ á°áááŠá˘ á ááŽáááľ áá áĽá¨á°áŠ á¨áá, áľááá á á¨áá á ááľ ááá áŤáľáá. áĽá áá áŤá á áĽáłáá ááá ááἠá áŤááŁáᢠá ááľ áá ááá á ááľ á¨áŽáľ ááľáá ááťáᣠá ááľ á áἠáŞá˛áŽ áááá¨áąáŁ ááá á ááľ ááľáá á áŚááą áá ááśáť - á ááľ ááá áĽáť áŤáľááᢠá áŁá á áľá¸ááŞá ááá áááá áá. á áá´ á¨áááá ááááŁáľ á¨ááľáááá á áá áľáá˝ áłá°áááá ᢠáľááá áŤáááá¨áĽ áá° ááĽá áľááłáá áĽá áĽáááᣠá áŁá á ááĽááľá˘ á¨ááá á áá, á ááá áááŽá˝ áá ááá áĽáŹá áááá¨áľ áá.
áĽá á 5 ᣠ10 ᣠ15 á°áááá˝ ááľáĽ áááá âáááâ ááá áááá áĽá á˝á áááľ áĽáá°áááĽááľ ááľáłááľ á áľááá áá ᣠáá ááľ ááá ááááľ á°ááłáľ á¨ááá áľáá âááâ áá áĽá ᢠá ááľáá áá áááá? áááŽáááľá á¨áá ááá áŤáľáĄ. áá°áá áááŁáŤ áĽá¨ááŁá áá? á ááľáłááť á°áĽá°á ááľáĽ á¨áá ááá áááᢠá á ááśáĄáľ ááľáĽ áľá ááá ? áĽáşáŁ á ááłááľ ááŁáĽá á ááĽáĽá˘ á ááŁááá áá á°á ááᢠá YouTube áá áľááśá˝á áĽá áážá˝á áááá¨áľ á áá! á¨á áĽááŽá áá á áľááŁáá !
áĽá á¨áá¨á¨áťá. áá
áá á˝áá áŤáá ᥠá áá á¨á¨ááł áá°áŽá˝á áłáá áá á¨ááłáá˝á á¨ááá á ááłáĽ á¨áá°áą ᣠá¨á፠Casey Muratori á¨áááá áľá áŤáľáłááąá˘ áá
á°á á áá
á á°á¨ááŞá áŹá˛ á¨áĽáŤáľáá á¨á¨ááł áá°á á ááłá á áľá ááŁá áá°áŽá˝ á¨á°áťá áááᤠáĽáá˛ááááľ áŤáĽáŤáŤáᢠá ááááá˝ ááá ááľáĽáŁ ááá á°á á áŤáľ á°á áááľáŤáľ á ááááá áľáŁ áĽáá´áľ ááá á áĽáá°áá˝á áááŤá áĽáá á áá ááᢠá¨áŽáááá°áŽá˝á ááááľ áá¨áąá˘ áĽá áĽááľáá á¨á áá áĽáá áĽá ááááł ááŽááŤáá áááá - áŁáááŤá˘
á á°áá¨á á ááááľ áá áááŤá ááľá! áĽá áááá á¨á áá áŁáá፠áĽááľááá˘
á°áŤá˛: ááŤááŞá á ááľáŹ , DevOps
ááá: hab.com