Processing math: 100%

Prijavi problem


Obeleži sve kategorije koje odgovaraju problemu

Još detalja - opišite nam problem


Uspešno ste prijavili problem!
Status problema i sve dodatne informacije možete pratiti klikom na link.
Nažalost nismo trenutno u mogućnosti da obradimo vaš zahtev.
Molimo vas da pokušate kasnije.

PyGame - догађаји

Питање 1.

Претпоставимо да смо дефинисали функцију obradi_dogadjaj и навели је у позиву функције pygamebg.frame_loop

def obradi_dogadjaj(dogadjaj):
    ...

pygamebg.frame_loop(30, nov_frejm, obradi_dogadjaj)

Означи тачна тврђења.

Q-319: Изабери тачан одговор:





Питање 2.

Нека је дат следећи програм.

import pygame as pg, pygamebg
prozor = pygamebg.open_window(300, 300, "")

def nov_frejm():
    pass

def obradi_dogadjaj(dogadjaj):
    if dogadjaj.type == pg.KEYDOWN:
        prozor.fill(pg.Color("white"))
        pg.draw.rect(prozor, pg.Color("yellow"), (50, 50, 200, 100))

pygamebg.frame_loop(30, nov_frejm, obradi_dogadjaj)

Означи тачна тврђења.

Q-320: Изабери тачан одговор:





Питање 3.

Ако држимо притиснут неки тастер тастатуре (и нисмо претходно мењали подразумевани начин генерисања догађаја тастатуре)

Q-321: Изабери тачан одговор:





Питање 4.

Који догађаји настају када „откуцамо” неко слово на тастатури?

Q-322: Изабери тачан одговор:






Питање 5.*

Ако је реакција на догађаје дефинисана наредним кодом, шта је потребно да корисник уради да би плави круг био видљив?

def obradi_dogadjaj(dogadjaj):
    if dogadjaj.type == pg.KEYDOWN:
        pg.draw.circle(prozor, pg.Color("blue"), (200, 200), 100)
    elif dogadjaj.type == pg.KEYUP:
        pg.draw.circle(prozor, pg.Color("red"), (200, 200), 100)

Q-323: Изабери тачан одговор:





Питање 6.*

Дата је функција за обраду догађаја:

def obradi_dogadjaj(dogadjaj):
    if dogadjaj.type == pg.KEYDOWN:
        pg.draw.circle(prozor, pg.Color("blue"), (200, 200), 100)
    pg.draw.circle(prozor, pg.Color("red"), (200, 200), 100)

Које тврђење је тачно?

Q-324: Изабери тачан одговор:





Питање 7.

Којим од понуђених линија кода се врши провера да ли је притиснут тастер слова A?

  1. if (dogadjaj.type == pygame.KEYDOWN) and (dogadjaj.key == pygame.K_a):
    
  2. if (dogadjaj.type == pygame.KEYDOWN) or (dogadjaj.key == pygame.K_a):
    
  3. if (dogadjaj.type == pygame.K_a):
    

Q-325: Изабери тачан одговор:





Питање 8.*

Означи које од наредби је потребно у PyGame програму навести да би током његовог извршавања догађај био исправно регистрован.

Q-326: Изабери тачан одговор:







Питање 9.

Догађај затварања прозора је у PyGame библиотеци означен са:

Q-327: Изабери тачан одговор:





Питање 10.

Позивом функције pygame.event.wait() се зауставља рад програма на 1 секунду.

Q-328: Изабери тачан одговор:




Питање 11.

Функција pygame.event.wait() враћа информацију о томе који се догађај десио.

Q-329: Изабери тачан одговор:




Питање 12.

Уколико се до позива функције pygame.event.wait() десило више догађаја који нису обрађени функција ће вратити информацију о последњем.

Q-330: Изабери тачан одговор:




Питање 13.

Уколико у тренутку позива pygame.event.wait() нема необрађених догађаја функција даје поруку о грешци.

Q-331: Изабери тачан одговор:




Питање 14.

Уколико у тренутку позива pygame.event.wait() нема необрађених догађаја рад програма се зауставља до првог наредног догађаја.

Q-332: Изабери тачан одговор:




Питање 15.**

Који од програма ће при покретању радити све док корисник не затвори прозор?

  1. import pygame as pg
    pg.init()
    prozor = pg.display.set_mode((300, 300))
    prozor.fill(pg.Color("white"))
    pg.draw.rect(prozor, pg.Color("red"), (50, 50, 200, 100))
    pg.display.update()
    pg.quit()
    
  2. import pygame as pg
    pg.init()
    prozor = pg.display.set_mode((300, 300))
    prozor.fill(pg.Color("white"))
    pg.draw.rect(prozor, pg.Color("red"), (50, 50, 200, 100))
    pg.display.update()
    while pg.event.wait().type == pg.QUIT:
      pass
    pg.quit()
    
  3. import pygame as pg
    pg.init()
    prozor = pg.display.set_mode((300, 300))
    prozor.fill(pg.Color("white"))
    pg.draw.rect(prozor, pg.Color("red"), (50, 50, 200, 100))
    pg.display.update()
    if pg.event.wait().type != pg.QUIT:
      pass
    
  4. import pygame as pg
    pg.init()
    prozor = pg.display.set_mode((300, 300))
    prozor.fill(pg.Color("white"))
    pg.draw.rect(prozor, pg.Color("red"), (50, 50, 200, 100))
    pg.display.update()
    while pg.event.wait().type != pg.QUIT:
      pass
    pg.quit()
    

Q-333: Изабери тачан одговор:






Питање 16.*

Следећа недовршена функција за обраду догађаја треба да провери да ли је кликнуто мишем на правоугаону слику димензија w_sl x h_sl, са горњим левим теменом у тачки (x_sl, y_sl).

def obradi_dogadjaj(dogadjaj):
    global __________ # А
    if dogadjaj.type == __________: # B
        x_mis, y_mis = __________ # C
        if (x_sl < x_mis and x_mis < x_sl + w_sl and
                __________): # D
            kliknuto_na_sliku = True

Делови који недостају функцији су набројани у наставку. Упиши редне бројеве делова који недостају функцији у редоследу у ком их треба убацити на места A, B, C, D редом (дакле, прво редни број дела који треба убацити на место A, итд.)

  1. pg.MOUSEBUTTONDOWN
    
  2. y_sl < y_mis and y_mis < y_sl + h_sl
    
  3. kliknuto_na_sliku
    
  4. dogadjaj.pos
    

Одговор:




Питање 17.*

Нека je sl слика коју програм у сваком фрејму приказује на позицији (x_sl, y_sl), а w_sl и h_sl нека су редом ширина и висина те слике.

def nov_frejm():
    prozor.fill(pg.Color("skyblue"))
    prozor.blit(sl, (x_sl, x_sl))

Шта нам омогућава следећа функција за обраду догађаја?

def obradi_dogadjaj(dogadjaj):
    global x_sl, y_sl, w_sl, h_sl, pr
    if dogadjaj.type == pg.MOUSEBUTTONDOWN:
        x_mis, y_mis = dogadjaj.pos
        if (x_sl < x_mis and x_mis < x_sl + w_sl and
                y_sl < y_mis and y_mis < y_sl + h_sl):
            pr = True
    elif dogadjaj.type == pg.MOUSEBUTTONUP:
        pr = False
    elif dogadjaj.type == pg.MOUSEMOTION:
        if pr:
            x_sl = x_mis - w_sl // 2
            y_sl = y_mis - h_sl // 2

Q-334: Изабери тачан одговор: