24 เดฎเดฃเดฟเด•เตเด•เต‚เดฑเดฟเดจเตเดณเตเดณเดฟเตฝ เดฑเดธเตเดฑเตเดฑเต เด•เดณเดฟเด•เตเด•เตเดจเตเดจเต: เดตเตเดฏเด•เตเดคเดฟเด—เดค เดตเดฟเด•เดธเดจ เด…เดจเตเดญเดตเด‚

24 เดฎเดฃเดฟเด•เตเด•เต‚เดฑเดฟเดจเตเดณเตเดณเดฟเตฝ เดฑเดธเตเดฑเตเดฑเต เด•เดณเดฟเด•เตเด•เตเดจเตเดจเต: เดตเตเดฏเด•เตเดคเดฟเด—เดค เดตเดฟเด•เดธเดจ เด…เดจเตเดญเดตเด‚

เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดžเดพเตป เดฑเดธเตเดฑเตเดฑเดฟเตฝ เด’เดฐเต เดšเต†เดฑเดฟเดฏ เด—เต†เดฏเดฟเด‚ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจ เดŽเดจเตเดฑเต† เดตเตเดฏเด•เตเดคเดฟเดชเดฐเดฎเดพเดฏ เด…เดจเตเดญเดตเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเด‚. เด’เดฐเต เดชเตเดฐเดตเตผเดคเตเดคเดจ เดชเดคเดฟเดชเตเดชเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เดเด•เดฆเต‡เดถเด‚ 24 เดฎเดฃเดฟเด•เตเด•เต‚เตผ เดŽเดŸเตเดคเตเดคเต (เดžเดพเตป เด•เต‚เดŸเตเดคเดฒเตเด‚ เดตเตˆเด•เตเดจเตเดจเต‡เดฐเด™เตเด™เดณเดฟเดฒเต‹ เดตเดพเดฐเดพเดจเตเดคเตเดฏเด™เตเด™เดณเดฟเดฒเต‹ เด†เดฃเต เดœเต‹เดฒเดฟ เดšเต†เดฏเตเดคเดฟเดฐเตเดจเตเดจเดคเต). เด—เต†เดฏเดฟเด‚ เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒ, เดชเด•เตเดทเต‡ เด…เดจเตเดญเดตเด‚ เดชเตเดฐเดคเดฟเดซเดฒเดฆเดพเดฏเด•เดฎเดพเด•เตเดฎเต†เดจเตเดจเต เดžเดพเตป เด•เดฐเตเดคเตเดจเตเดจเต. เด†เดฆเตเดฏเด‚ เดฎเตเดคเตฝ เด—เต†เดฏเดฟเด‚ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดžเดพเตป เดชเด เดฟเดšเตเดšเดคเตเด‚ เดšเดฟเดฒ เดจเดฟเดฐเต€เด•เตเดทเดฃเด™เตเด™เดณเตเด‚ เดžเดพเตป เดชเด™เตเด•เดฟเดŸเตเด‚.

เดธเตเด•เดฟเตฝเดฌเต‹เด•เตเดธเต เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเต: เดฐเดฃเตเดŸเตเดตเตผเดทเดคเตเดคเต† เดชเตเดฐเดพเด•เตเดŸเดฟเด•เตเด•เตฝ เด•เต‹เดดเตเดธเต "เดžเดพเตป เด’เดฐเต PRO เดตเต†เดฌเต เดกเต†เดตเดฒเดชเตเดชเตผ เด†เดฃเต".

เดžเด™เตเด™เตพ เด“เตผเดฎเตเดฎเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต: "Habr"-เดจเตเดฑเต† เดŽเดฒเตเดฒเดพ เดตเดพเดฏเดจเด•เตเด•เดพเตผเด•เตเด•เตเด‚ - "Habr" เดชเตเดฐเตŠเดฎเต‹เดทเดฃเตฝ เด•เต‹เดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดธเตเด•เดฟเตฝเดฌเต‹เด•เตเดธเต เด•เต‹เดดเตเดธเดฟเตฝ เดšเต‡เดฐเตเดฎเตเดชเต‹เตพ 10 เดฑเต‚เดฌเดฟเตพเดธเต เด•เดฟเดดเดฟเดตเต.

เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเต เดคเตเดฐเตเดฎเตเดชเต?

เดžเดพเตป เดˆ เดญเดพเดท เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเดคเต เด‡เดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดงเดพเดฐเดพเดณเด‚ เดจเดฒเตเดฒ เด•เดพเดฐเตเดฏเด™เตเด™เตพ เด•เต‡เดŸเตเดŸเดคเดฟเดจเดพเดฒเตเด‚ เด—เต†เดฏเดฟเด‚ เดกเต†เดตเดฒเดชเตโ€Œเดฎเต†เดจเตเดฑเดฟเตฝ เด‡เดคเต เด•เต‚เดŸเตเดคเตฝ เด•เต‚เดŸเตเดคเตฝ เดœเดจเดชเตเดฐเดฟเดฏเดฎเดพเด•เตเดจเตเดจเดคเต เดžเดพเตป เด•เดพเดฃเตเดจเตเดจเดคเดฟเดจเดพเดฒเตเด‚. เด—เต†เดฏเดฟเด‚ เดŽเดดเตเดคเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต, เดฑเดธเตเดฑเตเดฑเดฟเตฝ เดฒเดณเดฟเดคเดฎเดพเดฏ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเตฝ เดŽเดจเดฟเด•เตเด•เต เด•เตเดฑเดšเตเดšเต เด…เดจเตเดญเดตเด‚ เดฎเดพเดคเตเดฐเดฎเต‡ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเตเดณเตเดณเต‚. เด—เต†เดฏเดฟเด‚ เดŽเดดเตเดคเตเดฎเตเดชเต‹เตพ เดŽเดจเดฟเด•เตเด•เต เด’เดฐเต เดธเตเดตเดพเดคเดจเตเดคเตเดฐเตเดฏเดฌเต‹เดงเด‚ เดจเตฝเด•เดพเตป เด‡เดคเต เดฎเดคเดฟเดฏเดพเดฏเดฟเดฐเตเดจเตเดจเต.

เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต เด—เต†เดฏเดฟเด‚, เดเดคเต เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เด—เต†เดฏเดฟเด‚?

เด—เต†เดฏเดฟเดฎเตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเต เดฐเดธเด•เดฐเดฎเดพเดฃเต! เด•เต‚เดŸเตเดคเตฝ เด•เดพเดฐเดฃเด™เตเด™เตพ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต†เด™เตเด•เดฟเตฝ เดŽเดจเตเดจเต เดžเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ "เดนเต‹เด‚" เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ เดžเดพเตป เดŽเดจเตเดฑเต† เดชเดคเดฟเดตเต เดœเต‹เดฒเดฟเดฏเตเดฎเดพเดฏเดฟ เดตเดณเดฐเต† เด…เดŸเตเดคเตเดค เดฌเดจเตเดงเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เดตเดฟเดทเดฏเด™เตเด™เตพ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจเต. เด‡เดคเต เดŽเดจเตเดคเต เด•เดณเดฟเดฏเดพเดฃเต? เดธเดฟเดฑเตเดฑเดฟ เดธเตเด•เตˆเดฒเตˆเดจเตเด•เตพ, เดธเต‚ เดŸเตˆเด•เตเด•เต‚เตบ, เดชเตเดฐเดฟเดธเตบ เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดฑเตเดฑเต, เดŸเต†เดจเตเดจเต€เดธเต เดŽเดจเตเดจเดฟเดตเดฏเต† เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจ เดŸเต†เดจเตเดจเต€เดธเต เดธเดฟเดฎเตเดฒเต‡เดฑเตเดฑเตผ เดชเต‹เดฒเต†เดฏเตเดณเตเดณ เด’เดจเตเดจเต เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เดžเดพเตป เด†เด—เตเดฐเดนเดฟเดšเตเดšเต. เดชเตŠเดคเตเดตเต‡, เด†เดณเตเด•เตพ เด•เดณเดฟเด•เตเด•เดพเตป เดตเดฐเตเดจเตเดจ เด’เดฐเต เดŸเต†เดจเตเดจเต€เดธเต เด…เด•เตเด•เดพเดฆเดฎเดฟเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด—เต†เดฏเดฟเดฎเดพเดฏเดฟ เด‡เดคเต เดฎเดพเดฑเดฟ.

เดธเดพเด™เตเด•เต‡เดคเดฟเด• เดชเดฐเดฟเดถเต€เดฒเดจเด‚

เดŽเดจเดฟเด•เตเด•เต เดฑเดธเตเดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด†เด—เตเดฐเดนเดฎเตเดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เด‡เดคเต เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเตป เดŽเดคเตเดฐเดคเตเดคเต‹เดณเด‚ เด…เดŸเดฟเดธเตเดฅเดพเดจ เดตเตผเด•เตเด•เต เดตเต‡เดฃเตเดŸเดฟเดตเดฐเตเดฎเต†เดจเตเดจเต เดŽเดจเดฟเด•เตเด•เต เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เด…เดฑเดฟเดฏเดฟเดฒเตเดฒเดพเดฏเดฟเดฐเตเดจเตเดจเต. เดŽเดจเดฟเด•เตเด•เต เดชเดฟเด•เตเดธเตฝ เดทเต‡เดกเดฑเตเด•เตพ เดŽเดดเตเดคเดพเดจเตเด‚ เดกเตเดฐเดพเด—เต-เดŽเตป-เดกเตเดฐเต‹เดชเตเดชเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดจเตเด‚ เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเดฟเดฒเตเดฒ, เด…เดคเดฟเดจเดพเตฝ เดžเดพเตป เดเดฑเตเดฑเดตเตเด‚ เดตเดดเด•เตเด•เดฎเตเดณเตเดณ เดชเดฐเดฟเดนเดพเดฐเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เดคเดฟเดฐเดฏเตเด•เดฏเดพเดฏเดฟเดฐเตเดจเตเดจเต.

เดžเดพเตป เดจเดฟเด™เตเด™เดณเตเดฎเดพเดฏเดฟ เดชเด™เตเด•เดฟเดŸเตเดจเตเดจ เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฏ เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เดžเดพเตป เด•เดฃเตเดŸเต†เดคเตเดคเดฟ:

เดžเดพเตป เดจเดฟเดฐเดตเดงเดฟ เดฑเดธเตเดฑเตเดฑเต เด—เต†เดฏเดฟเด‚ เดŽเดžเตเดšเดฟเดจเตเด•เตพ เดชเดฐเตเดฏเดตเต‡เด•เตเดทเดฃเด‚ เดšเต†เดฏเตเดคเต, เด’เดŸเตเดตเดฟเตฝ เดชเดฟเดธเตเดฑเตเดฑเดฃเตเด‚ เด—เต†เดธเตเด‚ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต. เดฎเตเดฎเตเดชเดคเตเดคเต† เด’เดฐเต เดชเตเดฐเตŠเดœเด•เตเดฑเตเดฑเดฟเตฝ เดœเต‹เดฒเดฟ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เดดเดพเดฃเต เดžเดพเตป เด…เดตเดฐเต† เด•เดฃเตเดŸเดคเต. เด…เดตเดธเดพเดจเด‚, เด’เดฐเต เดšเต†เดฑเดฟเดฏ 2D เด—เต†เดฏเดฟเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเตป เด•เต‚เดŸเตเดคเตฝ เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเต†เดจเตเดจเต เดคเต‹เดจเตเดจเดฟเดฏเดคเดฟเดจเดพเตฝ เดžเดพเตป ggez เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต. เดชเดฟเดธเตเดฑเตเดฑเดฃเดฟเดจเตเดฑเต† เดฎเต‹เดกเตเดฒเดพเตผ เด˜เดŸเดจ เด’เดฐเต เดชเตเดคเดฟเดฏ เดกเต†เดตเดฒเดชเตเดชเตผเด•เตเด•เต (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด†เดฆเตเดฏเดฎเดพเดฏเดฟ เดฑเดธเตเดฑเตเดฑเดฟเดจเตŠเดชเตเดชเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเดพเตพเด•เตเด•เต) เดตเดณเดฐเต† เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฃเต.

เด—เต†เดฏเดฟเด‚ เด˜เดŸเดจ

เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เดตเดพเดธเตเดคเตเดตเดฟเดฆเตเดฏเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดžเดพเตป เด•เตเดฑเดšเตเดšเต เดธเดฎเดฏเด‚ เดšเดฟเดจเตเดคเดฟเดšเตเดšเต. "เดญเต‚เดฎเดฟ", เด†เดณเตเด•เตพ, เดŸเต†เดจเตเดจเต€เดธเต เด•เต‹เตผเดŸเตเดŸเตเด•เตพ เดŽเดจเตเดจเดฟเดต เด‰เดฃเตเดŸเดพเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต เด†เดฆเตเดฏเดชเดŸเดฟ. เดœเดจเด™เตเด™เตพ เด•เต‹เดŸเดคเดฟเด•เตพ เดšเตเดฑเตเดฑเดฟเดจเดŸเดจเตเดจเต เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เดฃเด‚. เด•เดณเดฟเด•เตเด•เดพเตผเด•เตเด•เต เด•เดพเดฒเด•เตเดฐเดฎเต‡เดฃ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดจเตเดจ เด•เดดเดฟเดตเตเด•เตพ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚. เด•เต‚เดŸเดพเดคเต†, เดชเตเดคเดฟเดฏ เด†เดณเตเด•เดณเต†เดฏเตเด‚ เด•เต‹เดŸเดคเดฟเด•เดณเต†เดฏเตเด‚ เดšเต‡เตผเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดŽเดกเดฟเดฑเตเดฑเตผ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚, เดŽเดจเตเดจเดพเตฝ เด‡เดคเต เด‡เดจเดฟ เดธเต—เดœเดจเตเดฏเดฎเดฒเตเดฒ.

เดŽเดฒเตเดฒเดพเด‚ เด†เดฒเต‹เดšเดฟเดšเตเดšเต เดžเดพเตป เดœเต‹เดฒเดฟเดฏเดฟเตฝ เดชเตเดฐเดตเต‡เดถเดฟเดšเตเดšเต.

เด—เต†เดฏเดฟเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตฝ

เดคเตเดŸเด•เตเด•เด‚: เดธเตผเด•เตเด•เดฟเดณเตเด•เดณเตเด‚ เด…เดฎเต‚เตผเดคเตเดคเด™เตเด™เดณเตเด‚

เดžเดพเตป ggez-เตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚ เดŽเดŸเตเดคเตเดคเต เดธเตเด•เตเดฐเต€เดจเดฟเตฝ เด’เดฐเต เดธเตผเด•เตเด•เดฟเตพ เดฒเดญเดฟเดšเตเดšเต. เด†เดถเตเดšเดฐเตเดฏเด‚! เด‡เดชเตเดชเต‹เตพ เดšเดฟเดฒ เด…เดฎเต‚เตผเดคเตเดคเด™เตเด™เตพ. เด’เดฐเต เด—เต†เดฏเดฟเด‚ เด’เดฌเตโ€Œเดœเด•เตโ€Œเดฑเตเดฑเต เดŽเดจเตเดจ เด†เดถเดฏเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด…เดฎเต‚เตผเดคเตเดคเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เดจเดฒเตเดฒเดคเดพเดฃเต†เดจเตเดจเต เดžเดพเตป เด•เดฐเตเดคเดฟ. เด“เดฐเต‹ เด’เดฌเตเดœเด•เตโ€Œเดฑเตเดฑเตเด‚ เด‡เดตเดฟเดŸเต† เดชเดฑเดžเตเดžเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต† เดฑเต†เตปเดกเตผ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดตเต‡เดฃเด‚:

// the game object trait
trait GameObject {
    fn update(&mut self, _ctx: &mut Context) -> GameResult<()>;
    fn draw(&mut self, ctx: &mut Context) -> GameResult<()>;
}
 
// a specific game object - Circle
struct Circle {
    position: Point2,
}
 
 impl Circle {
    fn new(position: Point2) -> Circle {
        Circle { position }
    }
}
impl GameObject for Circle {
    fn update(&mut self, _ctx: &mut Context) -> GameResult<()> {
        Ok(())
    }
    fn draw(&mut self, ctx: &mut Context) -> GameResult<()> {
        let circle =
            graphics::Mesh::new_circle(ctx, graphics::DrawMode::Fill, self.position, 100.0, 2.0)?;
 
         graphics::draw(ctx, &circle, na::Point2::new(0.0, 0.0), 0.0)?;
        Ok(())
    }
}

เดˆ เด•เต‹เดกเต เดŽเดจเดฟเด•เตเด•เต เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดคเตเดฒเตเดฏเดฎเดพเดฏ เด’เดฐเต เดฒเต‚เดชเตเดชเดฟเตฝ เดฑเต†เตปเดกเตผ เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเดจเตเดจ เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเตเด•เดณเตเดŸเต† เด’เดฐเต เดจเดฒเตเดฒ เดฒเดฟเดธเตเดฑเตเดฑเต เดŽเดจเดฟเด•เตเด•เต เดจเตฝเด•เดฟ.

mpl event::EventHandler for MainState {
    fn update(&mut self, context: &mut Context) -> GameResult<()> {
        // Update all objects
        for object in self.objects.iter_mut() {
            object.update(context)?;
        }
 
        Ok(())
    }
 
    fn draw(&mut self, context: &mut Context) -> GameResult<()> {
        graphics::clear(context);
 
        // Draw all objects
        for object in self.objects.iter_mut() {
            object.draw(context)?;
        }
 
        graphics::present(context);
 
        Ok(())
    }
}

เด•เต‹เดกเดฟเดจเตเดฑเต† เดŽเดฒเตเดฒเดพ เดตเดฐเดฟเด•เดณเตเด‚ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ main.rs เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เดซเดฏเดฒเตเด•เตพ เดตเต‡เตผเดคเดฟเดฐเดฟเด•เตเด•เดพเดจเตเด‚ เดกเดฏเดฑเด•เตเดŸเดฑเดฟ เด˜เดŸเดจ เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดžเดพเตป เด•เตเดฑเดšเตเดšเต เดธเดฎเดฏเด‚ เดšเต†เดฒเดตเดดเดฟเดšเตเดšเต. เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เด‡เดคเต เด‡เด™เตเด™เดจเต†เดฏเดพเดฏเดฟเดฐเตเดจเตเดจเต:
เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ -> เด‡เดตเดฟเดŸเต†เดฏเดพเดฃเต เดŽเดฒเตเดฒเดพ เด…เดธเดฑเตเดฑเตเด•เดณเตเด‚ (เดšเดฟเดคเตเดฐเด™เตเด™เตพ)
เด‰เดฑเดตเดฟเดŸ
- เดธเตเดฅเดพเดชเดจเด™เตเด™เดณเตเดŸเต†เดฏเต‡เดพ
โ€” game_object.rs
โ€”เดตเตƒเดคเตเดคเด‚.rs
โ€” main.rs -> เดชเตเดฐเดงเดพเดจ เดฒเต‚เดชเตเดชเต

เด†เดณเตเด•เตพ, เดจเดฟเดฒเด•เตพ, เดšเดฟเดคเตเดฐเด™เตเด™เตพ

เด…เดŸเตเดคเตเดค เด˜เดŸเตเดŸเด‚ เด’เดฐเต เดชเต‡เดดเตโ€Œเดธเตบ เด—เต†เดฏเดฟเด‚ เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเต เดธเตƒเดทเตโ€ŒเดŸเดฟเดšเตเดšเต เดšเดฟเดคเตเดฐเด™เตเด™เตพ เดฒเต‹เดกเตเดšเต†เดฏเตเดฏเตเด• เดŽเดจเตเดจเดคเดพเดฃเต. เดŽเดฒเตเดฒเดพเด‚ 32 * 32 เดŸเตˆเดฒเตเด•เดณเตเดŸเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดคเตเดคเดฟเตฝ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดฃเด‚.

24 เดฎเดฃเดฟเด•เตเด•เต‚เดฑเดฟเดจเตเดณเตเดณเดฟเตฝ เดฑเดธเตเดฑเตเดฑเต เด•เดณเดฟเด•เตเด•เตเดจเตเดจเต: เดตเตเดฏเด•เตเดคเดฟเด—เดค เดตเดฟเด•เดธเดจ เด…เดจเตเดญเดตเด‚

เดŸเต†เดจเตเดจเต€เดธเต เด•เต‹เตผเดŸเตเดŸเตเด•เตพ

เดŸเต†เดจเตเดจเต€เดธเต เด•เต‹เตผเดŸเตเดŸเตเด•เตพ เดŽเด™เตเด™เดจเต†เดฏเตเดฃเตเดŸเต†เดจเตเดจเต เดชเด เดฟเดšเตเดš เดถเต‡เดทเด‚, 4*2 เดŸเตˆเดฒเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เด…เดต เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เดžเดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต. เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเตฝ, เดˆ เดตเดฒเตเดชเตเดชเดคเตเดคเดฟเดฒเตเดณเตเดณ เด’เดฐเต เด‡เดฎเต‡เดœเต เด‰เดฃเตเดŸเดพเด•เตเด•เดพเดจเต‹ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ 8 เดชเตเดฐเดคเตเดฏเต‡เด• เดŸเตˆเดฒเตเด•เตพ เด•เต‚เดŸเตเดŸเดฟเดšเตเดšเต‡เตผเด•เตเด•เดพเดจเต‹ เดธเดพเดงเดฟเดšเตเดšเต. เดŽเดจเตเดจเดพเตฝ เดฐเดฃเตเดŸเต เด…เดฆเตเดตเดฟเดคเต€เดฏ เดŸเตˆเดฒเตเด•เตพ เดฎเดพเดคเตเดฐเดฎเต‡ เด†เดตเดถเตเดฏเดฎเตเดณเตเดณเต‚เดตเต†เดจเตเดจเต เดžเดพเตป เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดฟ, เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต เด‡เดคเต.

เดฎเตŠเดคเตเดคเดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพเด•เตเด•เต เด…เดคเตเดคเดฐเด‚ เดฐเดฃเตเดŸเต เดŸเตˆเดฒเตเด•เตพ เด‰เดฃเตเดŸเต: 1 เด‰เด‚ 2 เด‰เด‚.

เด•เต‹เตผเดŸเตเดŸเดฟเดจเตเดฑเต† เด“เดฐเต‹ เดตเดฟเดญเดพเด—เดคเตเดคเดฟเดฒเตเด‚ เดŸเตˆเตฝ 1 เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดŸเตˆเตฝ 2 เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด…เดต เดธเดพเดงเดพเดฐเดฃ เดชเต‹เดฒเต† เดตเดฏเตเด•เตเด•เดพเด‚ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ 180 เดกเดฟเด—เตเดฐเดฟ เดซเตเดฒเดฟเดชเตเดชเตเดšเต†เดฏเตเดฏเดพเด‚.

24 เดฎเดฃเดฟเด•เตเด•เต‚เดฑเดฟเดจเตเดณเตเดณเดฟเตฝ เดฑเดธเตเดฑเตเดฑเต เด•เดณเดฟเด•เตเด•เตเดจเตเดจเต: เดตเตเดฏเด•เตเดคเดฟเด—เดค เดตเดฟเด•เดธเดจ เด…เดจเตเดญเดตเด‚

เด…เดŸเดฟเดธเตเดฅเดพเดจ เดจเดฟเตผเดฎเตเดฎเดพเดฃ (เด…เดธเด‚เดฌเตเดฒเดฟ) เดฎเต‹เดกเต

เดธเตˆเดฑเตเดฑเตเด•เตพ, เด†เดณเตเด•เตพ, เดฎเดพเดชเตเดชเตเด•เตพ เดŽเดจเตเดจเดฟเดตเดฏเตเดŸเต† เดฑเต†เตปเดกเดฑเดฟเด‚เด—เต เดจเต‡เดŸเดพเตป เดŽเดจเดฟเด•เตเด•เต เด•เดดเดฟเดžเตเดžเดคเดฟเดจเต เดถเต‡เดทเด‚, เด’เดฐเต เด…เดŸเดฟเดธเตเดฅเดพเดจ เด…เดธเด‚เดฌเตเดฒเดฟ เดฎเต‹เดกเตเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต†เดจเตเดจเต เดžเดพเตป เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดฟ. เดžเดพเตป เด‡เดคเต เด‡เดคเตเดชเต‹เดฒเต† เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟ: เดฌเดŸเตเดŸเตบ เด…เดฎเตผเดคเตเดคเตเดฎเตเดชเต‹เตพ, เด’เดฌเตเดœเด•เตเดฑเตเดฑเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต, เด•เตเดฒเดฟเด•เตเด•เต เด…เดคเต เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เดธเตเดฅเดฒเดคเตเดคเต เดธเตเดฅเดพเดชเดฟเด•เตเด•เตเดจเตเดจเต. เด…เดคเดฟเดจเดพเตฝ, เด’เดฐเต เด•เต‹เตผเดŸเตเดŸเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เดพเตป เดฌเดŸเตเดŸเตบ 1 เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เด’เดฐเต เด•เดณเดฟเด•เตเด•เดพเดฐเดจเต† เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เดพเตป เดฌเดŸเตเดŸเตบ 2 เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต.

เดŽเดจเตเดจเดพเตฝ 1 เด‰เด‚ 2 เด‰เด‚ เดŽเดจเตเดคเดพเดฃเต เด…เตผเดคเตเดฅเดฎเดพเด•เตเด•เตเดจเตเดจเดคเต เดŽเดจเตเดจเต เดจเดฎเตเดฎเตพ เด‡เดชเตเดชเต‹เดดเตเด‚ เด“เตผเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต, เด…เดคเดฟเดจเดพเตฝ เดเดคเต เดตเดธเตเดคเตเดตเดพเดฃเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเดคเต†เดจเตเดจเต เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดพเตป เดžเดพเตป เด’เดฐเต เดตเดฏเตผเดซเตเดฐเต†เดฏเดฟเด‚ เดšเต‡เตผเดคเตเดคเต. เด‡เด™เตเด™เดจเต†เดฏเดพเดฃเต เด•เดพเดฃเตเดจเตเดจเดคเต.

24 เดฎเดฃเดฟเด•เตเด•เต‚เดฑเดฟเดจเตเดณเตเดณเดฟเตฝ เดฑเดธเตเดฑเตเดฑเต เด•เดณเดฟเด•เตเด•เตเดจเตเดจเต: เดตเตเดฏเด•เตเดคเดฟเด—เดค เดตเดฟเด•เดธเดจ เด…เดจเตเดญเดตเด‚

เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดšเตผ, เดฑเต€เดซเดพเด•เตโ€ŒเดŸเดฑเดฟเด‚เด—เต เดšเต‹เดฆเตเดฏเด™เตเด™เตพ

เด‡เดชเตเดชเต‹เตพ เดŽเดจเดฟเด•เตเด•เต เดจเดฟเดฐเดตเดงเดฟ เด—เต†เดฏเดฟเด‚ เดตเดธเตเดคเตเด•เตเด•เตพ เด‰เดฃเตเดŸเต: เด†เดณเตเด•เตพ, เด•เต‹เดŸเดคเดฟเด•เตพ, เดจเดฟเดฒเด•เตพ. เดŽเดจเตเดจเดพเตฝ เดตเดฏเตผเดซเตเดฐเต†เดฏเดฟเดฎเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เด“เดฐเต‹ เด’เดฌเตเดœเด•เตเดฑเตเดฑเต เดŽเดจเตเดฑเดฟเดฑเตเดฑเดฟเดฏเตเด‚ เด’เดฌเตโ€Œเดœเด•เตโ€Œเดฑเตเดฑเตเด•เตพ เดคเดจเตเดจเต† เดกเต†เดฎเต‹เตบเดธเตโ€ŒเดŸเตเดฐเต‡เดทเตป เดฎเต‹เดกเดฟเดฒเดพเดฃเต‹ เด…เดคเต‹ เด’เดฐเต เดซเตเดฐเต†เดฏเดฟเด‚ เดฒเดณเดฟเดคเดฎเดพเดฏเดฟ เดตเดฐเดšเตเดšเดคเดพเดฃเต‹ เดŽเดจเตเดจเต เดชเดฑเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เด‡เดคเต เดตเดณเดฐเต† เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดฒเตเดฒ.

เดšเดฟเดฒ เดชเดฐเดฟเดฎเดฟเดคเดฟเด•เตพ เดตเต†เดณเดฟเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจ เดฐเต€เดคเดฟเดฏเดฟเตฝ เดตเดพเดธเตเดคเตเดตเดฟเดฆเตเดฏเดฏเต† เดชเตเดจเตผเดตเดฟเดšเดฟเดจเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต†เดจเตเดจเต เดŽเดจเดฟเด•เตเด•เต เดคเต‹เดจเตเดจเดฟ:

  • เดธเตเดตเดฏเด‚ เดฑเต†เตปเดกเตผ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจ เด’เดฐเต เดŽเดจเตเดฑเดฟเดฑเตเดฑเดฟ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เด’เดฐเต เดชเตเดฐเดถเตโ€Œเดจเดฎเดพเดฃเต, เด•เดพเดฐเดฃเด‚ เด† เดธเตเดฅเดพเดชเดจเดคเตเดคเดฟเดจเต เด…เดคเต เดฑเต†เตปเดกเตผ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเต เดŽเดจเตเดคเดพเดฃเต†เดจเตเดจเต "เด…เดฑเดฟเดฏเดพเตป" เด•เดดเดฟเดฏเดฟเดฒเตเดฒ - เด’เดฐเต เด‡เดฎเต‡เดœเตเด‚ เดตเดฏเตผเดซเตเดฐเต†เดฏเดฟเดฎเตเด‚;
  • เดตเตเดฏเด•เตเดคเดฟเด—เดค เดŽเดจเตเดฑเดฟเดฑเตเดฑเดฟเด•เตพเด•เตเด•เดฟเดŸเดฏเดฟเตฝ เดชเตเดฐเต‹เดชเตเดชเตผเดŸเตเดŸเดฟเด•เดณเตเด‚ เดชเต†เดฐเตเดฎเดพเดฑเตเดฑเดตเตเด‚ เด•เตˆเดฎเดพเดฑเตเดฑเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เด‰เดชเด•เดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต† เด…เดญเดพเดตเด‚ (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, is_build_mode เดชเตเดฐเต‹เดชเตเดชเตผเดŸเตเดŸเดฟ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดชเต†เดฐเตเดฎเดพเดฑเตเดฑ เดฑเต†เตปเดกเดฑเดฟเด‚เด—เต). เดฑเดธเตเดฑเตเดฑเดฟเตฝ เด…เดคเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเตป เดถเดฐเดฟเดฏเดพเดฏ เดฎเดพเตผเด—เดฎเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเดฒเตเด‚, เด…เดจเดจเตเดคเดฐเดพเดตเด•เดพเดถเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดธเดพเดงเดฟเด•เตเด•เตเด‚. เดŽเดจเดฟเด•เตเด•เต เดถเดฐเดฟเด•เตเด•เตเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเดคเต เดฒเต‡เด”เดŸเตเดŸเต เด†เดฏเดฟเดฐเตเดจเตเดจเต;
  • เด†เดณเตเด•เดณเต† เด•เต‹เดŸเดคเดฟเด•เดณเดฟเตฝ เดเตฝเดชเตเดชเดฟเด•เตเด•เดพเตป เดŽเดจเตเดฑเดฟเดฑเตเดฑเดฟเด•เตพ เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏเดคเตเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เด‰เดชเด•เดฐเดฃเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต;
  • เดŽเดจเตเดฑเดฟเดฑเตเดฑเดฟเด•เตพ เดคเดจเตเดจเต† เดกเดพเดฑเตเดฑเดฏเตเดŸเต†เดฏเตเด‚ เดฏเตเด•เตเดคเดฟเดฏเตเดŸเต†เดฏเตเด‚ เดฎเดฟเดถเตเดฐเดฟเดคเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต, เด…เดคเต เดชเต†เดŸเตเดŸเต†เดจเตเดจเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเดพเดคเต€เดคเดฎเดพเดฏเดฟ.

เดžเดพเตป เด•เตเดฑเดšเตเดšเตเด•เต‚เดŸเดฟ เด—เดตเต‡เดทเดฃเด‚ เดจเดŸเดคเตเดคเดฟ เดตเดพเดธเตเดคเตเดตเดฟเดฆเตเดฏ เด•เดฃเตเดŸเตเดชเดฟเดŸเดฟเดšเตเดšเต ECS - เดŽเดจเตเดฑเดฟเดฑเตเดฑเดฟ เด˜เดŸเด• เดธเด‚เดตเดฟเดงเดพเดจเด‚, เด‡เดคเต เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด—เต†เดฏเดฟเดฎเตเด•เดณเดฟเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. ECS-เดจเตเดฑเต† เดชเตเดฐเดฏเต‹เดœเดจเด™เตเด™เตพ เด‡เดคเดพ:

  • เดกเดพเดฑเตเดฑ เดฒเต‹เดœเดฟเด•เตเด•เดฟเตฝ เดจเดฟเดจเตเดจเต เดตเต‡เตผเดคเดฟเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต;
  • เดชเดพเดฐเดฎเตเดชเดฐเตเดฏเดคเตเดคเดฟเดจเต เดชเด•เดฐเด‚ เด˜เดŸเดจ;
  • เดกเดพเดฑเตเดฑเดพ เด•เต‡เดจเตเดฆเตเดฐเต€เด•เตƒเดค เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดšเตผ.

เดฎเต‚เดจเตเดจเต เด…เดŸเดฟเดธเตเดฅเดพเดจ เด†เดถเดฏเด™เตเด™เดณเดพเตฝ ECS เดจเตเดฑเต† เดธเดตเดฟเดถเต‡เดทเดคเดฏเดพเดฃเต:

  • เดŽเดจเตเดฑเดฟเดฑเตเดฑเดฟเด•เตพ - เดเดกเดจเตเดฑเดฟเดซเดฏเตผ เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจ เด’เดฌเตเดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เดคเดฐเด‚ (เด…เดคเต เด’เดฐเต เด•เดณเดฟเด•เตเด•เดพเดฐเดจเต‹ เดชเดจเตเดคเต‹ เดฎเดฑเตเดฑเต†เดจเตเดคเต†เด™เตเด•เดฟเดฒเตเดฎเต‹ เด†เด•เดพเด‚);
  • เด˜เดŸเด•เด™เตเด™เตพ - เดŽเดจเตเดฑเดฟเดฑเตเดฑเดฟเด•เตพ เด…เดตเดฏเดฟเตฝ เดจเดฟเดจเตเดจเดพเดฃเต เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต. เด‰เดฆเดพเดนเดฐเดฃเด‚ - เดฑเต†เตปเดกเดฑเดฟเด‚เด—เต เด˜เดŸเด•เด‚, เดฒเตŠเด•เตเด•เต‡เดทเดจเตเด•เตพ เดŽเดจเตเดจเดฟเดตเดฏเตเด‚ เดฎเดฑเตเดฑเตเดณเตเดณเดตเดฏเตเด‚. เด‡เดต เดกเดพเดฑเตเดฑ เดตเต†เดฏเตผเดนเต—เดธเตเด•เดณเดพเดฃเต;
  • เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เตพ - เด…เดต เด’เดฌเตเดœเด•เตเดฑเตเดฑเตเด•เดณเตเด‚ เด˜เดŸเด•เด™เตเด™เดณเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เดˆ เดกเดพเดฑเตเดฑเดฏเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเตเดณเตเดณ เดชเต†เดฐเตเดฎเดพเดฑเตเดฑเดตเตเด‚ เดฏเตเด•เตเดคเดฟเดฏเตเด‚ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดฑเต†เตปเดกเดฑเดฟเด‚เด—เต เด˜เดŸเด•เด™เตเด™เดณเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เดŽเดจเตเดฑเดฟเดฑเตเดฑเดฟเด•เดณเดฟเดฒเต‚เดŸเต†เดฏเตเด‚ เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดฑเต†เตปเดกเดฑเดฟเด‚เด—เต เดจเดŸเดคเตเดคเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจ เด’เดฐเต เดฑเต†เตปเดกเดฑเดฟเด‚เด—เต เดธเดฟเดธเตเดฑเตเดฑเดฎเดพเดฃเต เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚.

เด‡เดคเต เดชเด เดฟเดšเตเดš เดถเต‡เดทเด‚, ECS เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดฟ:

  • เดŽเดจเตเดฑเดฟเดฑเตเดฑเดฟเด•เดณเต† เดตเตเดฏเดตเดธเตเดฅเดพเดชเดฟเดคเดฎเดพเดฏเดฟ เดธเด‚เด˜เดŸเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด…เดจเดจเตเดคเดฐเดพเดตเด•เดพเดถเดคเตเดคเดฟเดจเต เดชเด•เดฐเด‚ เดฒเต‡เด”เดŸเตเดŸเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต;
  • เดจเดฟเดฏเดจเตเดคเตเดฐเดฃ เดธเด‚เดตเดฟเดงเดพเดจเด™เตเด™เดณเดฟเดฒเต‚เดŸเต† เด•เต‹เดกเต เดœเด‚เดฌเดฟเตพ เด’เดดเดฟเดตเดพเด•เตเด•เตเด•;
  • เดตเดฏเตผเดซเตเดฐเต†เดฏเดฟเด‚ เดฒเต‹เดœเดฟเด•เต เด…เดคเต‡ เดธเตเดฅเดฒเดคเตเดคเต เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเดพเตป is_build_mode เดชเต‹เดฒเตเดณเตเดณ เดฐเต€เดคเดฟเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต - เดฑเต†เตปเดกเดฑเดฟเด‚เด—เต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ.

เด‡เดธเดฟเดŽเดธเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟเดฏเดคเดฟเดจเต เดถเต‡เดทเด‚ เด‡เดคเดพเดฃเต เดธเด‚เดญเดตเดฟเดšเตเดšเดคเต.

เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ -> เด‡เดตเดฟเดŸเต†เดฏเดพเดฃเต เดŽเดฒเตเดฒเดพ เด…เดธเดฑเตเดฑเตเด•เดณเตเด‚ (เดšเดฟเดคเตเดฐเด™เตเด™เตพ)
เด‰เดฑเดตเดฟเดŸ
- เด˜เดŸเด•เด™เตเด™เตพ
-position.rs
โ€” person.rs
โ€” tennis_court.rs
โ€” floor.rs
- wireframe.rs
โ€” mouse_tracked.rs
- เดตเดฟเดญเดตเด™เตเด™เตพ
โ€” mouse.rs
- เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เตพ
- rendering.rs
โ€” เดจเดฟเดฐเดจเตเดคเดฐเด‚.rs
โ€” utils.rs
โ€” world_factory.rs -> เดฒเต‹เด• เดซเดพเด•เตเดŸเดฑเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ
โ€” main.rs -> เดชเตเดฐเดงเดพเดจ เดฒเต‚เดชเตเดชเต

เดžเด™เตเด™เตพ เด†เดณเตเด•เดณเต† เด•เต‹เดŸเดคเดฟเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดจเดฟเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต

เด‡เดธเดฟเดŽเดธเต เดœเต€เดตเดฟเดคเด‚ เดŽเดณเตเดชเตเดชเดฎเดพเด•เตเด•เดฟ. เดŽเดจเตเดฑเดฟเดฑเตเดฑเดฟเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดกเดพเดฑเตเดฑ เดšเต‡เตผเด•เตเด•เดพเดจเตเด‚ เด† เดกเดพเดฑเตเดฑเดฏเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ เดฒเต‹เดœเดฟเด•เต เดšเต‡เตผเด•เตเด•เดพเดจเตเด‚ เด‡เดชเตเดชเต‹เตพ เดŽเดจเดฟเด•เตเด•เต เด’เดฐเต เดšเดฟเดŸเตเดŸเดฏเดพเดฏ เดฎเดพเตผเด—เดฎเตเดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต. เด‡เดคเต, เด•เต‹เดŸเดคเดฟเด•เตพเด•เตเด•เดฟเดŸเดฏเดฟเตฝ เด†เดณเตเด•เดณเตเดŸเต† เดตเดฟเดคเดฐเดฃเด‚ เดธเด‚เด˜เดŸเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เดธเดพเดงเตเดฏเดฎเดพเด•เตเด•เดฟ.

เดžเดพเตป เดŽเดจเตเดคเต เดšเต†เดฏเตเดคเต:

  • เดตเตเดฏเด•เตเดคเดฟเด•เตเด•เต เดจเดฟเดฏเตเด•เตเดค เด•เต‹เดŸเดคเดฟเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดกเดพเดฑเตเดฑ เดšเต‡เตผเดคเตเดคเต;
  • เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดค เด†เดณเตเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เดŸเต†เดจเตเดจเต€เดธเตเด•เต‹เตผเดŸเตเดŸเดฟเดฒเต‡เด•เตเด•เต เดšเต‡เตผเดคเตเดคเต;
  • เด†เดณเตเด•เดณเต†เดฏเตเด‚ เด•เต‹เดŸเดคเดฟเด•เดณเต†เดฏเตเด‚ เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดฒเดญเตเดฏเดฎเดพเดฏ เด•เต‹เตผเดŸเตเดŸเตเด•เตพ เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเตเด‚ เด…เดตเตผเด•เตเด•เต เด•เดณเดฟเด•เตเด•เดพเดฐเต† เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ CourtChoosingSystem เดšเต‡เตผเดคเตเดคเต;
  • เด’เดฐเต PersonMovementSystem เดšเต‡เตผเดคเตเดคเต, เด…เดคเต เด•เต‹เดŸเดคเดฟเด•เดณเดฟเตฝ เดจเดฟเดฏเต‹เด—เดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸ เด†เดณเตเด•เดณเต† เดคเดฟเดฐเดฏเตเดจเตเดจเต, เด…เดตเตผ เด…เดตเดฟเดŸเต† เด‡เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด†เดณเตเด•เดณเต† เด†เดตเดถเตเดฏเดฎเตเดณเตเดณเดฟเดŸเดคเตเดคเต‡เด•เตเด•เต เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเต.

24 เดฎเดฃเดฟเด•เตเด•เต‚เดฑเดฟเดจเตเดณเตเดณเดฟเตฝ เดฑเดธเตเดฑเตเดฑเต เด•เดณเดฟเด•เตเด•เตเดจเตเดจเต: เดตเตเดฏเด•เตเดคเดฟเด—เดค เดตเดฟเด•เดธเดจ เด…เดจเตเดญเดตเด‚

เดธเด‚เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต

เดˆ เดฒเดณเดฟเดคเดฎเดพเดฏ เด—เต†เดฏเดฟเดฎเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต เดžเดพเตป เดถเดฐเดฟเด•เตเด•เตเด‚ เด†เดธเตเดตเดฆเดฟเดšเตเดšเต. เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เด‡เดคเต เดŽเดดเตเดคเดพเตป เดžเดพเตป เดฑเดธเตเดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดคเดฟเตฝ เดŽเดจเดฟเด•เตเด•เต เดธเดจเตเดคเต‹เดทเดฎเตเดฃเตเดŸเต, เด•เดพเดฐเดฃเด‚:

  • เดคเตเดฐเตเดฎเตเดชเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเตเดณเตเดณเดคเต เดจเตฝเด•เตเดจเตเดจเต;
  • เด‡เดคเดฟเดจเต เดฎเดฟเด•เดšเตเดš เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป เด‰เดฃเตเดŸเต, เดคเตเดฐเตเดฎเตเดชเต เดตเดณเดฐเต† เด—เด‚เดญเต€เดฐเดฎเดพเดฃเต;
  • เดธเตเดฅเดฟเดฐเดค เดคเดฃเตเดคเตเดคเดคเดพเดฃเต;
  • เดจเดฟเด™เตเด™เตพ เด•เตเดฒเต‹เดฃเดฟเด‚เด—เต, เดชเด•เตผเดคเตเดคเตฝ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฎเดฑเตเดฑเต เดธเดฎเดพเดจ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เด…เดตเดฒเด‚เดฌเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดฟเดฒเตเดฒ, เด…เดคเต เดžเดพเตป เดชเดฒเดชเตเดชเต‹เดดเตเด‚ C++ เตฝ เดšเต†เดฏเตเดคเต;
  • เด“เดชเตเดทเดจเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดตเดณเดฐเต† เดŽเดณเตเดชเตเดชเดฎเดพเดฃเต เด•เต‚เดŸเดพเดคเต† เดชเดฟเดถเด•เตเด•เตพ เดตเดณเดฐเต† เดจเดจเตเดจเดพเดฏเดฟ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต;
  • เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเดฎเต†เด™เตเด•เดฟเตฝ, เด…เดคเต 99% เดธเดฎเดฏเดตเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเต เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต. เด•เด‚เดชเตˆเดฒเตผ เดชเดฟเดถเด•เต เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เดžเดพเตป เด•เดฃเตเดŸเดคเดฟเตฝ เดตเดšเตเดšเต เดเดฑเตเดฑเดตเตเด‚ เดฎเดฟเด•เดšเตเดšเดคเดพเดฃเต†เดจเตเดจเต เดžเดพเตป เด•เดฐเตเดคเตเดจเตเดจเต.

เดฑเดธเตเดฑเตเดฑเดฟเดฒเต† เด—เต†เดฏเดฟเด‚ เดตเดฟเด•เดธเดจเด‚ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเต‡เดฏเตเดณเตเดณเต‚. เดŽเดจเตเดจเดพเตฝ เดŽเดฒเตเดฒเดพเดตเตผเด•เตเด•เตเดฎเดพเดฏเดฟ เดฑเดธเตเดฑเตเดฑเต เดคเตเดฑเด•เตเด•เดพเตป เดธเตเดธเตเดฅเดฟเดฐเดตเตเด‚ เดธเดพเดฎเดพเดจเตเดฏเด‚ เดตเดฒเดฟเดฏเดคเตเดฎเดพเดฏ เด’เดฐเต เด•เดฎเตเดฎเตเดฏเต‚เดฃเดฟเดฑเตเดฑเดฟ เด‡เดคเดฟเดจเด•เด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต. เด…เดคเดฟเดจเดพเตฝ, เดญเดพเดทเดฏเตเดŸเต† เดญเดพเดตเดฟเดฏเต† เดžเดพเตป เดถเตเดญเดพเดชเตเดคเดฟเดตเดฟเดถเตเดตเดพเดธเดคเตเดคเต‹เดŸเต† เดจเต‹เด•เตเด•เตเดจเตเดจเต, เดžเด™เตเด™เดณเตเดŸเต† เดชเตŠเดคเตเดตเดพเดฏ เดœเต‹เดฒเดฟเดฏเตเดŸเต† เดซเดฒเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เดธเตเด•เดฟเตฝเดฌเต‹เด•เตเดธเต เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเต:

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•