នាឡិកាប៉ោល​ខ្មែរ

ដើម្បី​បង្កើត​នាឡិកាប៉ោល​មួយ​ យើង​អាច​​សរសេរ​កម្មវិធី​ដូច​ខាង​ក្រោម​នេះ​៖

#ការរៀបចំ​ប្រដាប់ប្រដារ
import pygame
pygame.init()

#ការយក​កញ្ចប់គណិតវិទ្យា​និង​ថេរវេលា​មក​ប្រើ
import math, time

 

#ការកំណត់​ទំហំ​អេក្រង់​
យីហោ = "Khmer Game"
ទំហំ = [640, 480]
អេក្រង់ = pygame.display.set_mode(ទំហំ)
pygame.display.set_caption(យីហោ)

 

#ការបង្កើត​ទី​កន្លែង
ពណ៌ = [255, 255, 255]
ទីកន្លែង = pygame.Surface(អេក្រង់.get_size())
ទីកន្លែង = ទីកន្លែង.convert()
ទីកន្លែង.fill(ពណ៌)

 

#ការបង្កើត​ពុម្ព​អក្សរ​
ពណ៌ = [255, 255, 0]
ពុម្ពអក្សរ = pygame.font.SysFont("ABC-HEAD-02", 50)

 

#ក្បួន​ចម្លង​យក​ម៉ោង​ពី​ក្នុង​កំព្យូទ័រ
def ចម្លងម៉ោង():
    #ចម្លង​យក​ពេលវេលា​​ក្នុង CPU
    ពេល = time.time()
    #បំបែក​ទៅ​ជា​ពេលវេលាធម្មតា
    ពេលធម្មតា = time.localtime(ពេល)
    #បំបែក​ទៅ​ជា​ ម៉ោង នាទី វិនាទី
    ម៉ោង, នាទី, វិនាទី = ពេលធម្មតា[3:6]
    return (ម៉ោង, នាទី, វិនាទី)

#ក្បួន​គណនា​កូអ័រដោនេ
def កូអ័រដោនេ(មុំ, កាំ, ផ្ទាំងគូរ):
    #គណនាអាប់ស៊ីស​រួច​កែ​ឲ្យ​ទៅ​ជា​ចំនួនគត់
    ទីតាំងx = int(round(កាំ * math.sin(math.pi – មុំ))) + ផ្ទាំងគូរ.get_width() // 2
    #គណនាអ័រដោនេរូច​កែ​ឲ្យ​ទៅ​ជា​ចំនួនគត់
    ទីតាំងy = int(round(កាំ  * math.cos(math.pi – មុំ))) + ផ្ទាំងគូរ.get_height() // 2
    return (ទីតាំងx, ទីតាំងy)

 

#ក្បួន​គូរ​រូប​នាឡិកា
def គូរនាឡិកា(ផ្ទាំងគូរ, កាំ, ពណ៌មុខ, ពណ៌វ័ណ្ឌ):
    #គណនារក​ចំណុច​កណ្តាល​នៃ​អេក្រង់​ល្បែង
    ចំណុចកណ្តាល = [ផ្ទាំងគូរ.get_width() // 2, ផ្ទាំងគូរ.get_height() // 2]
     #គូររូប​វ័ណ្ឌនាឡិកា
    pygame.draw.circle(ផ្ទាំងគូរ, ពណ៌វ័ណ្ឌ, ចំណុចកណ្តាល, កាំ + 15, 5)
    #គូរមុខនាឡិកា
    pygame.draw.circle(ផ្ទាំងគូរ, ពណ៌មុខ, ចំណុចកណ្តាល, កាំ)
    #គូរគំនូរក្រិត
    for គំនូសក្រិត in range(60):
        if (គំនូសក្រិត % 5 == 0):
            កម្រាស់ = 6
            #គូស​លេខម៉ោង
            លេខ = str(គំនូសក្រិត // 5)
            #ដាក់ម៉ាក​នាឡិកា
            if លេខ == "0":
                ម៉ាក = ពុម្ពអក្សរ.render("Gbßara", True, [255, 255, 0])
                ទីតាំងលេខ = កូអ័រដោនេ(គំនូសក្រិត*math.pi/30, កាំ – 70, ផ្ទាំងគូរ)
                ផ្ទាំងគូរ.blit(ម៉ាក, (ទីតាំងលេខ[0] – 30, ទីតាំងលេខ[1]-30))
                លេខម៉ោង = ពុម្ពអក្សរ.render("12", True, [255, 255, 255])
            else:  
                លេខម៉ោង = ពុម្ពអក្សរ.render(លេខ, True, [255, 255, 255])
            ទីតាំងលេខ = កូអ័រដោនេ(គំនូសក្រិត*math.pi/30, កាំ – 25, ផ្ទាំងគូរ)
            ផ្ទាំងគូរ.blit(លេខម៉ោង, (ទីតាំងលេខ[0] – 15, ទីតាំងលេខ[1]-30))
        else:
            កម្រាស់ = 2
        pygame.draw.line(ផ្ទាំងគូរ, ពណ៌វ័ណ្ឌ, កូអ័រដោនេ(គំនូសក្រិត*math.pi/30, កាំ+1, ផ្ទាំងគូរ), កូអ័រដោនេ(គំនូសក្រិត*math.pi/30, កាំ+14, ផ្ទាំងគូរ), កម្រាស់)
    #ចម្លង​យក​ម៉ោង​មក​ប្រើការ
    ម៉ោង, នាទី, វិនាទី = ចម្លងម៉ោង()
    #បង្ហាញ​ម៉ោង​ digital
    ពុម្ពអក្សរ_digital = pygame.font.SysFont("ABC-TEXT-01", 30)
    ទីតាំងលេខ_digital = កូអ័រដោនេ(math.pi, កាំ – 25, ផ្ទាំងគូរ)
    លេខ = "{}£{}£{}".format(ម៉ោង, នាទី, វិនាទី)
    លេខ_digital = ពុម្ពអក្សរ_digital.render(លេខ, True, [255, 255, 255])
    ផ្ទាំងគូរ.blit(លេខ_digital, (ទីតាំងលេខ_digital[0] – len(លេខ)/2*12, ទីតាំងលេខ_digital[1]-70))
    #គូស​ទ្រនិច​វិនាទី
    កម្រាស់ = 2
    pygame.draw.line(ផ្ទាំងគូរ, [255, 0, 0], កូអ័រដោនេ(វិនាទី*math.pi/30, 0, ផ្ទាំងគូរ), កូអ័រដោនេ(វិនាទី*math.pi/30, កាំ, ផ្ទាំងគូរ), កម្រាស់)
    #គូសទ្រនិច​នាទី
    កម្រាស់ = 4
    pygame.draw.line(ផ្ទាំងគូរ, [255, 255, 255], កូអ័រដោនេ(នាទី*math.pi/30, 0, ផ្ទាំងគូរ), កូអ័រដោនេ(នាទី*math.pi/30, កាំ-5, ផ្ទាំងគូរ), កម្រាស់)
    #គូសទ្រនិច​ម៉ោង
    កម្រាស់ = 8
    if ម៉ោង > 12:
        ម៉ោង -= 12
    #គណនា​រក​មុំ​សម្រាប់​ទ្រនិច​ម៉ោង​គិត​ជា​ radian
    មុំ = ម៉ោង*math.pi/6+math.pi/6/60*នាទី 
    pygame.draw.line(ផ្ទាំងគូរ, [255, 255, 255], កូអ័រដោនេ(មុំ, 0, ផ្ទាំងគូរ), កូអ័រដោនេ(មុំ, កាំ-60, ផ្ទាំងគូរ), កម្រាស់)
    #គូររង្វង់​គល់​ទ្រនិច
    pygame.draw.circle(ផ្ទាំងគូរ, [255, 255, 255], ចំណុចកណ្តាល, 10)

#ការបង្កើត​សាច់រឿង
ពេល = pygame.time.Clock()
ជាប់ជានិច្ច = True
#ការ​ធ្វើ​ឲ្យ​សាច់រឿង​មាន​ដំណើរការ​ជាប់​រហូត
while ជាប់ជានិច្ច:
    #ការកំណត់​ល្បឿន​នៃ​សាច់​រឿង
    ពេល.tick(30)
   #គូររូប​នាឡិកា
    គូរនាឡិកា(ទីកន្លែង, 200, [0, 0, 255], [0, 0, 150])
    # ការឆ្លើយតប​ទៅ​នឹង​ហេតុការណ៍​ផ្សេង​ៗ
    for ហេតុការណ៍ in pygame.event.get():
        if ហេតុការណ៍.type == pygame.QUIT:
            ជាប់ជានិច្ច = False
    #ការបង្ហាញ​សាច់រឿង​​នៅ​លើ​អេក្រង់
    ទីតាំង = [0, 0]
    អេក្រង់.blit(ទីកន្លែង, ទីតាំង)
    pygame.display.flip()

ទាញយក​កម្មវិធី​​ខាង​លើ​នេះ

 

នាឡិកាប៉ោលខ្មែរ

 

 

ប្រភព​៖

pygame documentation

Game Programming, The Express Line to Learning

Beginning Game Development with Python and Pygame

Advertisements

Comments on: "នាឡិកាប៉ោល​ខ្មែរ" (2)

  1. អូយ!!!ឡូយមែន ជួយប្រាប់បានទេ សរសេរលើកម្មវិធីអ្វីដែរ?

  2. ខ្ញុំ​សរសេរ​លើ​កម្មវិធី Python 3.1 ដោយ​ប្រើ​កញ្ចប់​ pygame ។

ឆ្លើយ​តប

Fill in your details below or click an icon to log in:

ឡូហ្កូ WordPress.com

អ្នក​កំពុង​បញ្ចេញ​មតិ​ដោយ​ប្រើ​គណនី WordPress.com របស់​អ្នក​។ Log Out / ផ្លាស់ប្តូរ )

រូប Twitter

អ្នក​កំពុង​បញ្ចេញ​មតិ​ដោយ​ប្រើ​គណនី Twitter របស់​អ្នក​។ Log Out / ផ្លាស់ប្តូរ )

រូបថត Facebook

អ្នក​កំពុង​បញ្ចេញ​មតិ​ដោយ​ប្រើ​គណនី Facebook របស់​អ្នក​។ Log Out / ផ្លាស់ប្តូរ )

Google+ photo

អ្នក​កំពុង​បញ្ចេញ​មតិ​ដោយ​ប្រើ​គណនី Google+ របស់​អ្នក​។ Log Out / ផ្លាស់ប្តូរ )

កំពុង​ភ្ជាប់​ទៅ​កាន់ %s

ផ្សែងប្លាក

%d bloggers like this: