"ืืื ืืืืกื ืึทื ืืื ืืืืกื ืืึธืจื ืืฉื" ืกืึธืงืจืึทืืขืก
ืคึฟืึทืจ ืืืขืืขื: ืคึฟืึทืจ IT ืืขื ืืฉื ืืืึธืก ืฉืคึผืืึทืขื ืืืืฃ ืึทืืข ืืขืืืขืืึธืคึผืขืจืก ืืื ืืืืื ืฆื ืฉืคึผืืื ืืืืขืจ ืฉืคึผืืืขืจืืึท!
ืืืขืื ืืืืก: ืืื ืฆื ืึธื ืืืืื ืฉืจืืืื ืฉืคึผืืืขืจืืึท ืืื C / C ++ ืืืื ืืืจ ืืึทืจืคึฟื ืขืก!
ืคืืจืืืืก ืืึธื ืืืจ ืืืืขื ืขื ืืขื: ืึทืคึผ ืึทื ืืืืืงืืื ื ืืื ื ืืฉื ืืืื ืึทืจืืขื ืกืคึผืขืฆืืึทืืืืขื, ืึธืืขืจ ืืื ืคึผืจืืืืจื ืฆื ืงืึธื ืืขืืขืจ ืืืึธื. ืืืืึทื ืืื ืืืืข ืฉืคึผืืืขืจืืึท!
ืืขืื ืืืื ื ืืืขื ืืื
ืื ืงืึธืืคึผืืืืขืจ ืฉืคึผืืืขืจืืึท ืืื ืืืกืืจืืข ืืื ืจืืืืง, ืืคืืื ืืขืจ ืจืืืขืจื ืืืึทื ื ืืื ืื ืคึฟืืื ืืื ืืืกืืจืืข. ืืึทืืขืก ืืขื ืขื ืืขืฉืจืืื ืืื ื ืื ืึธื ืืืื ืคืื ืืขืจ ืึทื ืืืืืงืืื ื ืคืื ืงืึธืืคึผืืืืขืจืก, ื ืืฆื, ืืืื ืืึธืืขืจื ืกืืึทื ืืึทืจืืก, ืงืึธืืคึผืืขืงืก ืืื ืืงืขืจืืืง ืึทื ืืืืืงืืื ื ืืขืืืึธืืก. ืืืืขืจ ืฆืืึทื, ืฉืคึผืื ืขื ืืืฉืึทื ื ืื ืืขืืืืื ืฆื ืืขืจืฉืืึทื ืขื ืืื ืฉืืื ืคึผืจืึธืืืจืึทืื ืืจืึทืคืืงืก, ืคืืืืง ืืื ืืขืืื ื. ืืื ืืึธืื ืืืจ ืฆื ืคืึธืงืืก ืืืืฃ ืืขืจ ืึทื ืืืืืงืืื ื ืคืื ืื ืฉืคึผืื ืืื ืืื ื ืืฉื ืึทืจื ืืืขืื ืืืึทื ืืกืื. ืืืขืจ ืฆืืืืืขื ืืื ืืื, ืืื ืื ืืึธืืึธืจืก, ืื ืืขืืืขืืึธืคึผืขืจืก "ืืืื ืืืื ื" ืืื ืืืืจืืื. ืื ืืืืขืจ ืคึผืจืึธืืืงืฆืืข ืคืื โโืฉืคึผืืืขืจืืึท ืืื ืฉืืขืื ืืืืฃ ืื ืงืึทื ืืืืืขืจ. ืืื ืื ืงืืืึทื ืืืื ืคืื ืคึผืจืึธืืืงืฆืืข ืืืืื ืฆื ืคึผืจืืืืืื ืืืืขืจ ืืืึทื ืงืืืึทืืืืขื.
ืืื ืืขืจ ืืขืืืืงืขืจ ืฆืืื, ืืืขื ืคึผืืืืื ื ืื ืืขืจืข ืืขื ืืฉื ืก ืฉืคึผืืืขืจืืึท, ืืืจ ืืขื ืขื ืงืขืกืืืืขืจ ืืืืืืขื ืืืจื ืืึธืืงืืืฉืึทื ื, ืคึผืืึทื ืขืืืขื, ืืืชืืืช, ืฉืคึผืื ืืึทืงืึทื ืืงืก ืืืึธืก ืื ืืขืจืข ืืขื ืืฉื ืืึธืื ืืขืคึฟืื ืขื. ืึทืืื ืืื ืืืื ืืขืืขื ืึทื ...
... ืขืก ืืื ืฆืืื ืฆื ืฉืึทืคึฟื ืืืื ืืืืืขื ืข ืืืขืืื, ืืืืื ืืื ืืขืจ ืืืจ. ืืืขืืื ืืื ืืื ืืื ืืขืจ ืคืืืขืจ, ืืื ืืขืจ ืืื, ืืื ืืขืจ ืจืื!
ืืื ืืื ืืขืขืืขืก ืืืืืื ืึทื ืืืจื ืฉืจืืืื ืืืื ืืืืืขื ืข ืฉืคึผืื ืืึธืืึธืจ ืืื ืึท ืฉืคึผืื ืืืืฃ ืขืก, ืืืจ ืืืขื ืงืขื ืขื ืฆื ืขืคึฟืขื ืขื ืืืื ืืืืื, ืืืืฉื ืื ืคึฟืขื ืฆืืขืจ ืืื ืคึผืึธืืคึผืข ืืืื ืงืึทืืื ืข, ืืื ืืืขืจื ืึท ืืขืจ ืืงืกืคึผืืจืืึทื ืกื ืืื ืื ืืึทืืจืึทื ืคึผืจืึธืืจืึทืืืกื.
ืืื ืืขื ืึทืจืืืงื ืืื ืืืขื ืคึผืจืืืืจื ืฆื ืืึธืื ืืืจ ืืื ืืื ืกืืึทืจืืขื ืฉืจืืืื ืงืืืื ืฉืคึผืืืขืจืืึท ืืื C / C ++, ืืืึธืก ืืื ืืขืจ ืึทื ืืืืืงืืื ื ืคึผืจืึธืฆืขืก ืืื ืืื ืืื ืืขืคึฟืื ืขื ืฆืืื ืคึฟืึทืจ ืึท ืคืขืจืื ืืื ืึท ืคืึทืจื ืืืขื ืกืืืืืืข. ืขืก ืืื ืกืึทืืืืฉืขืงืืืื ืืื ืืืฉืจืืืื ืืขื ืคึผืจืึธืฆืขืก ืคืื ืึท ืืืื ืึธื ืืืื. ืืึทืืขืจืืึทื ืืืขืื ืืืืืืืกื ืืืงืืื ืืื ืืืื ื, ืืืขืื ืืืื ืคึผืขืจืืขื ืืขื ืืืื ืคืื ืืขืจ ืืืขืื ืืื ืืขื ืืึธืืขื ื. ืืื ืื ืืขืจืข ืืืขืจืืขืจ, "ืื ืึทืืืื ืืกืืจืึทืฆืืข ืืื ื ืืฉื ืคืึทืจืึทื ืืืืึธืจืืืขื ืคึฟืึทืจ ืืืื ืคึผืขืจืืขื ืืขื ืกืืืื!".
ืคืืจ
"ืืืืกื ืึธื ืคืืจ ืืื ืึทืจืืืกืืขืืืึธืจืคื, ืคืืจ ืึธื ืืืืกื ืืื ืืขืคืขืจืืขื." ืงืึธื ืคืืกืืืก
ืืืื ืืขืคื ืืื ืืืื ืืขืื!
ืึทืืื, ืืื ืคืืจ, ืืื ืงืขื ืขื ืืึธืื ืึทื ืึทืืฅ ืคึฟืึทืจ ืืืจ ืกืืึทืจืฅ ืืื ืึท ืืขืคื. ืืื ืฉืจืืึทืื ืึทืจืึธืคึผ ื ืื ืืืืื ืืืื ืืขืืืขื ืืึทืกืงืก ืืึธืจื, ืึธืืขืจ ืืืื ืฆืืขื, ืคึผืจืึธืืจืึทื, ืคึผืืึทื ืคืืึธืืืฉืึทืจืฅ ืืื ืกืึธืืืืข ืคึผืจืึธืืืขืืก, ืึทืจืืึทื ืืขืจืขืื ื ืืึทืืึทืืึทืืืงืึทื ืึธื ืขืก. ืฉืืขื ืืืง ื ืืฆื ืึท ื ืึธืืขืคึผืึทื ืืื ืฉืจืืึทืื ืืืืื ืืื ืึท ืืืืึทืขืจ. ืขืก ืืื ืจืืื, ืืึทืงืืืขื ืืื ืคืึทืจืืึธืืืขื, IMHO.
ืืืื (ืฉืืื ืึธื ืืขืคืืื) ืืขืคื. ืืึธืก ืืื ืืื ืขืก ืงืืงื. ืขืก ืึผืืื ืืืึธืืขืืืง ืืึทืกืงืก, ืืขืืื ืงืขื, ืืจืึทืืืื ืืก, ืืืืึทืืจืึทืื, ืกืึทืืืฉืึทื ื, ืฉืืืึทืจืฅ ืืืงืงืืคึผืื ื, ืงืึธื, ืืื ืึทืืื ืืืืฃ.
ืืื ืืขื ืืื ืข, ืืื ืืขืจืืื ืฆื ืคืึทืจืขื ืืืงื ืืจืื ืคึผืจืึทืืืฉืขืงืก (ืืึธืก ืืื ืืื ืืืื ืคืืจืฉืืื ื ืคืื "ืคืืื ืึทืืืื", ืืืืึทื ืงืืื ืคึผืจืึธืืืงื ืงืขื ืขื ืืืื ืืขืืืขืืึธืคึผืขื ืืขืคืืขืจืขื ืกืึธืฃ).
- ืคึผืจืึธืืขืงื 0: ืืึธืก ืืื ืึทื ืึทืจืืืืขืงื ืืขืืึธ 3 ื ืกืฆืขื ืข ืืขืฉืจืืื ืืื C # ืืื ืื Unity ืฉืคึผืื ืืึธืืึธืจ. ืคึฟืึทืจ macOS ืืื Windows ืคึผืืึทืืคืึธืจืืก.
- ืฉืคึผืื 1: ืงืึทื ืกืึธืื ืฉืคึผืื ืกืืืคึผืืข ืฉืืึทื ื (ืืืงืื ื ืฆื ืึทืืขืืขื ืืื "ืฉืืึทื ื") ืคึฟืึทืจ Windows. ืืขืฉืจืืื ืืื C.
- ืฉืคึผืื 2: ืงืึทื ืกืึธืื ืฉืคึผืื Crazy Tanks (ืืืงืื ื ืฆื ืึทืืขืืขื ืืื "ืืึทื ืงืก"), ืฉืืื ืืขืฉืจืืื ืืื C ++ (ื ืืฆื ืงืืืกื) ืืื ืืืื ืืื ืืขืจ Windows.
ืคึผืจืึธืืขืงื 0 ืึทืจืืืืขืงื ืืขืืึธ
- ืคึผืืึทืืคืึธืจืืข: Windows (Windows 7, 10), Mac OS (OS X El Capitan v. 10.11.6)
- ืฉืคึผืจืึทื: C#
- ืฉืคึผืื ืืึธืืึธืจ:
ืืืืืช - ืื ืกืคึผืืจืึทืฆืืข:
ืืึทืจืจืื ืืื - ืจืืคึผืึทืืึทืืึธืจื:
ืืืืืื
3 ื ืกืฆืขื ืข ืึทืจืืฉืืืขืงื ืืขืืึธ
ืืขืจ ืขืจืฉืืขืจ ืคึผืจืืืขืงื ืืื ืืืคึผืืึทืืขื ืึทื ื ืืฉื ืืื C / C ++, ืึธืืขืจ ืืื C # ื ืืฆื ืื Unity ืฉืคึผืื ืืึธืืึธืจ. ืืขื ืืึธืืึธืจ ืืื ื ืืฉื ืืื ืคืืืขืจื ืืืืฃ ืืึทืื ืืืึทืจื ืืื
ืืขืจ ืฆืื ืืื Unity ืคึฟืึทืจ ืืืจ ืืื ื ืืฉื ืฆื ืึทื ืืืืืงืืขื ืึท ืฉืคึผืื. ืืื ืืขืืืืื ืฆื ืฉืึทืคึฟื ืึท 3 ื ืกืฆืขื ืข ืืื ืึท ืืื ืคืื ืืึทืจืึทืงืืขืจ. ืขืจ, ืึธืืขืจ ืืึทื ืฅ ืื (ืืื ืืึธืืขื ืื ืืืืื ืืื ืืื ืืขืืืขื ืืื ืืืืข ืืื =) ืืื ืฆื ืจืืจื ืืื ืื ืืขืจืึทืงื ืืื ืื ืึทืจืืืก ืืืขืื. ืขืก ืืื ืืืืื ืืืืืืืง ืฆื ืคึฟืึทืจืฉืืืื ืืืึธืก ืืื Unity, ืืืึธืก ืืื ืืขืจ ืึทื ืืืืืงืืื ื ืคึผืจืึธืฆืขืก ืืื ืืื ืคืื ืื ืขืก ื ืขืื ืฆื ืฉืึทืคึฟื ืขืคึผืขืก. ืืึธืก ืืื ืืื ืืขืจ ืึทืจืืืืขืงื ืืขืืึธ ืคึผืจืืืขืงื ืืื ืืขืืืืจื (ืืขืจ ื ืึธืืขื ืืื ืืขืืืขื ืื ืืืขื ืืึทื ืึผืืขื ืคึฟืื ืื ืืืืฉืื). ืคึผืจืึธืืจืึทืืืื ื, ืืึธืืขืืื ื, ืึทื ืึทืืืืฉืึทื, ืืขืงืกืืฉืขืจืื ื ืืขื ืืืขื ืืืจ ืืืกืืึธืืข ืฆืืืื ืืืฉืื ืคืื ืืขืืืขื ืึทืจืืขื.
ืืื ืกืืึทืจืืขื ืืื ืืืืึธืจืืึทื ืืืืืืืก ืืืืฃ ืืึธืืืืืข ืืื ืฆื ืฉืึทืคึฟื 3 ื ืืึธืืขืืก ืืื
ืืึธืืขื ืื ืงืืึทืืืืงืืข, ื ืึธื ืืืื ืืขืืืขืจื, ืึทืืื ืึทื ืื ืึทื ืึทืืืืฉืึทื ืงืืงื ื ืึทืืืจืืขื. ื ืึธื ืึทืืึท ืืขืงืฆืืขืก, ืืืจ ืคืึทืจืฉืืืื ืืืึธืก ืึท ืจืืืืง ืึทืจืืขื ืื ืงืจืืืืืขืจื ืคืื ืึทื ืืืึทืืขื ืคืืืืก ืืึธื, ื ืึธืจ ืฆื ืฉืึทืคึฟื 30 ืกืขืงืื ืืขืก ืคืื ืืืืืขื. ืึธืืขืจ 3 ื ืงืื ืึธ ืืขืฆืืข ืคึฟืึทืจ ืฉืขื! ืืื ืืึทื ืงืืืขื ืืืจ ืึทืจืืืก ืคืื ืื ืงืื ืึธืก ืืื ืืึธืื ืขืคึผืขืก ืืื: โืืึท, ืึท ืืจืขืง ืงืึทืจืืื / ืคึฟืืื! ืืื ืงืขื ืืึธืื ืืขืืื ืืขืกืขืจ ..." ืคืึธืึธืืก!
ืืื ื ืึธื ืืืื ืืึทื ืืืขืื ืคึผืจืึธืืจืึทืืืื ื ืืื ืืขื ืคึผืจืืืขืงื. ืืื ืขืก ืืึธื ืืื ืึทืจืืืกืืขืืืืื, ืืื ืืขืจ ืืื ืืขืจืขืกืึทื ืืกืืขืจ ืืืื ืคึฟืึทืจ ืืืจ ืืขืืืขื ืืขืจ ืืึทืืึทืืึทืืืฉืขืจ. ืืืื ืืืจ ืืืืคื ืื ืกืฆืขื ืข (ืืื ืง ืฆื ืื ืจืืคึผืึทืืึทืืึธืจื ืืื ืื ืคึผืจืืืขืงื ืืึทืฉืจืืึทืืื ื), ืืืจ ืืืขื ืืึทืืขืจืงื ืึทื ืืขืจ ืึทืคึผืึทืจืึทื ืจืึธืืืืืฅ ืึทืจืื ืื ืืืืื ืืึทืจืึทืงืืขืจ ืืื ืึท ืงืืื. ืฆื ืคึผืจืึธืืจืึทื ืึทืืึท ืึท ืึทืคึผืึทืจืึทื ืจืึธืืืืืฉืึทื, ืืื ืืื ืฆื ืขืจืฉืืขืจ ืจืขืืขื ืขื ืื ืงืึธืืึธืจืืึทื ืึทืฅ ืคืื ืื ืฉืืขืืข ืคืื ื ืืืืฃ ืืขื ืงืจืืึทื (2 ื), ืืื ืืขืืึธืื ืืืืฃ ืื ืงืืื (3 ื). ืื ืืึธืื ืข ืืึทื ืืื ืึทื ืืื ืืขืืืกื ืืืืขืืืืืง ืืื ืฉืืืข ืืื ืืขืืืืืกื ืขืก ืืื ืึท ืืื ืืก. ืืืื, ืืืกืืึธืืข, ืืืืึทื ืืื ืฉืืืข ืืื ืคืฉืื ืืึธื ื ืื ืืขืจืงืืขืจื ืฆื ืืืจ ืืื ืื ืืขื ืขื ืืขื ืืืืขืืืืืง ืืื ืืขืืืขื ืื ืืื ืืขืื. ืืืขืจ ืืืขื ืืืจ ืืขื ื ืึทืืกืขืกื ืืื ืืืื ืฆืื, ืืืื, ืืขืืึธืื ืืขืจ ืืืื ืื ื ืืื ืงืืืจื, ืืืืื! ืืื ืืืจ ืึธื ืืืืื ืฆื ืืขื ืงืึธืืคึผืืขืงืก ืืึทืกืงืก ืืื ืึท ืืงืกืืืืื ื ืคึผืึทืกืืจืื ื. ืืื ืืขืืึธืื ืืืจ ืืจืึทืืื: "ื ื, ืืืึธืก ืงืขื ื ืืฉื * ืืืืืืืข * ืืึทืืขืืึทืืืงืขืจ ื ืึธืจืืึทืื ืืึธืื ืืื ืื ืคืึธืจืืืืึทืก ืงืขื ืขื ืืืื ืืื ื?".
ืืขืืฉืื ืคืื ืคืึธืจืืืืึทืก ืคึฟืึทืจ ืงืึทืืงืืึทืืืืืื ื ืื ืงืึธืืึธืจืืึทื ืึทืฅ ืคืื ืึท ืคืื ื ืืืืฃ ืึท ืงืจืืึทื ืืื ืืืืฃ ืึท ืงืืื (ืคืื ืืืื ืืขืคื)
ืฉืคึผืื 1
- ืคึผืืึทืืคืึธืจืืข: Windows (ืืขืกืืขื ืืืืฃ Windows 7, 10)
- ืฉืคึผืจืึทื: ืืื ืืืื ืขืก ืืื ืืขืืืขื ืืขืฉืจืืื ืืื ืจืืื ืกื
- ืฉืคึผืื ืืึธืืึธืจ: Windows ืงืึทื ืกืึธืื
- ืื ืกืคึผืืจืึทืฆืืข:
javidx9 - ืจืืคึผืึทืืึทืืึธืจื:
ืืืืืื
ืคึผืฉืื ืฉืืึทื ื ืฉืคึผืื
ืื 3 ื ืกืฆืขื ืข ืืื ื ืืฉื ืึท ืฉืคึผืื. ืืื ืืขืจืฆื, ืืึธืืขืืื ื ืืื ืึทื ืึทืืืืืื ื 3 ื ืึทืืืืฉืขืงืฅ (ืกืคึผืขืฆืืขื ืืืชืืืช) ืืื ืืึทื ื ืืื ืฉืืืขืจ. ื ืึธื ืคึผืืืืื ื ืืื Unity, ืืื ืืืื ืืขืืขื ืึทื ืืื ืืืื ืคืึธืจืืขืฆื, ืึธืืขืจ ืืึทื ืฅ ืึธื ืืืืื, ืคืื ืื ืืึทืกืืงืก. ืขืคึผืขืก ืคึผืฉืื ืืื ืฉื ืขื, ืึธืืขืจ ืืื ืืขืจ ืืขืืืืงืขืจ ืฆืืื ืืืืืืืข, ืฆื ืคึฟืึทืจืฉืืืื ืื ืกืืจืืงืืืจ ืคืื ืฉืคึผืืืขืจืืึท.
ืืื ืืืึธืก ืืึธืื ืืืจ ืคึผืฉืื ืืื ืฉื ืขื? ืึทื ืก ืจืขืื, ืงืึทื ืกืึธืื ืืื 2 ื. ืืขืจ ืืขื ืื, ืืคืืื ืื ืงืึทื ืกืึธืื ืืื ืกืืืืึธืืก. ืืื ืืึธื ืืืืืขืจ ืึธื ืืขืืืืื ืืืื ืืื ืกืคึผืืจืึทืฆืืข ืืืืฃ ืืขืจ ืืื ืืขืจื ืขืฅ (ืืื ืึทืืืขืืืื, ืืื ืืึทืืจืึทืืื ืื ืืื ืืขืจื ืขื ืคึฟืึทืจ ืื ืืขืจืกื ืจืขืืืึธืืืืืึธื ืึทืจื ืืื ืืขืคืขืจืืขื ืืขืจืคืื ืืื ื ืคืื ืื XNUMX ืืึธืจืืื ืืขืจื). ืืื ืืึทื ืึทืจืืืฃ ืึท ืืืืืขื ืคืื ืืืื ืคึผืจืึธืืจืึทืืืกื ืืืึธืก ืืขืืืื ืงืึทื ืกืึธืื ืืขืืจืืก. ืืื ืืื ืื ืืขืฉืืึทืื ืคืื ืืืื ืฉืคึผืื, ืขืจ ืืึทืฉืืึธืกื ืฆื ืฉื ืืึทืื ืึทืจืึธืคึผ ืื "ืฉืืึทื ื". ืคึฟืื ืื ืืืืืขื, ืืื ืืขืืขืจื ื ืืืขืื ืฆืืืื ืคืื ืืึทืืขื ืืึทื ืืื ืื - ืื ืฉืคึผืื ืฉืืืืฃ (ืืื ืืจืื ืืงืขืจืืืง ืคืึทื ืืงืฉืึทื ื / ืคึผืึทืจืฅ) ืืื ืจืขืืืืืึทื ืฆื ืื ืืึทืคืขืจ.
ืื ืฉืคึผืื ืฉืืืืฃ ืงืขื ืงืืงื ืขืคึผืขืก ืืื ืืึธืก:
int main()
{
Setup();
// a game loop
while (!quit)
{
Input();
Logic();
Draw();
Sleep(gameSpeed); // game timing
}
return 0;
}
ืืขืจ ืงืึธื ืืื ืื ืืื ืฆืข ืืืืคึผื () ืคึฟืื ืงืฆืืข ืืื ืึทืืึธื. ืืื ืื ืฉืคึผืื ืฆืืงื ืกืืึทืจืฅ ื ืึธื ืื ืงืึธืจืึทืกืคึผืึทื ืืื ื ืืึทืืขืจืงืื ื. ืขืก ืืขื ืขื ืืจืื ืืงืขืจืืืง ืคืึทื ืืงืฉืึทื ื ืืื ืื ืฉืืืืฃ: ืึทืจืืึทื ืฉืจืืึทื (), ืืึธืืืง (), ืฆืืขื (). ืขืจืฉืืขืจ, ืึทืจืืึทื ืฉืจืืึทื ืืึทืื ืึทืจืืึทื ืฉืจืืึทื (ืืขืจ ืืืืคึผื ืงืึธื ืืจืึธื ืคืื ืงืืกืืจืึธืืงืก), ืืขืืึธืื ืคึผืจืึทืกืขืกืื ื ืื ืืจืืื ืืึทืื ืืึธืืืง, ืืขืืึธืื ืืืืึทืื ืืืง ืืืืฃ ืืขื ืขืงืจืึทื - ืฆืืขื. ืืื ืึทืืื ืืขืืขืจ ืจืึทื. ืึทื ืึทืืืืฉืึทื ืืื ืืืฉืืคื ืืื ืืขื ืืืขื. ืขืก ืืื ืืื ืงืึทืจืืึธืึธื ืก. ืืืืฉืึทืืืึทืื ืคึผืจืึทืกืขืกืื ื ืื ืึทืจืืึทื ืฉืจืืึทื ืืึทืื ื ืขืื ืื ืืขืจืกื ืฆืืื ืืื, ืืื ืืืืึทื ืืื ืืื ืืืืกื, ืืืืขืจืืึทื ื ืื ืจืึทื ืงืืจืก ืคืื ืื ืฉืคึผืื. ืึธืืขืจ ืืึธ ืื ืืึธืืืง () ืคึฟืื ืงืฆืืข ืืื ืืืืขืจ ืฉื ืขื. ืืขืจืืืขืจ, ืื ืจืึทื ืงืืจืก ืืืื ืืืื ืงืึทื ืืจืึธืืื ืืืจื ืื ืกืืืคึผ () ืคืื ืงืฆืืข ืืื ืื ืฉืคึผืื ืกืคึผืื ืคึผืึทืจืึทืืขืืขืจ, ืืืึธืก ืืืืขืจืืึทื ื ืืขื ืงืืจืก.
ืฉืคึผืื ืฆืืงื. ืฉืืึทื ื ืคึผืจืึธืืจืึทืืืื ื ืืื ื ืึธืืขืคึผืึทื
ืืืื ืืืจ ืึทื ืืืืืงืืขื ืึท ืกืืืืึธืืืฉ ืงืึทื ืกืึธืื ืฉืคึผืื, ืืืืึทืื ืืืง ืืึทืื ืืืืฃ ืืขื ืขืงืจืึทื ืืื ืื ืืขืืืืื ืืืขื ืืืึทื ืจืขืืืืืึทื 'ืงืึธืื' ืืืขื ื ืืฉื ืึทืจืืขืื - ืืึธืก ืืื ืืืืขืจ ืคึผืึทืืขืืขื. ืืขืจืืืขืจ, ืืขืจ ืจืขืืืืืึทื ืืืื ืืืื ืืขืคืืจื ืืืืก ืืื ืื ืคืึทืจืฉืืขืื ืืึทืคืขืจ. ืึทืืื ืคืื ืคืึทืกืืขืจ ืืื ืื ืฉืคึผืื ืืืขื ืึทืจืืขืื ืึธื ืืืืืฉืื. ืฆื ืืืื ืขืจืืขื, ืืื ืืึธื ื ืื ืืึทื ืฅ ืคึฟืึทืจืฉืืืื ืืืึธืก ืึท ืคืึทืจืฉืืขืื ืืึทืคืขืจ ืืื ืืื ืืื ืขืก ืึทืจืืขื. ืืืขืจ ืืื ืืืขื ืื ืืขืื ื ืงืืื ืืืืฉืคืื, ืืื ืืคืฉืจ ืงืขื ืืืื ืขืจ ืืื ืื ืงืืืขื ืืืจื ืืืืคืงืืขืจื ืื ืืฆื.
ืืึทืงืืืขื ืื ืคืึทืจืฉืืขืื ืืึทืคืขืจ (ืืืื ืืื ืงืขื ืืึธืื ืึทืืื):
// 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 ืืฉืืืข ืืึทื ืงืก
- ืคึผืืึทืืคืึธืจืืข: Windows (ืืขืกืืขื ืืืืฃ Windows 7, 10)
- ืฉืคึผืจืึทื: C ++
- ืฉืคึผืื ืืึธืืึธืจ: Windows ืงืึทื ืกืึธืื
- ืื ืกืคึผืืจืึทืฆืืข: ืื ืืื
ืึธื ืืืื C ++ ืืืจื ืฉืคึผืื ืคึผืจืึธืืจืึทืืืื ื - ืจืืคึผืึทืืึทืืึธืจื:
ืืืืืื
ืฉืคึผืื ืืฉืืืข ืืึทื ืงืก
ืคึผืจืื ืืื ื ืืืชืืืช ืฆื ืื ืงืึทื ืกืึธืื ืืื ืืืกืืึธืืข ืื ืกืืืคึผืืึทืกื ืืึทื ืืืจ ืงืขื ืขื ืืืขื ืื ืืื ืึท ืฉืคึผืื. ืืืขืจ ืืื ืืืืืืืื ืืื ืืืื ืฆืจื: ืื ืืืจืืงืืขืจ ืืืื ืื ืืขืจืข ืืืืืงืืืื ืืื ืืจืืืืก (ืื ืืืื ืืื ืืจืขืกืขืจ ืืื ืื ืืจืืื). ืืืื, ืึทืืฅ ืืืขื ืงืืงื ืืืกืคึผืจืึทืคึผืึธืจืฉืึทื ืื, ืืื ืืึธืืืื ื ืึทืจืึธืคึผ ืึธืืขืจ ืึทืจืืืฃ ืืืขื ืืืกืงืืืขื ืคืื ืคืึทืกืืขืจ ืืื ืืึธืืืื ื ืืื ืงืก ืึธืืขืจ ืจืขืื. ืื ืืืืจืงืื ื ืืื ืืืืขืจ ืืืืขืจืงื ืืื "ืฉืืึทื ื" (ืฉืคึผืื 1). "ืืึทื ืืงืก" (ืฉืคึผืื 2) ืืึธื ื ืื ืืึธืื ืึทืืึท ืึท ืฉืืขืจืื ื, ืืืืึทื ืืขืจ ืจืขืืืืืึทื ืืื ืึธืจืืึทื ืืืืจื ืืืจื ืืขืืขื ืื ืคืึทืจืฉืืขืื ืืืืืฆืขืื ืืื ืคืึทืจืฉืืืขื ืข ืคืืจืื. ืืืจ ืงืขื ืืึธืื ืืื ืืขืฉืจืืื ืึท ืจืขื ืืขืจืขืจ. ืืืช, ืืึธืก ืืื ืฉืืื ืึท ืืืกื ืืขืจ ืงืึธืืคึผืืืฆืืจื, ืืึธืืฉ ืคืื ืืขืจ ืืฉืืงืึทืืืข.
ืคึฟืึทืจ ืืขื ืฉืคึผืื, ืขืก ืืืขื ืืืื ืืขื ืื ืฆื ืืึทืฉืจืืึทืื ืืืื ืกืืกืืขื ืคึฟืึทืจ ืืืืึทืื ืืืง ืืืืืฆืขืื ืืืืฃ ืืขื ืขืงืจืึทื. ืืื ืืจืึทืืื ืืึธืก ืืื ืืขืจ ืืืืคึผื ืืืื ืคืื ืื ืฉืคึผืื. ืืื ืึทืืฅ ืึทื ืืขืจืฉ ืืืจ ืงืขื ืขื ืงืืืขื ืึทืจืืืฃ ืืื ืืื.
ืึทืืื, ืืืึธืก ืืืจ ืืขื ืืืืฃ ืืขื ืขืงืจืึทื ืืื ื ืึธืจ ืึท ืืึทื ื ืคืื ืืึธืืืื ื ืืื ื ืจืขืงืืึทื ืืืึทืื.
ืืจืึธืืขืง ืฉืืขืื
ืืขืืขืจ ืืจืึธืืขืง ืืื ืจืขืคึผืจืืืขื ืืื ืืืจื ืึท ืืึทืืจืืฅ ืึธื ืืขืคืืื ืืื ื ืืืขืจื. ืืืจื ืืขื ืืืขื, ืืื ืงืขื ืขื ืืืืืคึผืื ืงื ืืืื ืืฉืืงืึทืืืข ื ืืึทื ืก - ืึทืืข ืื ืืึทืืจืืฅ ืืื ืื ืฉืคึผืื ืืขื ืขื ืคึผืจืึธืืืจืึทืื ืืื ืึท ืืืื-ืืืืขื ืฉืึทื ืึทื ืืขื ืืข. ื ืืฉื ืฆืืืื-ืืืืขื ืฉืึทื ืึทื, ืึธืืขืจ ืืืื-ืืืืขื ืฉืึทื ืึทื! ืืืื-ืืืืขื ืฉืึทื ืึทื ืขืจืืื ืืขื ืขื ืคืื ืืจืื ืืขืจ ืืื ืคืึทืกืืขืจ ืฆื ืึทืจืืขืื ืืื.
ื ืืืืฉืคึผืื ืคืื ืึท ืฉืคึผืื ืืึทื ืง ืืึทืืจืืฅ
ืจืขืคึผืจืืืขื ืืื ื ืื ืืึทืืจืืฅ ืคืื ืึท ืฉืคึผืื ืืึทื ืง ืืื ืึท ืืืื-ืืืืขื ืฉืึทื ืึทื ืืขื ืืข
ื ืืขืจ ืืืึทืกืืจืึทืืืื ืืืึทืฉืคึผืื ืคืื ืึท ืืึทืืจืืฅ ืคืึทืจืืจืขืืื ื ืืืจื ืึท ืืืื-ืืืืขื ืฉืึทื ืึทื ืืขื ืืข
ืืืขืจ ืฆืืืจืื ืฆื ืื ืขืืขืืขื ืื ืคืื ืื ืืขื ืืข ืึทืงืขืจื ืืื ืึท ืืึธืคึผื ืฉืืืืฃ, ืืื ืืืื ืขืก ืืื ื ืืฉื ืึท ืืืื-ืืืืขื ืฉืึทื ืึทื, ืึธืืขืจ ืึท ืฆืืืื-ืืืืขื ืฉืึทื ืึทื ืืขื ืืข. ืืึธืก ืืื ืืขืืื ืืืืึทื ืืืจ ืืขื ืขื ื ืึธื ืืจืืขืื ืืื ืืึทืืจืืฅ.
ืืืจืืคืึธืจ ืึท ืืืื-ืืืืขื ืฉืึทื ืึทื ืืขื ืืข ืืื ืึท ืืึธืคึผื ืฉืืืืฃ. ื ืืื ืื ืจืืืขืจื ืฉืืึทื, X ืืื ืื ืืืึทื ืฉืืึทื
ืืืืข ืืึธื ืึทื ืึทื ืฉืืึธื ืคืื ืื ืืขืืืืื ืืืขื ืืึทืืจืืฅ ืืืขื ืืืคืืขืจืก i, j, ืืื ื ืืฆื ืื ืืืขื ืืืคืืขืจืก x ืืื ื. ืึทืืื, ืืึทืื ืืื ืืืจ, ืืื ืืขืจ ืืขืคึฟืขืื ืคึฟืึทืจื ืืืื ืืื ืงืืึธืจืขืจ ืคึฟืึทืจื ืืื. ืืื ืืขืจืฆื, ืึทืืึท ืึท ื ืึธืืืืืฉืึทื ืืืื ืขืก ืืขืืืขื ืฆื ืงืึทื ืืืื ืืึทื ืืื ืคึผืจืืืขืงื ืื ืืึทืืจืืฅ ืืขื ืืฆื ืืืืฃ ืื ืงืึธืืึธืจืืึทื ืึทื ืึทืงืกืขืก ืคืื ืึท ืฆืืืื-ืืืืขื ืฉืึทื ืึทื ืืืื.
ืืืฆื ืืืขืื ืืืืืฆืขืื, ืงืึธืืืจ ืืื ืึทืจืืืกืืืืึทืื. ืื StretchDIBits ืคึฟืื ืงืฆืืข (ืืขืืขืจ: windows.h; ืืืืืืึธืืขืง: gdi32.lib) ืืื ืืขื ืืฆื ืคึฟืึทืจ ืจืขืืืืืึทื. ืฆืืืืฉื ืื ืืขืจืข ืืืื, ืื ืคืืืืขื ืืข ืืื ืืืจืืืขืืื ืืขื ืฆื ืืขื ืคึฟืื ืงืฆืืข: ืื ืืืื ืืืืฃ ืืืึธืก ืื ืืืื ืืื ืืขืืืืื (ืืื ืืืื ืคืึทื, ืืึธืก ืืื ืื Windows ืงืึทื ืกืึธืื), ืื ืงืึธืืึธืจืืึทื ืึทืฅ ืคืื ืื ืึธื ืืืื ืคืื ืืืืึทืื ืืืง ืื ืืืื, ืื ืืจืืื / ืืืื ืืื ืื ืืืื. ืืื ืืื ืื ืคืึธืจืขื ืคืื ืึท ืืืืืึทืคึผ (ืืืืืึทืคึผ), ืจืขืคึผืจืืืขื ืืื ืืืจื ืึท ืืขื ืืข ืคืื โโืืืืขืก. ืืืืืึทืคึผ ืืื ืึท ืืขื ืืข ืคืื โโืืืืขืก!
ืื 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 () ืคึฟืื ืงืฆืืข. ืึทื ืืื, ืื ืคืืจืืื ืื ื ืืืขืจ ืคืื ืืืืขืก ืืื ืจืขืืขืจืืืืจื ืฆื ืงืจืึธื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืึทืืข ืืืืืฆืขืื, ืืืึธืก ืืืขื ืืืื ืืขืืืืื ืืืืฃ ืืขื ืขืงืจืึทื.
ืฉืึทืคึฟื ืึท m_p_bitmapMemory ืืืืืึทืคึผ:
// create bitmap
int bitmapMemorySize = (PMATRIX_WIDTH * PMATRIX_HEIGHT) * BYTES_PER_PIXEL;
void* m_p_bitmapMemory = VirtualAlloc(0, bitmapMemorySize, MEM_COMMIT, PAGE_READWRITE);
ืืขืขืจืขื ืืขืจืขืื, ืึท ืืืืืึทืคึผ ืืืฉืืืื ืคืื ืึท ืกืืื ืคืื ืืืืืฆืขืื. ืืขืืขืจ ืคืืจ ืืืืขืก ืืื ืื ืืขื ืืข ืืื ืึท RGB ืคึผืืงืกืขื. ืืืื ืืืื ืคึผืขืจ ืจืืื ืืืขืจื, ืืืื ืืืื ืคึผืขืจ ืืจืื ืืืขืจื (ื), ืืื ืืืื ืืืื ืคึผืขืจ ืืืื ืงืึธืืืจ (ื). ืคึผืืืก, ืขืก ืืื ืืืื ืืืื ืคึผืขืจ ืื ืืขื ื. ืื ืืจืื ืคืืจืื - ืจืืื / ืืจืื / ืืืื (ืจืื) - ืืขื ืขื ืืขืืืฉื ืืื ืืขืืขืจ ืื ืืขืจืข ืืื ืคืึทืจืฉืืืขื ืข ืคึผืจืึทืคึผืึธืจืฉืึทื ื - ืืื ืื ืจืืืึทืืืื ื ืคึผืืงืกืขื ืงืึธืืืจ ืืื ืืืงืืืขื.
ืืืฆื, ืืืืืขืจ, ืืขืืขืจ ืืจืึธืืขืง, ืึธืืขืจ ืฉืคึผืื ืืืืคืขืฅ, ืืื ืจืขืคึผืจืืืขื ืืื ืืืจื ืึท ื ืืืขืจ ืืึทืืจืืฅ. ืึทืืข ืคืื โโืื ืฉืคึผืื ืึทืืืืฉืขืงืฅ ืืขื ืขื ืืขืฉืืขืื ืืื ืึท ืืึทืืืื ื. ืืื ืืขืืึธืื ืืื ืืขื ืขื ืืขืฉืืขืื ืืืืฃ ืื ืคึผืืืืื ื ืคืขืื, ืคืึธืจืืื ื ืืืื ืืจืืืก ื ืืืขืจืืงืึทื ืืึทืืจืืฅ. ืืื ืืึทืคึผื ืืขืืขืจ ื ืืืขืจ ืืื ืื ืืึทืืจืืฅ ืฆื ืึท ืกืคึผืขืฆืืคืืฉ ืงืึธืืืจ. ืืืฉื, ืื ื ืืืขืจ 8 ืืื ืืืื, ืื ื ืืืขืจ 9 ืืื ืืขื, ืื ื ืืืขืจ 10 ืืื ืืื ืงื ืืจืื, ืืื ืึทืืื ืืืืฃ. ืืืื, ืืืจ ืงืขื ืขื ืืึธืื ืึทื ืืืจ ืืึธืื ืึท ืืึทืืจืืฅ ืคืื ืื ืคึผืืืืื ื ืคืขืื, ืืื ืืขืืขืจ ื ืืืขืจ ืืื ืึท ืืื ืคืื ืงืึธืืืจื.
ืึทืืื, ืืืจ ืืึธืื ืึท ื ืืืขืจืืงืึทื ืืึทืืจืืฅ ืคืื ืื ืืื ืฆืข ืคึผืืืืื ื ืคืขืื ืืืืฃ ืื ืืืื ืืึทื ื ืืื ืึท ืืืืืึทืคึผ ืคึฟืึทืจ ืืืืึทืื ืืืง ืื ืืืื ืืืืฃ ืื ืื ืืขืจืข. ืืื ืืืฆื, ืื ืืืืืึทืคึผ ืืื "ืืืืืืง" - ืขืก ืืื ื ืืฉื ื ืึธื ืืึธืื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืื ืืืืืฆืขืื ืคืื ืื ืืขืืขืื ืงืึธืืืจ. ืืขื ืืืื ืึทื ืื ืืขืฆืืข ืฉืจืื ืืืขื ืืืื ืคืืืื ื ืื ืืืืืึทืคึผ ืืื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืืขืืขืจ ืคึผืืงืกืขื ืืืืืจื ืืืืฃ ืื ื ืืืขืจืืงืึทื ืืึทืืจืืฅ ืคืื ืื ืคึผืืืืื ื ืคืขืื. ื ืืืืืกืืจืึทืืืื ืืืึทืฉืคึผืื ืคืื ืึทืืึท ืึท ืืจืึทื ืกืคืึธืจืืึทืฆืืข ืืื ืืื ืื ืืืื ืืื ืื.
ืึท ืืืืฉืคึผืื ืคืื ืคืืืื ื ืึท ืืืืืึทืคึผ (ืคึผืืงืกืขื ืืึทืืจืืฅ) ืืื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืืืจื ืืืืฃ ืื ื ืืืขืจืืงืึทื ืืึทืืจืืฅ (ืืืืืืึทื ืืึทืืจืืฅ) ืคืื ืื ืคึผืืืืื ื ืคืขืื (ืงืึธืืืจ ืื ืืืกืขืก ืืึธื ื ืื ืืืืึทืื ืื ืื ืืืกืื ืืื ืื ืฉืคึผืื)
ืืื ืืืขื ืืืื ืคืึธืจืฉืืขืื ืึท ืฉืืืง ืคืื ืคืึทืงืืืฉ ืงืึธื ืคืื ืื ืฉืคึผืื. ืื ืืืขืจืืึทืืึทื ืงืึธืืึธืจืื ืืขืงืก ืืื ืืขืืขืจ ืืืขืจืึทืืืึธื ืคืื ืื ืฉืืืืฃ ืืื ืึทืกืืื ื ืึท ืืืขืจื (ืงืึธืืืจ ืืื ืืขืงืก) ืคืื ืื ื ืืืขืจืืงืึทื ืืึทืืจืืฅ ืคืื ืื ืคึผืืืืื ื ืคืขืื (ืืึทืื ืืืืืืึทื ืืึทืืจืืฅ). ืืขืจื ืึธื ืื ืงืึธืืืจ ืืื ืืื ืืขืฉืจืืื ืฆื ืื ืงืึธืืืจ ืืืึทืืขืืืืืง ืืืืืจื ืืืืฃ ืื ืืื ืืขืงืก. ืืขืจืฆื, ืื ืจืืืึทืืืื ื ืงืึธืืืจ ืืื ืฆืขืืืืื ืืื ืื ืคืึทืจืืขืืืขื ืืฉ ืคืื ืจืืื, ืืจืื ืืื ืืืื (RGB). ืืื ืฆืืืึทืืขื ืืื ืื ืื ืืขื ื (ืคึผืืงืกืขืืคึผืึทืืื ื), ืื ืืื ืคึฟืึธืจืืึทืฆืืข ืืื ืืขืฉืจืืื ืฆื ืื ืคึผืืงืกืขื ืืืืขืจ ืืื ืืืืขืจ ืืืืืขืจ, ืคืึธืจืืื ื ืึท ืงืึธืืืจ ืืืื ืืื ืื ืืืืืึทืคึผ.
ืืขืจ ืงืึธื ื ืืฆื ืคึผืืื ืืขืจื ืืื ืืืืืืืื ืึทืคึผืขืจืืืฉืึทื ื, ืืืึธืก ืงืขื ืขื ืืืื ืฉืืืขืจ ืฆื ืคึฟืึทืจืฉืืืื. ืึทืืื ืืื ืจืขืงืึธืืขื ืืืจื ืืืจ ืฆื ืืืืขื ืขื ืกืขืคึผืขืจืึทืืื ืขืจืืขืฅ ืืื ืึทืืึท ืกืืจืึทืงืืฉืขืจื ืึทืจืืขื.
ืคืืืื ื ืึท ืืืืืึทืคึผ ืืื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืืืจื ืืืืฃ ืื ื ืืืขืจืืงืึทื ืืึทืืจืืฅ ืคืื ืื ืคึผืืืืื ื ืคืขืื:
// 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 () ืคึฟืื ืงืฆืืข. ื ืึธื ืจืขืืืฉืืกืืขืจืื ื ืงืืกืืจืึธืืงืก ืืื ืื ืื ืคึผืื () ืคึฟืื ืงืฆืืข ืืื ืืืืขืจ ืกืึทืืกืึทืงืืืึทื ื ืคึผืจืึทืกืขืกืื ื ืืื ืื ืืึธืืืง () ืคึฟืื ืงืฆืืข, ืึท ื ืืึทืข ืืืื (ืจืึทื) ืืื ืืขืฉืืคื. ืืืช, ืฉืคึผืื ืึทืืืืฉืขืงืฅ ืงืขื ืฉืืื ืืึธืื ืึท ืึทื ืืขืจืฉ ืฉืืขืืข ืืืืฃ ืื ืคึผืืืืื ื ืคืขืื ืืื, ืึทืงืึธืจืืื ืืื, ืืขื ืขื ืฆืืขื ืืื ืึท ืึทื ืืขืจืฉ ืึธืจื. ืืึธืก ืืื ืืื ืึทื ืึทืืืืฉืึทื (ืืึทืืืขืืื ื) ืืึทืคึผืึทื ื.
ืืื ืืขืึธืจืืข (ืืืื ืืืจ ืืึธื ื ืืฉื ืคืืจืืขืกื ืขืคึผืขืก), ืคึฟืึทืจืฉืืืื ืื ืฉืคึผืื ืฉืืืืฃ ืคืื ืืขืจ ืขืจืฉืืขืจ ืฉืคึผืื ("ืฉืืึทื ื") ืืื ืื ืกืืกืืขื ืคึฟืึทืจ ืืืืึทื ืืืืืฆืขืื ืืืืฃ ืื ืคืึทืจืฉืืขืื ืคืื ืื ืจืืข ืฉืคึผืื ("ืืึทื ืืงืก") ืืื ืึทืืข ืืืจ ืืึทืจืคึฟื ืฆื ืฉืจืืึทืื ืงืืื ืคืื ืืืื 2 ื ืฉืคึผืืืขืจืืึท ืคึฟืึทืจ Windows. ืกืึธืื ืืืขืกืก! ๐ ืื ืจืขืฉื ืคืื ืื ืืืืื ืืขื ืขื ื ืึธืจ ืึท ืคืื ืคืื ืคืึทื ืืึทืืืข.
ืคืื ืงืืจืก, ืื ืฉืคึผืื "ืืึทื ืืงืก" ืืื ืืืืืื ื ืคืื ืืขืจ ืงืึธืืคึผืืืฆืืจื ืืื ืื "ืฉืืึทื ื". ืืื ืฉืืื ืืขืืืืื ื ืื C ++ ืฉืคึผืจืึทื, ืืึธืก ืืื, ืืื ืืืกืงืจืืืื ืคืึทืจืฉืืืขื ืข ืฉืคึผืื ืึทืืืืฉืขืงืฅ ืืื ืงืืืกื. ืืื ืืืฉืืคื ืืืื ืืืืืขื ืข ืืึทืืืื ื - ืืืจ ืงืขื ืขื ืืขื ืื ืงืึธื ืืื ืืขืืขืจื / Box.h. ืืืจื ืืขื ืืืขื, ืื ืืึทืืืื ื ืจืืึฟ ืืกืชึผืื ืืื ืึท ืืึผืจืื ืจืื ืขื. ืืขืืืืื ื ืคึผืืื ืืขืจื. ืืขืืจืืขื ืืื ืืึผืจืื. ืืื ืืื ืืึธืื, ืึทื ืืึธืก ืืื ืืึธื ืืืจ ืึท ืกื ืืขืืึธืืคื. ืึธื ืืืื C ++ ืืืจื ืฉืคึผืื ืคึผืจืึธืืจืึทืืืื ื. ืืึธืก ืืื ืึท ืืจืืืก ืึธื ืืืื ืคึฟืึทืจ ืืืืื ืขืจื ืืื C ++. ืขืก ืืื ืงืืืื, ืืฉืืงืึทืืืข ืืื ืืขืืื ื ืึธืจืืึทื ืืืืจื.
ืขืก ืืึธื ืืขืืืืขืจื ืืืขืื ืืขืงืก ืืืฉืื ืฆื ืึทื ืืืืืงืืขื ืืขื ืฉืคึผืื. ืืื ืืขืฉืจืืื ืืขืจ ืืืืคึผื ืืขืฉืึทืก ืืึธื ืืฉ ืืื ืกื ืึทืงืก ืืื ืึทืจืืขื. ืขืจ ืืื ืืขืืขืกื ืืื ืืขืจ ืืคืืก ืงืื, ืืขืฉืืืคื ืืื ืขืกื ืืื ืืขืฉืจืืื ืงืืื. ืึธืืขืจ ืืื ืฉืืื ืคึฟืึทืจ ืืืืึธื. ืึทืืื ืืื ืืึทื ืึทืืึท "ืงืื ืืืืืืช". ืืื ืฉืืขื ืืืง, ืืื ืึทืงืืืืืื ืืขืืืืื ื ืึท ืืขืคื, ืืื ืึทืืข ืื ืงืึทื ืกืขืคึผืืฉืืึทื ืืืื ืืขื ืขื ืืขืืืืจื ืืื ืขืก.
ืืื ืื ืกืืฃ ืคืื ืื ืคึผืจืึทืงืืืฉ ืืืื, ืืื ืืืขื ืฆืืขื ืึท ืืืกื ืกืงืึทื ื ืคืื ืืืื ืืขืคื. ืฆื ืืืืึทืื ืืืึธืก ืคึผืื ืงื ืืื ืืื ืืขืืืขื ืฉืจืืืื ืึทืจืึธืคึผ, ืฆืืืืขื ืื ื, ืงืึทืื ืืื ื, ืืืืืื ืื ื ...
ืืึทื ืง ืืืื ืคึผืืึทื. ืืื ืื ืืขืคึฟืื ืืฆืืข ืคืื โโืืื ืคืืืข ืืืืืฆืขืื ืืขืืขืจ ืืึทื ืง ืืึธื ืคืึทืจื ืขืืขื ืืืืฃ ืืขื ืขืงืจืึทื
ืงืึทืืงืืืึทืืืึธื ืคืื ืื ืึทืืืขืจืืืึทื ืืื ืคืึธืจืืืืึทืก ืคึฟืึทืจ ืจืึธืืืืืฉืึทื ืคืื ืืขื ืืึทื ืง ืึทืจืื ืืืื ืึทืงืก
ืืืึทืืจืึทืืข ืคืื โโืืืื ืืึทืืืื ื (ืืขืจ ืืื ืื ืืึผืจืื ืจืื ืขื, ืจืืึฟ ืืกืชึผืื). ืื ืืึทืืืื ื ืืื ืืืฉืืคื ืืื ืึท ืืื ืืงื ืจืฉืืื
ืืื ืืึธืก ืืขื ืขื ืืืืืกื ืคืจืืืื ืฆื ืฉืจืืืฃ ืงืื ืกืืืขื ืกืืืื ืืื ืื ืฉืคึผืื
ืืขืึธืจืืข
"ืืคืืื ืึท ื ืกืืขื ืคืื ืึท ืืืืื ื ืืืื ืืืืื ืืื ืืขืจ ืขืจืฉืืขืจ ืฉืจืื" (ืืืจืืื ืืื ืขืืืฉ ืืืื)
ืืืืืจ ืืื ืืจืืืขืจืืืื ืคืื ืคืืจ ืฆื ืืขืืจืืข! ืืื ืืึธื ืืืจ ืืขืคึฟืื ืขื ืฆืืื ืคึฟืึทืจ ืืืื ืคืขืจืื?
- ืืึทืฉืืืืขื ืืืึธืก ืืืจ ืืึทืงืข ืืืืื (ืืืื, ืืึธืก ืืื ืื ืืขืจืกื ืฉืืืขืจ).
- ืฉืืขืื ืคึผืจืืืึธืจืึทืืื.
- ืงืจืื ืึทืืข "ืืืขืจืืง" ืฆืืืื ืืขืืขืจืข ืคึผืจืืืึธืจืึทืืื.
- ืืึทื ืฆื ืืืื ืืึธืืื ืืขืืขืจ ืืึธื.
- ืฆื ื ืื ืืขืจืืืึทืจืื ืึทื ืขืก ืืืขื ืืืื ืฆืืืื ืึธืืขืจ ืืจืืึท ืฉืขื ืคืื ืคืจืื ืฆืืื ืคึฟืึทืจ ืึท ืคืขืจืื.
ืืืืฃ ืื ืืืื ืืึทื ื, ืืืจ ืืึทืจืคึฟื ืฆื ืืึทืฉืืืกื ืืืึธืก ืืืจ ืืืืื ืืื ืคึผืจืืืึธืจืึทืืืื. ืืืืฃ ืื ืื ืืขืจืข ืืึทื ื, ืขืก ืืื ืืขืืืขื ืฆื ืคืึทืจืืึธืื ืขืืืขืืข ืงืึทืกืขืก / ืคึผืจืึทืืืฉืขืงืก ืืื ืืืืืืข ืคืื โโืื ืคึผืจืืืึธืจืึทืืื. ืืื ืื ืืขืจืข ืืืขืจืืขืจ, ืืืจ ืืืขื ืืึธืื ืฆื ืงืจืื ืึทืืฅ "ืืืขืจืืง". ืืื ืืึธื ืขืจืืขืฅ ืืขืืขืจื, ืึทื ืืื ืืขืื ืืึธื ืืืื ืืึทืงืกืืืื ืืจืื ืืืืคึผื ืึทืงืืืืืืืขืื. ืืขืืึธืื ืืืจ ืืืขื ืงืขื ืขื ืฆื ืืึทื ืืืขื ืืื ืืื ืืื ืืขืจ ืืขืกืืขืจ ืืขืืืขื ืืืขื. ืืื ื ืึธื ืคึผืจืึทืืืฉืขืงืก / ืืื ืกืืจืืงืฆืืขืก ืืืขื ืึธื ืืืืื ืฆื ืึธืืืขืจืืึธืึทื ืงืึธืจื ื. ืืืขืจ ืืึธืก ืืื ืึทืืข, ืืืกืืึธืืข, ืกืึทืืืืฉืขืงืืืื ืืื ืืืื.
ืขืก ืืื ืึท ืืืืขืจ ืืืืืขื ืข ืืขืจืฉื: ืงืืื ืืึธื ืืึธืื ืึท 0% ืืึธื! ืืื ืืขืืขืจื ื ืืืขืื ืืื ืืื ืึทื ืึทืจืืืงื ืคืื ืึทื ืื ืืืข ืืขืืืขืืึธืคึผืขืจ. ืืืื ืืืจ ืึทืจืืขื ืืืืฃ ืึท ืคึผืจืืืขืงื, ืืึธื ืขืคึผืขืก ืืืขืื ืืื ืืขืืขืจ ืืึธื. ืืื ืขืก ืืื ื ืืฉื ืขื ืื ืืื ืคืื ืืืจ ืืึทืื. ืฉืจืืื ืืืื ืืืึธืจื ืึธืืขืจ ืืืื ืฉืืจื ืคืื ืงืึธื, ืืืื ืืืื ืืืืึธืจืืึทื ืืืืืขื, ืึธืืขืจ ืืึทืืขืจ ืืืื ื ืึธืื ืืื ืื ืืจืขื - ื ืึธืจ ืืึธื ืขืคึผืขืก. ืื ืืึทืจืืึทืกื ืืืื ืืื ืืขืืื ื ืกืืึทืจืืขื. ืึทืืึธื ืืืจ ืึธื ืืืืื, ืืืจ ืืืขื ืืืกืืึธืืข ืืึธื ืึท ืืืกื ืืขืจ ืืื ืืืจ ืืขืืืืื ืฆื. ืึทืืื ืืืจ ืืืขื ืงืขืกืืืืขืจ ืืึทื ืฆื ืืืื ืฆืื ืืื, ืืืืืื ืืืจ, ืืืืขืจ ืืขืฉืืืื ื. ื ืึธื ืึทืืข, ืื ืืืืคึผื ืืึธืจืืึธื ืืืืฃ ืึทืืข ืืืื ืืื ืคึผืจืึทืงืจืึทืกืืึทื ืืืฉืึทื.
ืืื ืขืก ืืื ืืืืืืืง ืฆื ืืขืืขื ืงืขื ืึทื ืืืจ ืืึธื ื ืืฉื ืึทื ืืขืจืขืกืืึทืืึทื ืืื ืืืื ืึธืจืืจื ืื ืคืจืื "ืืขืืขืืฅ" ืคืื ืฆืืื ืืื 5, 10, 15 ืืื ืื, ืืืึทืจืื ืคึฟืึทืจ ืขืืืขืืข ืืจืืืก "ืืึธืืก" ืืืืึทืืืง ืึท ืฉืขื ืึธืืขืจ ืฆืืืื. ืฉืืืืกืื ืืื ืฉืืจื? ืืจืึทืืื ืืืขืื ืขืคึผืขืก ืคึฟืึทืจ ืืืื ืคึผืจืืืขืงื. ืืืกืื ืืจืืืฃ ืืืืฃ ืื ืขืกืงืึทืืืืืขืจ? ืฉืจืืื ืขืคึผืขืก ืึทืจืึธืคึผ ืืื ืึท ืืขืคื. ืฆื ืืืจ ืขืกื ืืืืฃ ืื ืืืืึธืืืก? ืึธืืงืื, ืืืืขื ืขื ืขืืืขืืข ืึทืจืืืงื. ื ืืฆื ืืขืืขืจ ืืขืืขืื ืืืื. ืืึทืืื ืืืึทืืฉืื ื ืงืึทืฅ ืืื ืืื ื ืืืืฃ ืืึธืืืืืข! ืื ืืืืกื ื ืืฉื ืืึทืืึทืืึทื ืืื ืืืื ืืึทืจื!
ืืื ืื ืืขืฆืืข. ืืืื, ื ืึธื ืืืืขื ืขื ืืขื ืึทืจืืืงื, ืืืจ ืืืืงื ืื ืืขืืึทื ืง ืคืื ืฉืืคื ืฉืคึผืืืขืจืืึท ืึธื ื ืืฆื ืฉืคึผืื ืขื ืืืฉืึทื ื, ืืขืืขื ืงืขื ืื ื ืึธืืขื Casey Muratori. ืืขืจ ืืืืจ ืืื
Casey ืืืื ืืขืจืงืืขืจื ืึทื ืืืจื ืืขืืืขืืึธืคึผืื ื ืืืื ืืืืืขื ืข ืฉืคึผืื ืืึธืืึธืจ, ืืืจ ืืืขื ืืึธืื ืึท ืืขืกืขืจ ืคืืจืฉืืื ื ืคืื ืงืืื ืืืืืกืืื ื ืขื ืืืฉืึทื ื. ืืื ืืขืจ ืืืขืื ืคืื ืคืจืึทืืขืืืึธืจืงืก, ืืื ืึทืืขืืขื ืืื ืืจืืื ื ืฆื ืึธืืึทืืืื, ืืืจ ืืืขื ืืขืจื ืขื ืืื ืฆื ืฉืึทืคึฟื, ื ืืฉื ื ืืฆื. ืคึฟืึทืจืฉืืืื ืื ืืืืขืจ ื ืึทืืืจ ืคืื ืงืึธืืคึผืืืืขืจืก. ืืื ืืืจ ืืืขื ืืืื ืืืขืจื ืึท ืคืื ืืขืจ ืื ืืขืืืืขื ื ืืื ืืขืจืืืึทืงืกื ืคึผืจืึธืืจืึทืืืกื - ืึท ืคึผืจืึธ.
ืืื ืืืืง ืืืืฃ ืืืื ืืืืกืืขืจืืืืืืืข ืืืขื! ืืื ืืึธืืืจ ืืึทืื ืื ืืืขืื ืืขืจ ืคืึทืืืึทื.
ืืืืจ: ืืจืื ืงืื ืื ืืจืื , DevOps
ืืงืืจ: www.habr.com