âááŤááŹáážááááá°á¸áááŻáᏠááŤáááááşâ áááŻáááąá¸ááŽá¸
áááşáá°áˇáĄáá˝ááş- developer áĄáŹá¸ááŻáśá¸ááᯠáááŻáá ááŻááşáᲠáááşá¸áááŻáˇáááááşá¸ááťáŹá¸ááᯠáá áŹá¸áááŻááąáŹ IT áá°ááťáŹá¸áĄáá˝ááşá
ááŹáĄááźáąáŹááşá¸ááŤáá˛: áááş ááŻááşááááş áááŻáĄááşááŤá C/C++ áá˝ááş ááááşá¸ááťáŹá¸ á áááşááąá¸ááŹá¸áááşá¸ áĄááźáąáŹááşá¸á
ááŤááᯠááŹááźáąáŹááˇáş áááşáááˇáşááᲠáĄáááŽááąá¸áážááşá¸áá˝áśáˇááźááŻá¸áááŻá¸áááşáážáŻáááş ááťá˝ááşáŻááşáááťá˝ááşá¸ááťááşáážáŻáááşáááşáááŻááşááąáŹáşáááşá¸ áĄáááşáááŻááşá¸ ááŻááşááŻááşáááş ááźááŻá¸á áŹá¸ááŤáááşá ááááşá¸áá˝áąááᯠááźááŻááşáááŻáˇá
áááşášáááŹá፠ááŤáˇááŹáááş Is
áá˝ááşááťá°ááŹááááşá¸ááŻááşáááşá¸áááş áááąáˇááąááş ááŻááşáážááşááŻááşáááşá¸áááşáááş ááźáŽá¸ááŹá¸áááşáᯠááąáŹááŹááááťáŹá¸ áá˝ááşááąáŤáşááąáááşá ááááşá¸ááťáŹá¸ááᯠááąááşááŽá
áśáážáŻááşá¸ááťáŹá¸á áážáŻááşáá˝áąá¸ááźáŽá¸ áĄááźáąááś áá˝áśáˇááźááŻá¸áááŻá¸áááşáážáŻáááşá¸áááşá¸ááťáŹá¸ááźááˇáş áá˝ááşááťá°ááŹááťáŹá¸ ááąáŤáşáá˝ááşá¸ááŹááťáááşááž á
á ááąá¸ááŹá¸áá˛áˇáááşá áĄááťáááşááźáŹááŹáááşáážááˇáşáĄááťáž ááááŻááááşááąá¸áá˝á˛ááŹá¸áááˇáş ááááşáá
áşá áá°áááąááážááˇáş áĄááśááŤáážáááąáŹ ááááşá¸áĄááşááťááşááťáŹá¸ ááąáŤáşááŹááąáŹáˇáááşá áááşá¸áááŻáˇáááş áááˇáşáĄáŹá¸ ááááşá¸áááŻááşáááŻááşáááşááŽá¸áááş áĄáŹááŻáśá
ááŻááşáááŻááşááźáŽá¸ áááşá¸ááĄááźáąááśáĄáŻááşááźá
áşááᯠá
áááşáá°á
ááŹááááŻááąá áááŻáˇááąáŹáş áááşá¸áááŻáˇáážááˇáşáĄáá°á áĄááşááťááşááťáŹá¸áážááˇáşáĄáá°á developer ááťáŹá¸áááş âááťááşá
ááááşá¸áá˝áŹá¸â ááźáŽá¸ ááŻááşááŻááşáá˝áŹá¸ááźáááşá ááááşá¸ááťáŹá¸áááŻááşáááŻááşááŻááşááŻááşááźááşá¸ááᯠconveyor belt ááąáŤáşáá˝ááşáááşááŹá¸áááşá ááŻááşááŻááşááťáŹá¸á áĄááąáĄáá˝ááşáááş áááşá¸á áĄáááşáĄáá˝áąá¸áááş ááŹáá˝ááşá
ááźáŻááŹáááşá
áá
áşááťáááşáááşá¸áážáŹáááşá áĄááźáŹá¸áá°ááťáŹá¸áááááşá¸ááťáŹá¸áááŻáá
áŹá¸áááˇáşáĄááŤá áĄááźáŹá¸áá°ááťáŹá¸ááážááááˇáşááąááŹááťáŹá¸á ááŹááşáá˝ááşááťáŹá¸á ááŹááşááąáŹááşááťáŹá¸áážááˇáş ááááşá¸á
ááşáááŻááşá¸áááŻááşááŹááťáŹá¸ááźááˇáş ááťá˝ááşáŻááşáááŻáˇááᯠáĄá
ááşáááźááşáááˇáşáááşááŹá¸áááşá ááŤáá˛áˇáᲠáááąáŹááąáŤááşáá˝áŹá¸áááş...
... ááŤáˇáĄáá˝ááşáᏠááŤáˇáááŻááşáááŻááşááášááŹááᯠáááşááŽá¸áááŻáˇ áĄááťáááşááąáŹááşááŹááźáŽá ááŤáááş ááááşá¸ááąáŹáşá ááŹá¸ááąáŹáşá áááˇáşáážááşá¸ááąáŹááááŹááşááąáŹáşááźá áş ááąáŹááášááŹááťáŹá¸ááźá áşáááşá
ááźáŽá¸ááąáŹáˇ áááşá¸áá˛áˇáááŻááşáááŻááşááááşá¸áĄááşááťááşááᯠááąá¸ááźáŽá¸ ááąáŹáˇáá áŹá¸ááźááşá¸ááźááˇáş áááşá¸áá˛áˇáááááşááᯠááťá˝ááşáááŻááşá ááźáááşá¸ááąáŤááşáá˝áąááᯠááŻááşáá áşááźáŽá¸ áááşá¸áá˛áˇáĄáááşá¸ááᯠáĄáááˇáşááźážááˇáşáááşáááŻááşááźáŽá¸ áááŻáĄáá˝áąáˇáĄááźáŻáśáážáááźáŽá¸ ááźáŽá¸ááźááˇáşá áŻáśáá˛áˇ ááááŻááááşááŹáá áşááąáŹááşááźá áşááŹáááŻááşáááşáááŻáˇ ááŤáááŻá¸ááŹá¸á á˝áŹááŻáśááźááşááŤáááşá
ááŽááąáŹááşá¸ááŤá¸áážáŹ C/C++ áážáŹ ááááşá¸áĄááąá¸á áŹá¸ááąá¸áá˝áąááᯠáááşáááŻááąá¸áá˛áˇááá˛á áá˝áśáˇááźááŻá¸áááŻá¸áááşáážáŻ ááŻááşáááşá¸á ááşá áááşáááŻáá˛á áĄááŻááşááťáŹá¸áá˛áˇ áááşáááşá¸ááťááşáážáŹ ááŤáááŹáĄáá˝ááş áĄááťáááşáážáŹáá˛áˇááąááŹáážáŹ ááźáąáŹááźáááŻáˇ ááźááŻá¸á áŹá¸ááŤáááşá áááşá¸áááş ááŻáášáááááášááááźá áşááźáŽá¸ áá áşáŚá¸ááťááşá¸á áááşááźááşá¸á ááŻááşáááşá¸á ááşááᯠááąáŹáşááźáááşá ááąáŹááážááˇáş ááŻáśááźááşááźááşá¸áĄááźáąáŹááşá¸á ááŤááááŻááşááąá¸áááŻááşááŹááŻááşááŻáśáĄááźáąáŹááşá¸á áá áşáááşá¸áááŻáááąáŹáş "áĄáŻááşááťáŻááşááąá¸áááş áááşá¸áá˛áˇáááŻááşáááŻááşáŚá¸áážáąáŹááşáĄáá˝ááş ááŹáááşááážáááŤáá°á¸á"
áĄááąáˇáĄááťááˇáş
âáĄááąáˇáĄááťááˇáşááážáááąáŹáĄáááááŹáááş áĄááŻáśá¸ááááşá áĄáááááŹááážáááąáŹáĄááąáˇáĄááťááˇáşáááş áĄáášáááŹááşáážááááşâ áá˝ááşááźá°á¸áážááş
ááŤáˇáážááşá áŻá áŹáĄáŻááşá ááŤáˇáááá˛á
áááŻáˇááźáąáŹááˇáş áááşáá˝áąáˇáá˝ááş ááťá˝ááşáŻááşáĄáá˝ááş áĄááŹáĄáŹá¸ááŻáśá¸áááş notepad ááźááˇáş á
áááşáááşáᯠááťá˝ááşáŻááşááźáąáŹáááŻááşáááşá áĄá˛ááŽáážáŹ ááťá˝ááşááá˛áˇ ááąáˇá
ááşáĄááŻááşáá˝áąááᯠááťááąá¸ááŻáśáááşáááá˛á ááááŻááááşáá˝áąá áááŹá¸áá˝ááşáá˝áąááᯠááŽáááŻááşá¸áá˝á˛ááźáŽá¸ áááşášááťáŹáááŻááşáᏠááźáżááŹáá˝áąááᯠááźáąáážááşá¸ááąá¸áááşá Notepad ááᯠáĄááźá˛ááŻáśá¸á áá˛ááśááźááˇáşááŹááąá¸ááŤá áááˇáşáážááşá¸áááşá áĄáááşááźáąáááşá ââá
áááşááťááááşá ááŹáážáááşá¸ ááážááá°á¸á
ááťá˝ááşááąáŹáˇáşáá˛áˇ áážááşá
áŻá
áŹáĄáŻááş (áĄááźááˇáşááŤ)á ááŤá áá°áá˛áˇáá°áááşá áááşá¸áá˝ááş ááąáˇá
ááşáĄááŻááşááťáŹá¸á á
áááşáá°á¸ááťáŹá¸á ááŻáśááťáŹá¸á ááŻáśááťáŹá¸á ááŻáśááťáŹá¸á ááźáąáážááşá¸ááťááşááťáŹá¸á áĄáááşááąáŹááşá
áŹáááşá¸ááąá¸áá˝ááşá¸áážáŻá ááŻááşá
áááşááźááˇáş ááŤáááşáááş
á¤áĄáááˇáşáá˝ááşá ááťá˝ááşáŻááşáááş áááąáŹááťááşááŻáśá¸ááŻááᯠááźáŽá¸ááźáąáŹááşáĄáąáŹááş á áŽááśáááŻááşáááş (áááşá¸áááş áááşáááˇáşááŻááşááŻááşáááŻáááᯠáĄááŻáśá¸ááááşáááŻááşááąáŹááźáąáŹááˇáş "ááźáŽá¸ááźááˇáşá áŻáśááźááşá¸" ááᯠááťá˝ááşáŻááşááŹá¸áááşáááąáŹááąáŤááşááŤáááşá
- á áŽááśááááşá¸ á - áááşá¸áááş Unity ááááşá¸áĄááşááťááşááᯠáĄááŻáśá¸ááźáŻá C# áá˝ááş ááąá¸ááŹá¸ááŹá¸ááąáŹ 3D ááááŻááŹáááŹáážááş áááŻááşááźááźááşáá˝ááşá¸ááźá áşáááşá macOS áážááˇáş Windows ááááşááąáŹááşá¸ááťáŹá¸áĄáá˝ááşá
- ááááşá¸ 1: Windows áĄáá˝ááş Simple Snake ("ááźá˝áą" áᯠáá°áááŻááşá¸ááááźáááş) áá˝ááşáááŻá¸ááşááááşá¸á C áážáŹ ááąá¸ááŹá¸áááşá
- ááááşá¸ 2: áá˝ááşáááŻá¸ááşááááşá¸ Crazy Tanks (âTanksâ áᯠáá°áááŻááşá¸ááááźáááş)á C++ (áĄáááşá¸ááťáŹá¸áááŻáĄááŻáśá¸ááźáŻáááş) áážááˇáş Windows áĄáá˝ááşáááşá¸ ááąá¸ááŹá¸ááŹá¸áááşá
Project 0. Architect Demo
- ááááşááąáŹááşá¸ Windows (Windows 7á 10)á Mac OS (OS X El Capitan v. 10.11.6)
- ЯСŃĐş: C#
- ááááşá¸áĄááşááťááş-
á ááşá¸ááŻáśá¸ááŽáá˝ááşááąá¸ - áážáŻáśáˇááąáŹáşáážáŻ-
Darrin Lile - áááŻáážáąáŹááşáážáŻ-
GitHub
3D Scene Architect áááŻááşááź
ááááááąáŹááťááşááᯠC/C++ áá˝ááşáááŻááşáᲠUnity ááááşá¸áĄááşááťááşááᯠáĄááŻáśá¸ááźáŻá C# áá˝ááş áĄááąáŹááşáĄáááşááąáŹáşáá˛áˇáááşá ááŽáĄááşááťááşá ááŹáˇááşáá˛ááşáĄáá˝ááş ááąáŹááşá¸áááŻáááąáŹááş áááŻááşáá°á¸á
Unity áá˝ááş ááťá˝ááşáŻááşá áááşáážááşá¸ááťááşáážáŹ ááááşá¸áá áşááŻááᯠáááşááŽá¸áááşáááŻááşááŤá ááŹááşááąáŹááşáĄááťááŻáˇáá˛áˇ 3D ááźááşáá˝ááşá¸áá áşááŻááᯠáááşááŽá¸ááťááşáá˛áˇáááşá áá° (áááŻáˇ) áá°á (ááťá˝ááşááąáŹáş ááťá áşááá˛áˇ ááąáŹááşáááąá¸ááᯠá áśááá°ááŹáá°áá˛áˇáááş =) á áá°áˇáááşáááşá¸ááťááşá ááášááŹáá˛áˇ áážáŻááşáážáŹá¸ááźáŽá¸ áĄááźááşáĄáážááş áááşááśááááşá á ááşá¸ááŻáśá¸ááŽáá˝ááşááąá¸áááŻááŹááŹáá˛á áá˝áśáˇááźááŻá¸áááŻá¸áááşááąá¸ááŻááşáááşá¸á ááşá ááŹáá˛áááŻááŹáá˛áˇ áá áşááŻááŻááᯠáááşááŽá¸áááŻáˇ áááşááąáŹááşáĄáŹá¸á ááŻááşááŻááşááááşáááŻááŹááᯠááŹá¸áááşáááŻáˇáᏠáĄááąá¸ááźáŽá¸áááşá á¤áááşáážáŹ ááááŻááŹáááŹáážááş ááŽáááŻáááąáŹááťááşááᯠáá˝áąá¸áá˝áŹá¸ááŹááŻáśááźá áşáááş (áááşáááˇáşááąááŹáá˝ááşááž ááŽáá˝ááşááŻááŽá¸ááŤá¸ááźá áşáá˛áˇáááş)á ááááŻááááşááąá¸áá˝á˛ááźááşá¸á ááąáŹáşáááşááŻááşááźááşá¸á ááŹáá˝ááşá¸ááŻáśáá˝á˛ááźááşá¸á áĄáá˝ááşááźááşááźááşá¸áááŻáˇááᯠááąáˇá ááşááŻááşááąáŹááşáááş áážá áşááááˇáş áĄááťáááşáá°áá˛áˇááááşá
3D ááąáŹáşáááşááťáŹá¸ áááşááŽá¸ááźááşá¸áĄáá˝ááş YouTube áá˝ááş ááťá°áááŻááŽáááş ááŽááŽáááŻááťáŹá¸ááźááˇáş á
áááşáá˛áˇáááşá
ááŹáá˝ááşá¸ááŻááşááŻáśáá˝ááşááźááşááᯠáááŹááĄáááŻááşá¸ááźá áşá áąáááş áážááşáááŻá¸ááťáŹá¸áážááˇáş áááşááąáŹááşá¸ááŽááŹáĄáááŻá¸ááťáŹá¸ááᯠááŻáśá áśáá°ááŻááşááŤá áááŻáááşáááşá¸á áŹááťáŹá¸ááźáŽá¸ááąáŹááşá ááŹáá˝ááşá¸ááŻááşáážááşáááşááŽá¸áá°ááťáŹá¸áááş ááŽááŽááᯠá áášáááˇáş 30 áááŻáááşááŽá¸áááş áááşááťážáĄááŻááşááŻááşáááşááᯠáááşáááąáŹááąáŤááşááŤáááşá áááŻáˇááąáŹáş 3D ááŻááşáážááşááťáŹá¸áááş ááŹááŽááąáŤááşá¸ááťáŹá¸á á˝áŹ ááźáŹáážááşáááşá áááŻáˇááąáŹááş ááťá˝ááşáŻááşáááŻáˇáááş ááŻááşáážááşááŻáśááťáŹá¸ááž áá˝ááşáᏠâááŤá áááŻááşáá˛áá˛áˇ ááŹáá˝ááşá¸/ááŻááşáážááşááŤá áá°áááŻáˇ áááŻááąáŹááşá¸áĄáąáŹááş ááŻááşáááŻááşáá˛áˇáááş..." áá°áááŻááş!
ááąáŹááşáá áşááŻá ááŽáááąáŹááťááşáážáŹ ááááŻááááşááąá¸ááźááşá¸áá˛áˇ áááşáááşááźáŽá¸á áá˝ááşááŹááááŻáá˛á ááŤáˇáĄáá˝ááş á áááşáááşá áŹá¸á ááŹáĄááąáŹááşá¸ááŻáśá¸á áááşášááťáŹáĄáááŻááşá¸ááŤá áĄáááşá áááşáááş ááźááşáá˝ááşá¸ááᯠááŻááşááąáŹááşááŤá (áááąáŹááťááşááąáŹáşááźááťááşáážá áááŻáážáąáŹááşáááşá¸áááŻáˇ áááˇáşááşááťáááşááŤ)á áááşáááŹáááş á ááşááŻáśá¸áá áşááŻáĄáá˝ááşá¸ ááááşá¸áááąá¸ááŹááşááąáŹááşááᯠáážááˇáşáááşááąáááşááᯠáááááźáŻáááááşááźá áşáááşá áááşáááŹá áážááˇáşáááşáážáŻááᯠáĄá áŽáĄá ááşáá˝á˛áááşá á ááşáááŻááşá¸ (2D) ááąáŤáşáážá áĄááąáĄááŹá¸áĄáážááşá ááźááŽááááşááťáŹá¸ááᯠáŚá¸á á˝áŹ áá˝ááşááťááşááźáŽá¸ááž á ááşááŻáśá¸ (3D) ááąáŤáşáá˝ááş áá˝ááşááťááşááááşááźá áşááŤáááşá áááşá ááŹááąáŹááşá¸ááŹá ááťáąáŹááşá¸áážáŹ áááşášááťáŹááᯠááŻááşá¸ááŽá¸ááźáŽá¸ C-minus áá˛áˇ áááá˛áˇááŹá áá áşá áááşáá áşáááŻááşá¸áĄáŹá¸ááźááˇáşá ááťáąáŹááşá¸áá˝ááş á¤áááşášááťáŹááᯠáááá˝ááş áááşáááŻáˇáĄááŻáśá¸ááťááźáąáŹááşá¸ááᯠáááşá¸áááŻáˇáĄáŹá¸ áááŻá¸áááŻá¸áážááşá¸áážááşá¸ ááážááşá¸ááźááąáŹááźáąáŹááˇáş ááźá áşáááŻááşáááşá ááŤááąáááˇáş áááşá¸áá˛áˇáááşá¸áááŻááşá áááşá¸áĄáááşáááşááᯠá á˝á˛áááşá¸ááąáá˛áˇáĄá፠áááşá¸áá˛áˇá áááşáá˝áą ááźááşáááşááŹááźáŽá¸ áá˝ááˇáşáááşá¸ááŹááááˇáşáááşá ááźáŽá¸ááąáŹáˇ á áááşáážáŻááşáážáŹá¸á ááŹááąáŹááşá¸áá˛áˇ á á˝ááˇáşá áŹá¸áážáŻáá áşááŻáĄááąáá˛áˇ áááşáá˛áá˛áˇáĄááŻááşáá˝áąááᯠáááşá áááşááŹá¸áááşááŹáážáŹááŤá ááźáŽá¸ááąáŹáˇ áááşá¸áááşááŹá "áĄááşá¸á áááşá¸*áĄááźááŻááşááŻáśá¸* áááşášááťáŹáááŹáážááşá ááŽááąáŹáşááźá°ááŹáá˝áąááᯠáááşáážáŹááŻáśá¸áááŻáˇááááşáááŻáᏠááŻáśáážááşááźáąáŹááźáááŻáˇáááá°á¸á"
á
ááşáááŻááşá¸áá
áşááŻáážááˇáş á
ááşááŻáśá¸ááąáŤáşáážá áĄáážááşáá
áşááŻá ááźááŽááááşááťáŹá¸ááᯠáá˝ááşááťááşáááşáĄáá˝ááş ááąáŹáşááźá°ááŹááťáŹá¸ áá˝ááşááťááşááźááşá¸ (ááťá˝ááşáŻááşááážááşá
áŻá
áŹáĄáŻááşááž)
ááááşá¸ 1. áááŻá¸áááŻá¸ááźá˝áą
- ááááşááąáŹááşá¸ Windows (Windows 7á 10 áá˝ááş á ááşá¸áááşááŹá¸áááş)
- ЯСŃĐş: C pure áá˛áˇááąá¸ááŹá¸áááşáááşáááşá
- ááááşá¸áĄááşááťááş- Windows áá˝ááşáááŻá¸ááş
- áážáŻáśáˇááąáŹáşáážáŻ-
javidx9 - áááŻáážáąáŹááşáážáŻ-
GitHub
áááŻá¸áážááşá¸ááąáŹááźá˝áąááááşá¸
3D ááźááşáá˝ááşá¸áááş ááááşá¸áá áşááŻáááŻááşááŤá áááŻáˇáĄááźááşá 3D áĄááŹááášááŻááťáŹá¸ (áĄáá°á¸áááźááˇáş ááŹááşááąáŹááşááťáŹá¸) ááᯠááŻáśá áśááŻááşááźááşá¸áážááˇáş áážáŻááşáážáŹá¸áááşáááşááźááşá¸áááş áĄááťáááşááŻááşááźáŽá¸ áááşáá˛áááşá Unity áá˛áˇ áá áŹá¸ááźáŽá¸ááąáŹááşá áĄááźáąááśáááą áááşááŻááşáááŻáˇ ááŤáážáááŻááş áááşááŻááşáááŻáˇ áááŻáĄááşáááşáááŻááŹááᯠááŹá¸áááşááŹáá˛áˇáááşá áááŻá¸áážááşá¸ááźáŽá¸ ááźááşáááşááąáŹáşáááşá¸ áá áşááťáááşáááşá¸áážáŹáááş ááášááŹááŻáśá¸áááŻááşáᏠááááşá¸ááťáŹá¸á áá˝á˛áˇá ááşá¸ááŻáśááᯠááŹá¸áááşáááşá
áááŻá¸áážááşá¸ááźáŽá¸ ááźááşáááşááŹá ááŹáá˛á áážááşááŤáááşá console áá˛áˇ 2D ááŤá áááŻáááááťáááşáážáŹ áá˝ááşáááŻá¸ááşáážááˇáş áááşášááąáááťáŹá¸áááş ááźá áşáááşá áá áşáááşáĄááşááŹáááşááąáŤáşáá˝ááş áážáŻáśáˇááąáŹáşáážáŻáá áşááŻááᯠáážáŹáá˝áąáá˛áˇáááş (ááąááŻááťáĄáŹá¸ááźááˇáşá áĄááşááŹáááşáááş XNUMX ááŹá áŻá ááąáŹáşáážááşááąá¸áážááˇáş áĄáášáááŹááşáĄáážáááŻáśá¸ ááŽáá˝ááşáážáŻáᯠááťá˝ááşááąáŹáşáááşáááş)á áá˝ááşáááŻá¸ááş Tetris ááᯠáááşááŽá¸áá˛áˇ ááááŻááááşááŹáá áşááąáŹááşáá˛áˇ ááŽááŽáááŻááᯠáá°á¸ááąáŹáşááááŤáááşá ááźáŽá¸ááąáŹáˇ áá°áˇáá áŹá¸ááŻáśááášááŹááşáá˛áˇ âááźá˝áąâ ááŻááşáááŻáˇ ááŻáśá¸ááźááşáááŻááşáááşá ááŽááŽáááŻáááą áĄááźáąááśáĄááťááşáážá áşááťááşááźá áşáá˛áˇ - ááááşá¸á ááşáááŻááşá¸ (áĄááźáąááśááŻááşááąáŹááşááťááş/áĄáááŻááşá¸ááŻáśá¸áááŻááşá¸ááŤ) áá˛áˇ ááźáŹá¸ááśáĄáá˝ááş áĄáá˝ááşááᯠááąáˇááŹáá˛áˇááŤáááşá
ááááşá¸á ááşáááŻááşá¸áááş á¤áá˛áˇáááŻáˇááąáŹááŻáśááąáŤááşáááŻááşáááş-
int main()
{
Setup();
// a game loop
while (!quit)
{
Input();
Logic();
Draw();
Sleep(gameSpeed); // game timing
}
return 0;
}
ááŻááşáááş main() function áá áşááŻááŻáśá¸ááᯠáá áşááźááŻááşáááş ááąáŹáşááźáááşá áááˇáşááťáąáŹáşááąáŹáážááşááťááşááźáŽá¸ááąáŹááş ááááşá¸á ááşáááşá¸áááş á áááşáááşá loop áá˝ááş áĄááźáąááś function ááŻáśá¸ááťááŻá¸áážááááş- Input(), Logic(), Draw()á ááááŚá¸á á˝áŹ áááˇáşáá˝ááşá¸ááąááŹáááˇáşáá˝ááşá¸ááźááşá¸ (áĄááááĄáŹá¸ááźááˇáş ááŽá¸á áááááťáŹá¸ááᯠááááşá¸ááťáŻááşááźááşá¸)á áááŻáˇááąáŹááş áááˇáşáá˝ááşá¸ááŹá¸ááąáŹ áĄááťááşáĄáááş ááąáŹáˇááťá áşááᯠááŻááşááąáŹááşááźáŽá¸ááąáŹááş ááťááşáážáŹááźááşáááŻáˇ ááŻááşááąá¸á፠- áá˝á˛ááŤá ááźáŽá¸ááąáŹáˇ ááąáŹááşáááŻááşá¸áážáŹá ááŹáá˝ááşá¸ááᯠáááşááŽá¸ááŻáśá ááŽáááŻááŤá ááŹáá˝ááşá¸áá˛áážáŹáááŻááŤáá˛á ááŻáśáážááşáĄáŹá¸ááźááˇáşá áááˇáşáá˝ááşá¸ááŹá¸ááąáŹááąááŹááᯠááŻááşááąáŹááşááźááşá¸áááş áĄááťáááşáĄááťáŹá¸ááŻáśá¸ááźá áşááźáŽá¸á ááťá˝ááşáŻááşáááááąáŹááşá ááááşá¸áááąáŹááşáážáŻááşá¸ááᯠááŻáśá¸ááźááşáááşá ááŤááąáááˇáş ááŽááąááŹáážáŹ Logic() function á áĄáááşá¸ááźááşááŤáááşá áááŻáˇááźáąáŹááˇáşá áááşáááş á¤áĄááźááşáážáŻááşá¸ááᯠááŻáśá¸ááźááşááąá¸áááˇáş gameSpeed ââááŤááŹááŽááŹááźááˇáş Sleep() ááŻááşááąáŹááşááťááşááᯠáĄááŻáśá¸ááźáŻá áááááşáážáŻááşá¸ááᯠááááşá¸ááťáŻááşááááşááźá áşáááşá
ááááşá¸á
ááşáááşá¸á notepad áá˝ááş "ááźá˝áą" ááááŻááááşááźáŻááŻááşááźááşá¸á
áĄáááşá áááşáááş ááŹááşááąáŹááşáĄááźáąááś áá˝ááşáááŻá¸ááşááááşá¸ááᯠááŽáá˝ááşááąááŤáá ááŻáśáážááş 'cout' stream output ááᯠáĄááŻáśá¸ááźáŻá ááąááŹááťáŹá¸ááᯠááťááşáážáŹááźááşáááŻáˇ ááŻááşááąá¸áááŻááşáááş áááŻááşá፠- áááşá¸áááş áĄáá˝ááşáážáąá¸áá˝áąá¸ááŤáááşá áááŻáˇááźáąáŹááˇáşá áĄáá˝ááşáĄáŹá¸ á ááááşááźáŹá¸ááśáááŻáˇ áááŻáˇáááŤáááşá áááşá¸áááş áááŻáááŻááźááşáááşááźáŽá¸ ááááşá¸áááş ááťááŻáˇáá˝ááşá¸ááťááşááážááᲠáááşáááşáááŻááşáááşááźá áşáááşá áááŻá¸áááŻá¸ááŹá¸ááŹá¸ááźáąáŹááááşá áááşááŹá¸ááźááşááźáŹá¸ááśáááŻáᏠááŹáá˛á áááşáááŻáĄááŻááşááŻááşáááşáááŻááŹááᯠááŤááŹá¸ááááşáá°á¸á ááŤááąáááˇáş ááŽááąááŹáážáŹ ááá°ááŹááŻááşáá áşááŻááᯠááąá¸áážáŹááźá áşááźáŽá¸ áážááşááťááşáá˝áąáážáŹ áá áşá áŻáśáá áşááąáŹááşá áĄááźáąáĄááąááᯠáážááşá¸ááźáááŻááşááŤáááşá
áááşááŹá¸ááźááşááźáŹá¸ááśáá áşáᯠááá°ááźááşá¸ (á ááŹá¸ááźáąáŹáááŻáááş)á
// create screen buffer for drawings
HANDLE hConsole = CreateConsoleScreenBuffer(GENERIC_READ | GENERIC_WRITE, 0,
NULL, CONSOLE_TEXTMODE_BUFFER, NULL);
DWORD dwBytesWritten = 0;
SetConsoleActiveScreenBuffer(hConsole);
áĄááťááŻáˇááąáŹ string scoreLine (ááážááşááąáŹáşááźáááˇáşáááŻááşá¸) ááᯠáááŻááşáááŻááşááźááááş-
// draw the score
WriteConsoleOutputCharacter(hConsole, scoreLine, GAME_WIDTH, {2,3}, &dwBytesWritten);
ááŽáĄááŻááŽáĄáá ááŽááááşá¸áážáŹ áážáŻááşáá˝áąá¸áᏠááážáááŤáá°á¸á ááŤáᏠááąáŹááşá¸áá˝ááşáá˛áˇ entry-level áĽáááŹáá áşááŻáááŻáˇ ááťá˝ááşááąáŹáşáááşááŤáááşá ááŻááşááᯠáááŻááşáá áşááŻáá˝ááş ááąá¸ááŹá¸ááŹá¸ááźáŽá¸ ááŻááşááąáŹááşááťááşááťáŹá¸á á˝áŹááźááˇáş ááąáŹáşáááşááŹá¸áááşá áĄáááşá¸ááážáá áĄáá˝áąáááşá¸ááážáá GitHub áážá áááŻáážáąáŹááşáááşá¸áááŻáˇ áá˝áŹá¸ááźááşá¸ááźááˇáş áááşáááş ááááşá¸ááĄáááşá¸áĄááźá áşááŻááşáá˝ááş áĄááŹáĄáŹá¸ááŻáśá¸ááᯠáááşááźááşáááŻááşáááşá
ááááşá¸ 2. Crazy Tanks
- ááááşááąáŹááşá¸ Windows (Windows 7á 10 áá˝ááş á ááşá¸áááşááŹá¸áááş)
- ЯСŃĐş: C ++
- ááááşá¸áĄááşááťááş- Windows áá˝ááşáááŻá¸ááş
- áážáŻáśáˇááąáŹáşáážáŻ- á
áŹáĄáŻááş
ááááşá¸ááááŻááááşáážááááˇáş C++ áááŻá áááşááźááşá¸á - áááŻáážáąáŹááşáážáŻ-
GitHub
ááááşá¸ Crazy Tanks
áá˝ááşáááŻá¸ááşáá˝ááş ááŹááşááąáŹááşááťáŹá¸ááᯠááŻáśáážáááşááźááşá¸áááş áááşááááşá¸áĄááźá áşáááŻáˇ ááźáąáŹááşá¸áá˛áááŻááşáááˇáş áĄáááŻá¸áážááşá¸ááŻáśá¸áĄáᏠááźá áşááąáŹááşá¸ááźá áşáááŻááşáááşá áááŻáˇááąáŹáş ááźáżááŹáá áşááŻááąáŤáşááŹáááş- áááşášááąáááťáŹá¸áááş áĄááźááˇáşáážááˇáş áĄááśááťáŹá¸ áá˝á˛ááźáŹá¸áááş (áĄááźááˇáşáááş áĄááśáááşááźáŽá¸áááş)á á¤áááşá¸áĄáŹá¸ááźááˇáşá áĄááŹáĄáŹá¸ááŻáśá¸áááş áĄááťááŻá¸áĄá áŹá¸áááŽáᲠááźá áşááąáááşááźá áşááźáŽá¸ áĄáąáŹááşáááŻáˇ áá˝áąáˇááźááşá¸áááş áááş áááŻáˇáááŻááş ááŹáááŻáˇáá˝ážáąáˇááźááşá¸áááş áááŻáááŻááźááşáááşá á˝áŹ ááąáŤáşááŹáááşááźá áşáááşá á¤áĄááťááŻá¸áááşááąáŹááşáážáŻáááş Snake (ááááşá¸ 1) áá˝ááş áĄáá˝ááşááááŹáááşá "Tanks" (ááááşá¸ 2) áá˝ááş áá˝á˛ááźáŹá¸ááąáŹáĄááąáŹááşááťáŹá¸ááźááˇáş áááşááŹá¸ááźááş pixels ááťáŹá¸ááᯠáááşá¸ááťáŽááąá¸áá˝á˛ááźááşá¸ááźááˇáş áĄáá˝ááşááᯠá áŽá áĽáşááŹá¸ááąáŹááźáąáŹááˇáş á¤áĄáŹá¸áááşá¸ááťááşááážáááŤá ááťá˝ááşááąáŹáşá áááŻááşááąáŤáşááąá¸áááşáááŻáˇ ááźáąáŹáááŻáˇáááŤáááşá áááŻá áááşáááşá áŹá¸á ááŹááąáŹááşá¸ááąáááˇáş ááŤá áááşá¸áááşá¸áááŻáážáŻááşáá˝áąá¸ááŤáááşá
á¤ááááşá¸áĄáá˝ááşá ááťááşáážáŹááźááşááąáŤáşáá˝ááş pixels ááźááááşáĄáá˝ááş ááťá˝ááşáŻááşáá áá áşáĄáŹá¸ ááąáŹáşááźáááş ááŻáśááąáŹááşáááşááźá áşáááşá ááŤááᯠááááşá¸áá˛áˇ áĄááá áĄá áááşáĄáááŻááşá¸áááŻáˇ ááťá˝ááşááąáŹáş áá°áááŤáááşá ááźáŽá¸ááąáŹáˇ áááşáááŻááşáááŻááşá áááźáŹá¸áĄááŹáĄáŹá¸ááŻáśá¸ááᯠáááŻááşááŻááşáááŻááşááŤáááşá
áááŻáˇááźáąáŹááˇáşá áááşááŹá¸ááźááşááąáŤáşáá˝ááş áááşááźááşááááˇáşáĄááŹáááş ááąáŹááşá áŻáśá ááŻááśááťáŹá¸ áá˝áąáˇááťáŹá¸ááąáááˇáş áĄá áŻáĄááąá¸áá áşááŻááťážááŹááźá áşáááşá
á
ááŻááśáĄá
áŻáś
ááąáŹááˇáşáážááşá ááŻááśáá áşááŻá áŽááᯠááááşá¸ááťáŹá¸ááźááˇáşááźááˇáşááŹá¸ááąáŹ matrix ááźááˇáş áááŻááşá áŹá¸ááźáŻáááşá á ááŹá¸áá ááşá ááťá˝ááşáŻááşáááş á áááşáááşá áŹá¸á ááŹááąáŹááşá¸ááąáŹ áá˝á˛ááźáŹá¸ááťááşáá áşááŻááᯠááŽá¸ááąáŹááşá¸áááŻá¸ááźáááŻááşáááş - ááááşá¸áážá matrices áĄáŹá¸ááŻáśá¸ááᯠone-dimensional array áĄááźá áş ááááŻááááşááźáŻááŻááşááŹá¸áááşá áážá áşáááşááźááşáááŻááşáᲠáá áşáááşááźááşá One-dimensional arrays ááťáŹá¸áááş áĄááŻááşááŻááşáááş áááŻáááŻáá˝ááşáá°ááźáŽá¸ áááŻáááŻááźááşáááşááŤáááşá
ááááşá¸ tank matrix áĽáááŹ
ááááşá¸ tank matrix ááᯠáá
áşáááşáááşááźááş áááşá¸ááťááşá¸áá
áşááŻáĄááźá
áş áááŻááşá
áŹá¸ááźáŻááźááşá¸á
áá
áşáááşááźááş áááşá¸ááťááşá¸áá
áşááŻáĄááźá
áş matrix ááᯠáááŻááşá
áŹá¸ááźáŻááźááşá¸á áááŻááźááşááŹááąáŹ áĽáááŹ
áááŻáˇááąáŹáş array áááźááşá ááşááťáŹá¸áááŻáˇáááşááąáŹááşáá˝ááˇáşáááş áá áşáááşááźááş array áááŻááşááąáŹáşáááşá¸ áážá áşáááşááźááşáá áşááŻáá˛áˇáááŻáˇ double loop áá˝ááşááźá áşááąáŤáşááŤáááşá ááťá˝ááşáŻááşáááŻáˇáááş áááşááá áşááááşá¸ááťáŹá¸ááźááˇáş ááŻááşááąáŹááşááąááąá¸ááąáŹááźáąáŹááˇáş áááşá¸ááᯠááŻááşááąáŹááşáááşá
áážá
áşáááşáá˝ááşá¸áĄáá˝ááşá¸ áá
áşáááşááźááş áááşá¸ááťááşá¸áá
áşááŻááᯠááźááşáá˝áŹá¸ááźááşá¸á Y - áĄáááşá¸áĄáážááşáĄááŹá¸á X - ááąáŹáşááśáááşáážááşá
áá
áş
ááťáąá¸áá°á¸ááźáŻá áááááźáŻááŤ- ááŻáśáážááş matrix identifiers i, j áĄá áŹá¸á x áážááˇáş y ááᯠááŻáśá¸ááŤáááşá ááŽáááşá¸á ááťááşááŻáśá¸ááᯠáááŻáááąáŹááťááźáŽá¸ áŚá¸áážáąáŹááşááᯠáááŻááŹá¸áááşáááŻááşá áąáááş áááşááŤáááşá áááŻáˇáĄááźááşá áááŻáááŻáˇááąáŹ áĄáážááşáĄááŹá¸áááş áážá áşáááşááźááşááŻááşááŻáśáá áşááŻáśá ááźááŽááááşáááşáááŻá¸ááťáŹá¸ááąáŤáşáá˝ááş áĄááŻáśá¸ááźáŻáááˇáş matrices ááťáŹá¸ááᯠáĄáááşááźáąá á˝áŹ áááąáŹááťááşááŻááşáááş ááźá áşáááŻááşá áąáááşá
ááᯠpixelsá áĄááąáŹááşáážááˇáş screen output áĄááźáąáŹááşá¸á StretchDIBits ááŻááşááąáŹááşááťááşááᯠáĄáá˝ááşáĄáá˝ááş áĄááŻáśá¸ááźáŻáááş (Header: windows.h; Library: gdi32.lib)á áĄááźáŹá¸áĄááŹááťáŹá¸ááźáŹá¸áá˝ááşá á¤ááŻááşááąáŹááşááťááşáááş áĄáąáŹááşááŤáááŻáˇááᯠáááşááśááážááááş- ááŻáśáĄáŹá¸ááźááááˇáşáááááᏠ(ááťá˝ááşáŻááşááá ášá áá˝ááşá áááşá¸áážáŹ Windows áá˝ááşáááŻá¸ááş)á ááŻááşááŻáśááźááážáŻá áĄá ááźááŽááááşááťáŹá¸á áááşá¸á áĄááťááş/áĄááźááˇáşá áážááˇáş ááŻáśáá˝ááş áá°áˇááŹááŹáá° bytes á array áá áşááŻááźááˇáşáááŻááşá áŹá¸ááźáŻááąáŹ bitmap ááŻáśá áśá áááŻááşáĄáááşá¸áĄááźá áş áá áşááźáąááŻáśá
ááŻááşááąáŹááşááťááşáá˝ááş 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
);
VirtualAlloc() ááŻááşááąáŹááşááťááşááᯠáĄááŻáśá¸ááźáŻá á¤áá áşááźáąááŻáśáĄáá˝ááş Memory ááᯠááźááŻáááşáá˝á˛ááąááąá¸ááŤáááşá áááŻáááŻáááşáážáŹá áááŻáˇááąáŹááşá ááááşááąáŤáşáá˝ááşááźááááˇáş pixels áĄáŹá¸ááŻáśá¸áážááˇáşáááşáááşááąáŹáĄááťááşáĄáááşááťáŹá¸áááŻááááşá¸áááşá¸áááşáĄáá˝ááşáááŻáĄááşááąáŹáááŻááşáĄááąáĄáá˝ááşáááŻáááşáááşááŹá¸áááşá
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);
áĄááźááşá¸ááťááşá¸ááźáąáŹáááťážááş bitmap áá˝ááş pixels áĄá áŻáĄááąá¸áá áşááŻááŤáážááááşá array áážá ááąá¸áááŻááşáááŻááşá¸áááş RGB pixel áá áşááŻááźá áşáááşá áĄááŽáĄááąáŹááşáááşáááŻá¸áĄáá˝ááş áá áşáááŻááşá áĄá áááşá¸ááąáŹááşáĄááąáŹááşáááşáááŻá¸ (G)á áĄááźáŹááąáŹááşáááşáááŻá¸ (B) áá áşáááŻááşá áááŻáˇáĄááźááş áĄááşáááşá¸ááŻááşáááş áá áşáááŻááşááťááşááąá¸áááşá á¤áĄááąáŹááşááŻáśá¸ááťááŻá¸ - áĄááŽ/á áááşá¸/áĄááźáŹ (RGB) - áááŹááąáŹ pixel áĄááąáŹááşááᯠáááşááŽá¸áááşáĄáá˝ááş áá˝á˛ááźáŹá¸ááąáŹáĄááťááŻá¸áĄá áŹá¸ááťáŹá¸ááźááˇáş áá áşááŻáážááˇáşáá áşáᯠááąáŹá ááşááŹá¸áááşá
ááᯠáá áşáááşá ááąáŹááˇáşáážááşá ááŻááśáá áşááŻá ᎠáááŻáˇáááŻááş ááááşá¸áĄááŹááášááŻáá áşááŻá áŽááᯠááááşá¸áááşááá áşááźááˇáş áááŻááşá áŹá¸ááźáŻáááşá á¤ááááşá¸áĄááŹááášááŻáĄáŹá¸ááŻáśá¸ááᯠá áŻá ááşá¸áážáŻáá áşááŻáá˝ááş áááˇáşáá˝ááşá¸ááŹá¸áááşá áááŻáˇááąáŹááş áááşá¸áááŻáˇááᯠáá áŹá¸áá˝ááşá¸ááąáŤáşáá˝ááş ááŹá¸áážááᏠááźáŽá¸ááŹá¸ááąáŹ ááááşá¸áááŹááşá¸áááşááá áşáá áşááŻááᯠááŻáśááąáŹáşááŹá¸áááşá ááťá˝ááşáŻááşáááş matrix áážá ááśááŤááşáá áşááŻá áŽááᯠááŽá¸ááźáŹá¸áĄááąáŹááşáá áşááŻáážááˇáş áááşá ááşááŹá¸áááşá áĽáááŹáĄáŹá¸ááźááˇáşá ááśááŤááş 8 áááş áĄááźáŹááąáŹááşá ááśááŤááş 9 ááž áĄááŤááąáŹááşá ááśááŤááş 10 ááž ááŽá¸áááŻá¸ááąáŹááş áĄá áážááááşáááŻáˇáážááˇáş áááşáááŻááşááŤáááşá áááŻáˇááźáąáŹááˇáşá ááťá˝ááşáŻááşáááŻáˇáá˝ááş ááśááŤááşáá áşááŻá áŽáááş áĄááąáŹááşáá áşááŻááźá áşáááˇáş áá áŹá¸áá˝ááşá¸á matrix áá áşááŻáážááááşáᯠááťá˝ááşáŻááşáááŻáˇááźáąáŹáááŻááşáááşá
áááŻáˇááźáąáŹááˇáşá ááťá˝ááşáŻááşáááŻáˇáá˝ááş áá áşáááşáá˝ááş áá áŹá¸áá˝ááşá¸áá áşááŻááŻáśá¸á ááááşá¸áááŹááşá¸áááşááá áşáá áşááŻáážááˇáş áĄááźáŹá¸áá áşáááşáá˝ááş ááŻáśáááŻááźááááşáĄáá˝ááş bitmap áá áşááŻáážááááşá áááŻáĄááťáááşáĄááá bitmap áááş "áááŹ" ááźá áşáááş - áááşá¸áá˝ááşáĄáááŻáážáááąáŹáĄááąáŹááşá pixels ááťáŹá¸áĄááźáąáŹááşá¸áĄááťááşáĄáááşááťáŹá¸áááŤáááşááąá¸ááŤá áááŻáááŻáááşáážáŹ áá áŹá¸áá˝ááşá ááááşá¸áááŹááşá¸áááşááá áşááᯠáĄááźáąááśá pixel áá áşááŻá áŽá bitmap ááᯠááźááˇáşáá˝ááşá¸áááş ááąáŹááşááŻáśá¸áĄáááˇáşáážáŹ ááźá áşááááˇáşáááşá á¤áá˛áˇáááŻáˇ áĄáá˝ááşááźáąáŹááşá¸ááźááşá¸á áážááşá¸áááşá¸ááąáŹ áĽáááŹááᯠáĄáąáŹááşááŤááŻáśáá˝ááş ááąáŹáşááźááŹá¸áááşá
áá
áŹá¸áá˝ááşá¸á áá
áşááťá
áşáááşáááşááá
áşááᯠáĄááźáąááśá bitmap (Pixel matrix) áááŻááźááˇáşááźááşá¸ááĽáááŹáá
áşáᯠ(áĄááąáŹááşáá˝ážááşá¸ááááşá¸ááťáŹá¸áááş ááááşá¸áážááá˝ážááşá¸ááááşá¸ááťáŹá¸áážááˇáşááá°ááŽááŤ)
ááááşá¸áá˛á ááŻááşáĄá á áşáá áşáááŻááşá¸áááŻáááşá¸ áááşááźááąá¸ááŤáááşá áá˝ááşá¸áááşáá áşááŻá áŽáá˝ááş ááźáąáŹááşá¸áá˛áááŻááşááąáŹ áĄááąáŹááşáĄáá˝ážááşá¸ááááşá¸ááᯠáá áŹá¸áá˝ááşá¸á ááááşá¸áááşááá áş (mainDigitalMatrix) ááž áááşáááŻá¸ (áĄááąáŹááşáĄáá˝ážááşá¸) áááşáážááşááąá¸áááşá áááŻáˇááąáŹááş áĄáá˝ážááşá¸ááááşá¸ááąáŤáşáĄááźáąááśá áĄááąáŹááşááźáąáŹááşá¸áááŻááşááąáŹáĄááąáŹááşááᯠáá°áˇááŹááŹáá°áááşáážááşáááşá áááŻáˇááąáŹááş ááážáááŹááąáŹáĄááąáŹááşááᯠáĄááŽá áĄá áááşá¸áážááˇáş áĄááźáŹ (RGB) áĄááťááŻá¸áĄááźá áş áááŻááşá¸ááźáŹá¸ááŹá¸áááşá pixelPadding áážááˇáşáĄáá°á á¤áĄááťááşáĄáááşááᯠpixel áá˛áááŻáˇ áááşááŤááá˛áᲠááąá¸ááŹá¸ááźáŽá¸ bitmap áá˝ááş áĄááąáŹááşááŻáśáá áşááŻáśáĄááźá áş ááŻáśááąáŹáşááŹá¸áááşá
ááŻááşáááş ááŹá¸áááşááááşáááŻááşáááˇáş pointers áážááˇáş bitwise ááŻááşááąáŹááşááťááşááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻáááşá ááŤááźáąáŹááˇáş ááŽáááŻáá˝á˛áˇá ááşá¸ááŻáśáá˝áą áááşáááŻáĄááŻááşááŻááşáááşáááŻááŹááᯠáá áşááąááŹááŹáážáŹ áááşáážáŻáááŻáˇ áĄááźáśááąá¸ááťááşááŤáááşá
áá áŹá¸áá˝ááşá¸á ááááşá¸áááŹááşá¸áááşááá áşááᯠáĄááźáąááśá áá áşááźáąááŻáśááᯠááźááˇáşá á˝ááşááźááşá¸-
// 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() ááŻááşááąáŹááşááťááşáá˝ááş ááąáŹáˇáááşááźááşá¸ááťáŹá¸ááᯠá áŹáááşá¸áá˝ááşá¸ááźáŽá¸ Logic() ááŻááşááąáŹááşááťááşáá˝ááş áááşá¸áááŻáˇá ááąáŹááşáááşáá˝á˛ááŻááşááąáŹááşáážáŻááťáŹá¸ááᯠááŻáśáĄáá áşáá áşáᯠ(ááąáŹááş) áá˝á˛áˇááŹá¸ááŤáááşá áážááşááŤáááşá ááááşá¸áĄááŹááášááŻááťáŹá¸áááş áá áŹá¸áá˝ááşá¸áá˝ááş ááá°ááŽááąáŹáĄááąáĄááŹá¸áážáááźáŽá¸ááŹá¸ááźá áşáááŻááşááźáŽá¸á áááŻáˇááźáąáŹááˇáş ááá°ááŽááąáŹááąááŹáá áşááŻáá˝ááş ááąá¸áá˝á˛ááŹá¸áááşá ááŹáá˝ááşá¸ (áážáŻááşáážáŹá¸áážáŻ) ááźá áşááťááşááŻáśá
ááŽáĄááŻááŽáĄá (ááŹáážáááąáˇááąá¸áááş) áááááááşá¸ ("ááźá˝áą") ááž ááááşá¸áááŻááşá¸ááᯠááŹá¸áááşááźááşá¸áážááˇáş ááŻáááááááşá¸ááž á ááááşááąáŤáşáážá pixels ááťáŹá¸ááźááááˇáşá áá áş ("Tans") áááş áááşááąá¸áááş áááŻáĄááşáááˇáşáĄááŹáĄáŹá¸ááŻáśá¸ááźá áşáááşá Windows áĄáąáŹááşáážá áááşá 2D ááááşá¸ááťáŹá¸á áĄááśáá˛áˇá đ ááťááşâáá˛áˇáĄáááŻááşá¸âáá˝áąáâááąáŹáˇ áĄáááŻááşâá áŹá¸âáá˝áąááťááşá¸ááŤáá˛á
ááŻááşááŤáááşá Tanks ááááşá¸á "Snake" áááş áĄááťáŹá¸ááźáŽá¸ áááŻáážáŻááşáá˝áąá¸ááŤáááşá á፠C++ ááŹááŹá ááŹá¸ááᯠááŻáśá¸ááŹá¸ááźáŽá¸ááźáŽá áááŻáááŻáááşáážáŹá áĄáááşá¸ááťáŹá¸áážááˇáş ááá°ááŽááąáŹ ááááşá¸áĄááŹááášááŻááťáŹá¸ááᯠááąáŹáşááźáá˛áˇáááşá ááťá˝ááşáŻááşáááş ááťá˝ááşáŻááşááááŻááşáááŻááşá áŻá ááşá¸áážáŻááᯠáááşááŽá¸áá˛áˇáááş - ááŻááşááᯠheaders/Box.h áá˝ááş ááźááˇáşáážáŻáááŻááşááŤáááşá á ááŹá¸áá ááşá á áŻááąáŹááşá¸áážáŻáá˝ááş áážááşááŹááşáááŻá áááˇáşáážáŻ ááźá áşáááŻááşááźáąááťáŹá¸áááşá áĄáá˝ážááşá¸ááťáŹá¸ááᯠááŻáśá¸áááşá áážááşááŹááşááźááˇáş ááŻááşááąáŹááşáá˛áˇáááşá á áŹáĄáŻááşá ááťá˝ááşááąáŹáˇáşááᯠáĄááťáŹá¸ááźáŽá¸ áĄááąáŹááşáĄáá° ááźáŻáááşáááŻáˇ ááźáąáŹááááşá ááááşá¸ááááŻááááşáážááááˇáş C++ áááŻá áááşááźááşá¸á. C++ á áááşááąáˇááŹáá°ááťáŹá¸áĄáá˝ááş ááąáŹááşá¸áá˝ááşááąáŹ á áááşáážáŻááźá áşáááşá ááąá¸áááşáááşá á áááşáááşá áŹá¸á ááŹááąáŹááşá¸ááźáŽá¸ á áá áşáááťáá˝á˛áˇá ááşá¸ááŹá¸áááşá
ááŽááááşá¸ááᯠáááşááŽá¸áááŻáˇ ááźáąáŹááşáááąáŹááş áĄááťáááşáá°ááááşá áĄááŻááşáážáŹ ááąáˇáááşá áŹáá˛áˇ áĄááŹááźáąááťáááşáá˝áąáážáŹ áĄáááááąá¸áááşá áá°áááş ááŻáśá¸ááŽá¸áááŻááťáąáŹááşáá˝ááşáááŻááşáᏠáĄá áŹáááŻáááşá¸áᏠááŻááşááąá¸áááşá ááŤáážáááŻááş áĄáááşáážáŹ áá áŹá áŹá¸ááŤá ááŤááźáąáŹááˇáş áᎠ"ááŽá¸áááŻááťáąáŹááşá á áşáá˝á˛" áá˛áˇ áĄááŻáśá¸áááşáá˛áˇáááşá áĄááźá˛áááŻáááŻá ááťá˝ááşáŻááşáááş áážááşá áŻá áŹáĄáŻááşááᯠáááşááźá˝á á˝áŹ áĄááŻáśá¸ááźáŻáá˛áˇááźáŽá¸ áĄáá°áĄááááŻááşáᏠáĄááŹááťáŹá¸áĄáŹá¸ááŻáśá¸áááş áááşá¸áá˝ááş áá˝áąá¸áá˝áŹá¸ááŹáá˛áˇáááşá
áááşáá˝áąáˇáĄáááŻááşá¸ááᯠááźáŽá¸ááźáąáŹááşáááşá ááťá˝ááşáŻááşá áážááşá áŻá áŹáĄáŻááşááᯠá áááşááşáááşááŤáááşá áĄáááĄááťááąá¸ááŹá¸áááşá áá˝á˛áááşá ááąáá˝ááşáááşá ááŽáááŻááşá¸ááŻááşáááşáááŻáᏠááźáááŻáˇ...
áááˇáşááŹá¸ááŻáśááťáŹá¸ ááŽáááŻááşá¸áá˝á˛ááźááşá¸á áááşááŹá¸ááźááşááąáŤáşáá˝ááş áááŻááşááŽáá
áşááŻá
áŽáááş áááşááťáž pixels áááşááťáž ááááşá¸áááŻááşáááˇáşáááşááᯠááŻáśá¸ááźááşááźááşá¸á
áááşá¸ááááşáááŻá¸áá
áşáááŻááşáá˝ááş áááŻááşááŽáážááˇáşááźááşá¸áĄáá˝ááş algorithm áážááˇáş ááąáŹáşááźá°ááŹááťáŹá¸ááᯠáá˝ááşááťááşááźááşá¸á
ááťá˝ááşáŻááşá á
áŻá
ááşá¸áážáŻ áĄá
áŽáĄá
ááş ( Memory áááŻá
áááˇáşáážáŻ á ááźá
áşáááŻááşááťáą áĄááťáŹá¸ááŻáśá¸ )á á
áŻá
ááşá¸áážáŻááᯠLinked List áĄááťááŻá¸áĄá
áŹá¸áĄáááŻááş áááşááŽá¸ááŹá¸áááşá
áááşá¸áááŻáˇáááş ááááşá¸áá˝ááş ááŹááşáááşááŻááᯠááťáááşáááşáááş áĄááťááşá¸áážáŽá¸ááąáŹ ááźááŻá¸áááşá¸áážáŻááťáŹá¸ááźá
áşáááşá
áááąáŹáááŹá¸
"áááŻááşáá áşááąáŹááşáááŽá¸ááᯠáááááźáąáážááşá¸áá˛áˇá áááş" (áážáąá¸áááŻááşáááŹ)
áááşáá˝áąáˇááž ááŽáĄááŻááŽáááŻáˇ áá°á¸ááźáąáŹááşá¸ááźááŤá ááŻáˇá áááŻááˇáşááŤáááŹáĄáá˝ááş áĄááťáááşááᯠáááşáááŻáážáŹááá˛á
- áááşáĄáážááşááááşáááŻááťááşááŹááᯠááŻáśá¸ááźááşá፠(ááźá áşááťááşááąáŹáˇ ááŤá áĄáááşááŻáśá¸áĄáááŻááşá¸)á
- áŚá¸á áŹá¸ááąá¸áááşáážááşááŤá
- áááŻáááŻááźááˇáşááŹá¸ááąáŹáŚá¸á áŹá¸ááąá¸áážáŻááťáŹá¸áĄáá˝ááş "áĄáááŻ" áĄááŹáĄáŹá¸ááŻáśá¸áááŻá ááąá¸ááŤá
- áááşá¸áááŻááşááŽáááŻáˇ ááąáˇá ááş ááťážáąáŹááşáážááşá¸ááŤá
- ááŤáááŹáá áşááŻáĄáá˝ááş áĄáŹá¸áááşááťáááş áážá áşááŹáᎠáááŻáˇáááŻááş ááŻáśá¸ááŹááŽááᯠáááťážáąáŹáşáááˇáşááŤáážááˇáşá
áá áşáááşáá˝ááş áááşáááş áááşáááŻááťááşááąáŹáĄááŹááᯠááŻáśá¸ááźááşááźáŽá¸ áŚá¸á áŹá¸ááąá¸áááş áááŻáĄááşáááşá áĄááźáŹá¸áá áşáááşáá˝ááşá áĄááťááŻáˇááąáŹ ááŻááşáááşá¸ááťáŹá¸/áááąáŹááťááşááťáŹá¸ááᯠá á˝ááˇáşáá˝ážááşáááŻááşáááş á áá áşáááşá¸áĄáŹá¸ááźááˇáş áááşáááş "áĄáááŻ" áĄááŹáĄáŹá¸ááŻáśá¸ááᯠá á˝ááˇáşáá˝ážááşáááąáááşá áááážáŹ áĄááťáŹá¸ááŻáśá¸ áĄááá ááŻááşááąáŹááşááťááş ááŻáśá¸ááŻááąáŹááş ááŻááşááááşáááŻáˇ áá áşááąááŹááŹáážáŹ ááźáŹá¸áá°á¸áááşá áááŻáˇááąáŹááş áááşáááş áááşá¸áááŻáˇááᯠáĄááźááˇáşááŻáśá¸áĄáááşáĄáá˝áąá¸ááźááˇáş ááŻááşááąáŹááşáááŻááşáááşááźá áşáááşá áááŻáˇáĄááźááş ááąáŹááşáááşáááąáŹááťááşááťáŹá¸/áááşá¸áá˝ážááşááťááşááťáŹá¸áááş ááŹáá˝ááşááąááąáŹáˇáááşááźá áşáááşá áááŻáˇááąáŹáş á¤áĄááŹáĄáŹá¸ááŻáśá¸áááş ááŻáášáááááášáááážááˇáş áá áşáŚá¸ááťááşá¸ ááźá áşáááŻááşáááşá
áá˝ážáąá ááşá¸ááťááşá¸áá áşááŻáážáááŤáááş- 0% ááąáˇáááşááąáŹáˇáážááážáá፠áĄááşááŽááąáŹáˇááşáá˛ááąá¸ááŹá¸áá°á ááąáŹááşá¸ááŤá¸áá áşááŻááşáá˝ááş áááşá¸áĄááźáąáŹááşá¸ááᯠááąáˇááŹáá˛áˇáááşá áĄáááşá áááşáááş áááąáŹááťááşáá áşááŻáá˝ááş ááŻááşááąáŹááşááąááŤá áááşá¸ááᯠááąáˇáááŻááşá¸ááŻááşááŤá ááźáŽá¸ááąáŹáˇ áááşá¸áááşááąáŹááşááŻááşáᲠáĄááąá¸áááźáŽá¸áá°á¸á á ááŹá¸ááŻáśá¸áá áşááŻáśá¸ (áááŻáˇ) ááŻááşáá áşááźáąáŹááşá¸ááąá¸ááŤá áááşáááşá¸á áŹááŽááŽáááŻáááŻááźááˇáşá፠áááŻáˇáááŻááş ááŻááşáá áşááŻáá˛áááŻáˇ ááśááťáąáŹááşá¸áá áşááťáąáŹááşá¸áááŻááşá፠- áá áşááŻááŻááŻááşááŤá áĄáááşáá˛ááŻáśá¸áĄááŹá á áááşáááşááźá áşáááşá á áááşááźáŽá¸áááşáážááˇáş áááşáĄáááŻáážááááşáááş áĄáááşá¸áááşáááŻá ááŻááşááąáŹááşáááŻááşáááşááźá áşáááşá á¤áááşá¸ááźááˇáş áááşáááş áááşááááşá¸áááŻááşááŽáááŻáˇ áĄáááşáááźááş áá˝áąáˇááťáŹá¸áááşááźá áşááźáŽá¸á ááťá˝ááşáŻááşááᯠááŻáśááźááşááŤá áĄáá˝ááşááťááşááźááşááŤáááşá áĄááŹáĄáŹá¸ááŻáśá¸á áĄááááĄááŹá¸áĄááŽá¸áážáŹ áĄááťáááşáá˝á˛ááźááşá¸áááşááźá áşáááşá
áááŻáˇáĄááźááş 5á 10á 15 áááá áşááĄááá˛áˇ "áá˝ážá áŹ" ááᯠááťážáąáŹáˇááá˝ááşáᲠááťá áşááťá°áážáŻááŹá¸áááş áĄááąá¸ááźáŽá¸ááźáŽá¸ áá áşááŹáᎠáááŻáˇáááŻááş áážá áşááŹááŽááźáŹááąáŹ "áá áşááŻáśá¸ááźáŽá¸ááťáŹá¸" ááᯠá áąáŹááˇáşááŤá áááşá¸ áááşá¸á áŽáááşááąááŹááŹá¸á áááˇáşáááąáŹááťááşáĄáá˝ááş áá áşááŻááŻááᯠá ááşá¸á áŹá¸ááŤá á ááşáážáąááŹá¸á áŽá¸áááŹá¸ áá áşááŻááŻááᯠnotepad áážáŹ ááťááąá¸ááŤá áááşá¸ áááşá áşááŹá¸áá˛áˇ áááŽá¸áá˝áŹá¸ááąááŹááŹá¸á ááąáŹááşá¸ááźáŽá ááąáŹááşá¸ááŤá¸áĄááťááŻáˇáááŻáááşááŤá áĄáá˝ááˇáşáĄááąá¸áááŻááşá¸ááᯠáĄááŻáśá¸ááťááŤá YouTube áá˝ááş ááźáąáŹááşááťáŹá¸áážááˇáş áá˝áąá¸ááťáŹá¸ááᯠááźááˇáşáážáŻááźááşá¸ááᯠáááşáááŻááşááŤá áááˇáşáŚá¸áážáąáŹááşááᯠááá áşáááşá¸á áąáážááˇáşá
ááźáŽá¸ááąáŹáˇ ááąáŹááşááŻáśá¸áá
áşááťááşá á¤ááąáŹááşá¸ááŤá¸áááŻáááşááźáŽá¸ááąáŹááş áááşáááş ááááşá¸áĄááşááťááşááťáŹá¸áááŻáśá¸áᲠááááşá¸ááťáŹá¸áááŻáááşááŽá¸áááşá
áááşáá°á¸ááᯠáážá
áşáááşááŤá Casey Muratori áĄáááşááᯠááááááŤá ááŽááąáŹááşáážááááşá
áááˇáşáááŻááşáááŻááşááááşá¸áĄááşááťááşááᯠááŽáá˝ááşááźááşá¸ááźááˇáş áááşáááş áááşáážááĄááşááťááşááťáŹá¸ááᯠáááŻáááŻááąáŹááşá¸áá˝ááşá á˝áŹ ááŹá¸áááşáááŻááşááááˇáşáááşááźá áşááźáąáŹááşá¸ Casey á áážááşá¸ááźáááşá áá°áááŻááşá¸áĄáááŻáĄááťáąáŹááşááŻááşáááşááźááŻá¸á áŹá¸ááąáááˇáşááąáŹááşááąáŹááá˝ááşá áááşáĄááŻáśá¸ááźáŻáááˇáşáĄá áŹá¸ áááşááŽá¸áááşáááşáá°ááŤá áá˝ááşááźá°ááŹáá˛áˇ áááąáŹáááŹáááᯠáááşááŹá¸áááşááŤáááşá áááŻáˇáĄááźááş áááşáááş áááŻáááŻáááşááźááşááźáŽá¸ áááˇáşááťááşááąáŹ ááááŻááááşááŹáá áşáŚá¸áááşá¸ ááźá áşááŹáááşááźá áşáááşá
áááşá¸áá˝áąá¸ááťááşáá˛áˇáááşá¸áážáŹ ááśááąáŹááşá¸ááŤá áąá ááźáŽá¸ááąáŹáˇ ááášááŹááźáŽá¸ááᯠáááŻáááąáŹáşáááşáážááşáááşááźá áşáĄáąáŹááş ááŻááşááźááĄáąáŹááşá
Author: Grankin Andrey á DevOps
source: www.habr.com