មេរៀនទី 7៖ ហ្គេមការពិតបន្ថែម — កាត់ផ្លែឈើដោយតាមដានកដៃ
Theory & practice
🍉 មេរៀនទី 7៖ បង្កើតហ្គេម AR នីនចាកាត់ផ្លែឈើ
⚔️ ប្រែក្លាយដៃរបស់អ្នកទៅជាដាវនិម្មិត
ក្នុងមេរៀននេះ យើងផ្សំ AI Pose Detection ជាមួយកាមេរ៉ាវេប ដើម្បីបង្កើតហ្គេម AR នីនចាកាត់ផ្លែឈើ។
អ្នកលេងមិនត្រូវការក្ដារចុច ឬកណ្ដុរទេ។ AI តាមដានទីតាំងកដៃ ហើយប្រែក្លាយចលនាដៃរបស់អ្នកទៅជាដាវនិម្មិតសម្រាប់កាត់ផ្លែឈើ។
🎯 គោលបំណងនៃការសិក្សា
បន្ទាប់ពីមេរៀននេះ អ្នកនឹងអាច៖
- ប្រើ AI តាមដានទីតាំងដៃ។
- បញ្ជាតួអង្គដោយកូអរដោនេកដៃ។
- បង្កើតផ្លែឈើច្រើនដោយប្រើក្លូន (clone)។
- រកឃើញការប៉ះទង្គិចរវាងដៃ និងវត្ថុ។
- បង្កើតច្បាប់សម្រាប់ពិន្ទុ ពេលវេលា និងជីវិត។
1. រៀបចំហ្គេម
តួអង្គ
បង្កើត ឬជ្រើសរើសតួអង្គទាំងនេះ៖
| តួអង្គ | តួនាទី |
|---|---|
Blade | ដើរតាមដៃ |
Fruit | វត្ថុដែលត្រូវកាត់ |
Bomb | វត្ថុគ្រោះថ្នាក់ដែលត្រូវគេច |
ផ្ទៃខាងក្រោយ
ជ្រើសរើសផ្ទៃខាងក្រោយសាមញ្ញ ដើម្បីឱ្យរូបភាពកាមេរ៉ាវេប និងតួអង្គមើលឃើញងាយ។
បង្កើតអថេរ៖
Score
Lives
Timeតម្លៃចាប់ផ្ដើម៖
when green flag clicked
set [Score] to [0]
set [Lives] to [3]
set [Time] to [60]2. បើក AI Pose Detection
បន្ថែមផ្នែកបន្ថែម Pose Detection រួចបើកកាមេរ៉ា៖
when green flag clicked
turn video on stage with 20% transparency
forever
analyse pose from cameraដើម្បីលេងបានល្អ៖
- ឈរឆ្ងាយពីកាមេរ៉ាក្នុងចម្ងាយល្មម។
- រក្សារាងកាយខាងលើ និងដៃទាំងពីរនៅក្នុងស៊ុម។
- ជ្រើសរើសកន្លែងដែលមានពន្លឺល្អ។
- ធ្វើឱ្យមានកន្លែងទំនេរគ្រប់គ្រាន់ដើម្បីផ្លាស់ទីដោយសុវត្ថិភាព។
3. បញ្ជាដាវដោយដៃ
បង្កើតអថេរពីរ៖
Wrist_X
Wrist_Yប្រើកដៃស្តាំដើម្បីបញ្ជាដាវ៖
when green flag clicked
show
forever
analyse pose from camera
set [Wrist_X] to
[x position of right wrist]
set [Wrist_Y] to
[y position of right wrist]
go to x: [Wrist_X] y: [Wrist_Y]ឥឡូវនេះ តួអង្គ Blade ដើរតាមដៃរបស់អ្នកលេងហើយ។
ប្រសិនបើឆ្វេង និងស្តាំបញ្ច្រាសគ្នា ត្រូវធ្វើឱ្យកូអរដោនេ x អវិជ្ជមាន៖
go to x: [0 - Wrist_X] y: [Wrist_Y]4. បង្កើតស្នាមដាវ
ដើម្បីទុកស្នាមភ្លឺខ្លីៗនៅពីក្រោយដាវ យើងប្រើ ក្លូនដែលរសាត់បាត់។ ក្លូននីមួយៗនៅកន្លែងដែលដាវធ្លាប់នៅ រួចរសាត់បាត់បន្តិចម្ដងៗ បង្កើតជាស្នាមនៅពីក្រោយ។
បន្ថែមទៅតួអង្គ Blade៖
when green flag clicked
forever
create clone of myself
wait 0.03 secondswhen I start as a clone
repeat 10
change [ghost] effect by 10
delete this cloneក្រោយធ្វើឡើងវិញ 10 ដង ក្លូនថ្លាទាំងស្រុង ហើយត្រូវបានលុប ដូច្នេះស្នាមដាវមិនធ្វើឱ្យហ្គេមយឺតទេ។
repeat 20 ជាមួយការផ្លាស់ប្ដូរ 5។5. ធ្វើឱ្យផ្លែឈើលេចឡើងជាបន្តបន្ទាប់
ប្រើក្លូនដើម្បីបង្កើតផ្លែឈើច្រើន៖
when green flag clicked
hide
forever
wait (pick random 1 to 2) seconds
create clone of myself6. កាត់ផ្លែឈើ និងទទួលពិន្ទុ
ក្លូននីមួយៗហោះឡើងលើ ហើយ ពិនិត្យការប៉ះទង្គិចក្នុងរង្វិលជុំហោះតែមួយ។ តាមវិធីនេះ ផ្លែឈើអាចត្រូវកាត់នៅកន្លែងណាក៏បានតាមផ្លូវរបស់វា៖
when I start as a clone
go to x: (pick random -200 to 200) y: -170
show
repeat until <y position greater than 180>
change y by 8
turn right 10 degrees
if <touching [Blade]?> then
start sound [Slice]
change [Score] by 1
switch costume to [Sliced fruit]
wait 0.2 seconds
delete this clone
wait 0.03 seconds
delete this cloneផ្លែឈើនីមួយៗទទួលពិន្ទុតែម្ដង ព្រោះក្លូនត្រូវបានលុបភ្លាមក្រោយពេលត្រូវកាត់។ ផ្លែឈើដែលហោះចេញពីខាងលើឆាកក៏ត្រូវបានលុបដែរ ដើម្បីកុំឱ្យហ្គេមយឺត។
ដើម្បីឱ្យផ្លែឈើហោះកាន់តែធម្មជាតិ អ្នកអាចប្ដូរទាំងកូអរដោនេ x និង y ក្នុងការធ្វើឡើងវិញនីមួយៗ។
អ្នកអាចផ្ដល់ពិន្ទុខុសៗគ្នាតាមប្រភេទ៖
| ផ្លែឈើ | ពិន្ទុ |
|---|---|
| ផ្លែប៉ោម | 1 |
| ផ្លែក្រូច | 2 |
| ផ្លែឪឡឹក | 3 |
7. បន្ថែមគ្រាប់បែក
គ្រាប់បែកលេចឡើងដូចផ្លែឈើ ប៉ុន្តែធ្វើឱ្យអ្នកបាត់បង់ជីវិត៖
when I start as a clone
go to a random position at the bottom
show
repeat until <y position greater than 180>
change y by 7
turn right 12 degrees
if <touching [Blade]?> then
start sound [Explosion]
change [Lives] by -1
delete this cloneពិនិត្យចំនួនជីវិតជានិច្ចក្នុងតួអង្គ Blade៖
when green flag clicked
forever
if <Lives ≤ 0> then
broadcast [Game over]
stop [this script]លក្ខខណ្ឌត្រូវតែនៅក្នុងរង្វិលជុំ forever។ ប្រសិនបើពិនិត្យតែម្ដងនៅពេលចាប់ផ្ដើម ហ្គេមនឹងមិនដឹងថាអ្នកលេងអស់ជីវិតឡើយ។
8. បង្កើតនាឡិការាប់ថយក្រោយ
when green flag clicked
set [Time] to [60]
repeat 60
wait 1 seconds
change [Time] by -1
broadcast [Game over]នៅពេលទទួលបានសារបញ្ចប់ហ្គេម៖
when I receive [Game over]
say (join "ពិន្ទុរបស់អ្នក៖ " [Score]) for 3 seconds
stop all9. ច្បាប់ពេញលេញ
- 1អ្នកលេងមានពេល
60 វិនាទី។ - 2ផ្លាស់ទីដៃដើម្បីបញ្ជាដាវ។
- 3កាត់ផ្លែឈើដើម្បីទទួលពិន្ទុ។
- 4ជៀសវាងការប៉ះគ្រាប់បែក។
- 5ការប៉ះគ្រាប់បែកបាត់បង់ជីវិតមួយ។
- 6ហ្គេមបញ្ចប់នៅពេលអស់ពេល ឬអ្នកបាត់បង់ជីវិតទាំងអស់។
🧪 ពិនិត្យគម្រោង
មុនពេលបញ្ចប់ ត្រូវពិនិត្យថា៖
- ដាវដើរតាមកដៃត្រឹមត្រូវ។
- កាមេរ៉ាមិនត្រូវបានបញ្ច្រាសដោយចៃដន្យ។
- ផ្លែឈើលេចឡើងនៅកន្លែងផ្សេងៗគ្នាច្រើន។
- ផ្លែឈើនីមួយៗទទួលពិន្ទុតែម្ដង។
- ការប៉ះគ្រាប់បែកធ្វើឱ្យជីវិតថយចុះ។
- នាឡិកាថយចុះរៀងរាល់វិនាទី។
- ហ្គេមឈប់នៅពេលអស់ពេល ឬជីវិតស្មើសូន្យ។
- ការចុចទង់បៃតងចាប់ផ្ដើមហ្គេមឡើងវិញ។
🧩 បញ្ហាប្រឈមកែលម្អ
ជ្រើសរើសគំនិតមួយដើម្បីអភិវឌ្ឍបន្ត៖
- 1ធ្វើឱ្យផ្លែឈើលឿនជាងមុននៅពេលពិន្ទុកើនឡើង។
- 2បន្ថែមផ្លែឈើមាសដែលមានតម្លៃ 5 ពិន្ទុ។
- 3ប្រើដៃទាំងពីរដើម្បីបញ្ជាដាវពីរ។
- 4បន្ថែមបែបផែនបែកជាពីរនៅពេលកាត់។
- 5បង្កើតតារាងពិន្ទុខ្ពស់។
- 6បន្ថែមអេក្រង់ចាប់ផ្ដើម និងប៊ូតុងលេងម្ដងទៀត។
ឧទាហរណ៍នៃការបង្កើនកម្រិតលំបាក៖
if <Score greater than 10> then
reduce the wait between new fruit
increase the flying speed✅ ចងចាំ
- Pose Detection រកទីតាំងកដៃ។
- កូអរដោនេកដៃបញ្ជាដាវ។
- ក្លូនបង្កើតផ្លែឈើច្រើន ដោយមិនត្រូវការតួអង្គច្រើន។
- ការពិនិត្យការប៉ះទង្គិចបន្ថែមពិន្ទុ ឬដកជីវិត។
- អថេររក្សាទុកពិន្ទុ ជីវិត និងពេលវេលា។
- កាមេរ៉ាត្រូវការពន្លឺល្អ ដើម្បីឱ្យ AI តាមដានចលនាបានល្អ។
សំណួររហ័ស
- 1តើចំណុចសំខាន់ណាបញ្ជាដាវ?
- 2ហេតុអ្វីប្រើក្លូនដើម្បីបង្កើតផ្លែឈើ?
- 3តើអ្នកការពារមិនឱ្យផ្លែឈើមួយទទួលពិន្ទុច្រើនដងយ៉ាងដូចម្ដេច?
- 4តើអ្វីធ្វើឱ្យហ្គេមបញ្ចប់?