Labels

Tuesday, February 16, 2010

PyGame цонх үүсгэх

import pygame
screen = pygame.display.set_mode((640,400))
running = 1

while running:
    event = pygame.event.poll()
    if event.type == pygame.QUIT:
        running = 0
    screen.fill((0,0,0))
    pygame.display.flip()



import pygame
pygame санг импортлож өгснөөр програмдаа ашиглах боломжтой болдог.


screen = pygame.display.set_mode((640,400))
640-ийн өргөн 400-н өндөртэй тоглоомын цонхыг үүсгэж байна. screen объект маань цонхыг төлөөлөх болно.

running = 1
running гэсэн хувьсагч зарлаад түүнд 1 гэсэн утга олгож байна. Энэ нь тоглоомыг мөнхөд циклдүүлэх нөхцөл болгох зорилготойгоор зарласан хувьсагч.

while running:
мөнхийн цикл эхлэж байна.


event = pygame.event.poll()
ямар нэгэн товчний үзэгдлийг болсон бол event-д утга нь оногдоно.

if event.type == pygame.QUIT:
     running = 0
QUIT буюу цонхны баруун дээд талын чагт товчийг дарагджуу үгүй юу жишиж байна. Аль нэг цикл дээрхи жишилтэд pygame.QUIT утгатай тэнцүү байвал running = 0 болгож байна. Хэрэв running = 1 байвал л дээрхи while мөнхийн цикл маань ажиллана. Тэхээр running = 0 болчихвол мөнхийн цикл зогсож програм маань дуусахнээ.

screen.fill((0,0,0))
дээр 640, 400-ийн хэмжээтэй цонхыг үүсгэсэн билээ. Одоо үүсгэсэн цонход ямар нэгэн хандалт хийвэл screen-тэй харилцах хэрэгтэй гэсэн үг. screen.fill() нь дэлгэцийг орж ирэх утгаар нь өнгөөр дүүргэх юм (0,0,0) гэдэг нь улаан ногоон хөх гэсэн өнгөний утгууд бөгөөд 0,0,0 гэсэн нь ямар ч өнгө холиогүй байгааг илтгэнэ өөрөөр хэлбэл дэлгэцийг хараар будна гэсэн. Хэрэв 0,256,0 гэж утгуудаа өгвөл дэлгэц нов ногоон өнгөтэй харагдана 0,0,256 гэвэл хөв хөх харагдана.

pygame.display.flip()
double buffering гэсэн ойлголт байдаг ба энэ нь танд график харуулахад хоёр ширхэг буферлэсэн график санах ойг ашигладаг гэсэн үг юм. Арын буферт элдэв зурах дүүргэх өнгө оноох гэх юмнуудаа хийж хийж байгаад болсоных нь дараа flip() хийвэл нүүрэн талын буюу жинхэнэ харагдах фрэймд арын буферийн утгуудыг хуулж өгдөг. Хэрэв double buffering хэрэглэхгүй бол тэр зурж буй үйлдлүүд мэдэгдэж танд үл ялиг анивчилт ажиглагдах боломжтой гэж үздэг.

screen.fill()-ийг 0,0,256 буюу хөв хөх байдалтайгаар харуулсан screenshot-ийг доор тавья.

No comments: