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.

Шта је резултат извршавања следеће наредбе?

pygame.time.wait(1)

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





Питање 2.

Приказивање 20 фрејмова по секунди (20 fps) значи да сваки фрејм траје

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






Питање 3.

Ако задамо да се приказује 1000 фрејмова по секунди, а наш рачунар може да прикаже 50 фрејмова по секунди

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






Питање 4.

Ако функција novi_frejm изгледа овако:

def novi_frejm():
    global x
    y += 1
    prozor.fill(pg.Color("white"))
    pg.draw.circle(prozor, pg.Color("red"), (x, y), 30)

Црвени круг се у сваком фрејму помера

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






Питање 5.

Дат је део програма којим се анимира кретање црвеног круга

def novi_frejm():
    global x
    x += 3
    prozor.fill(pg.Color("white"))
    pg.draw.circle(prozor, pg.Color("red"), (x, y), 30)

pygamebg.frame_loop(20, novi_frejm)

Којом брзином се помера круг по екрану?

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






Питање 6.

У којем од два дата програмска сегмента се круг брже креће по екрану (у пикселима по секунди)?

  1. def novi_frejm():
        global x
        x += 5
        prozor.fill(pg.Color("white"))
        pg.draw.circle(prozor, pg.Color("red"), (x, y), 30)
    
    pygamebg.frame_loop(10, novi_frejm)
    
  2. def novi_frejm():
        global x
        x += 1
        prozor.fill(pg.Color("white"))
        pg.draw.circle(prozor, pg.Color("red"), (x, y), 30)
    
    pygamebg.frame_loop(50, novi_frejm)
    

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






Питање 7.

Дата је функција nov_frejm, која се позива одређени број пута у секунди и анимира кретање n кругова (изостављена је иницијализација глобалних података, али треба претпоставити да су сви подаци на почетку различити).

def nov_frejm():
    global x, y
    prozor.fill(pg.Color("white"))
    for i in range(n):
        x[i] += dx
        y[i] += dy
        pg.draw.circle(prozor, pg.Color("red"), (x[i], y[i]), r[i])

Која од наредних тврђења су тачна за ову функцију?

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






Питање 8.

Шта је резултат извршавања следећег програма?

import pygame as pg, pygamebg
prozor = pygamebg.open_window(200,200, "")
a = 20
def nov_frejm():
    global a
    prozor.fill(pg.Color("white"))
    pg.draw.circle(prozor, pg.Color("red"), (100, 100), a)
    a = a + 10
pygamebg.frame_loop(10, nov_frejm)

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






Питање 9.*

Шта је резултат извршавања следећег програма?

import pygame as pg, pygamebg
prozor = pygamebg.open_window(200,200, "")
def nov_frejm():
    global x, y
    prozor.fill(pg.Color("white"))
    pg.draw.rect(prozor, pg.Color("red"), (x, 50, a, a))
    x += dx
    y += dy

a = 50
x, y = 0, 50
dx, dy = -10, 0
pygamebg.frame_loop(10, nov_frejm)

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






Питање 10.*

Дата је функција nov_frejm, која се позива одређени број пута у секунди и анимира кретање n кругова (изостављена је иницијализација глобалних података, али треба претпоставити да су сви подаци на почетку различити). Сваки елемент листе krugovi је торка која описује један круг.

def nov_frejm():
    global krugovi
    prozor.fill(pg.Color("white"))
    for i in range(n):
        x, y, dx, dy, boja, r = krugovi[i]
        x += dx
        y += dy
        krugovi[i] = (x, y, dx, dy, boja, r)
        pg.draw.circle(prozor, boja, (x, y), r)

Која од наредних тврђења су тачна за ову функцију?

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






Питање 11.

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

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







Питање 12.*

Како треба допунити if наредбу у програму, да би се извршавањем тог програма приказивао квадрат који се креће с лева на десно, а у тренутку када више не би био у целости видљив, поново се појављује на почетној позицији и наставља да се креће на исти начин?

import pygame as pg, pygamebg
(sirina, visina) = (200, 200)
prozor = pygamebg.open_window(sirina, visina, "")
pocetna = 100
x = pocetna
def nov_frejm():
    global x
    if _____________________:
        x = x + 2
    else:
        x = pocetna
    prozor.fill(pg.Color("white"))
    pg.draw.rect(prozor, pg.Color("red"), (x, 100, 100, 100))
pygamebg.frame_loop(10, nov_frejm)

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






Питање 13.*

Како треба допунити if наредбу у програму, да би се извршавањем тог програма приказивао круг који се креће с лева на десно, а у тренутку када више ни један део круга не би био видљив, круг се поново појављује на почетној позицији и наставља да се креће на исти начин?

import pygame as pg, pygamebg
(sirina, visina) = (200, 200)
prozor = pygamebg.open_window(sirina, visina, "")
pocetna = 100
a = pocetna
def nov_frejm():
    global a
    if _____________________:
        x = x + 5
    else:
        x = pocetna
    prozor.fill(pg.Color("white"))
    pg.draw.circle(prozor, pg.Color("red"), (a, 100), 150)
pygamebg.frame_loop(10, nov_frejm)

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






Питање 14.

Нека се круг полупречника r са центром у (x, y) помера за по dy пиксела на горе. Услов да је цео круг прошао кроз горњу ивицу екрана гласи:

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






Питање 15.

Нека су димензије дате слике sl_sirina и sl_visina, а њен горњи леви угао (x, y). Како проверавамо да ли је слика у потпуности прошла кроз леву ивицу прозора и више се не види ни један њен део?

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






Питање 16.*

Шта треба уписати на означено место у програму, да би његовим извршавањем био приказиван круг који се креће лево-десно одбијајући се о ивице прозора?

import pygame as pg, pygamebg

(sirina, visina) = (200, 100)
prozor = pygamebg.open_window(sirina, visina, "pygame")
x, y, dx, r = 30, 50, 2, 30

def nov_frejm():
    global x, dx
    if x > sirina-r or x < r:
        ______________

    x = x + dx
    prozor.fill(pg.Color("skyblue"))
    pg.draw.circle(prozor, pg.Color("yellow"), (x, y), r)

pygamebg.frame_loop(50, nov_frejm)

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






Питање 17.*

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

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







Питање 18.*

Следећи недовршени програм треба сваке секунде да промени боју позадине прозора.

import pygame as pg, random
pg.init()
prozor = pg.display.set_mode((200,200))

def nasumicna_boja():
  return (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))

pg.time.set_timer(pg.USEREVENT,1000)

kraj = False
treba_crtati = True
while not kraj:
  if treba_crtati:
    prozor.fill(nasumicna_boja())
    ___________
  dogadjaj = pg.event.wait()
  if dogadjaj.type == pg.QUIT:
    kraj = True
  elif dogadjaj.type == pg.USEREVENT:
    treba_crtati = True

pg.quit()

Које од наредних команди и у ком редоследу треба додати на означено место да би програм радио како је очекивано?

  1. pg.display.update()
    
  2. treba_crtati = True
    
  3. treba_crtati = False
    

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







Питање 19.**

Овај програм треба допунити тако да наизменично црта црвени и жути круг. Недостаје иницијализација и функција nov_frejm

import pygame as pg, pygamebg

(sirina, visina) = (200, 200)
prozor = pygamebg.open_window(sirina, visina, "pygame")

# ... убацити шта недостаје

pygamebg.frame_loop(1, nov_frejm)

Које од следећа 4 програмска сегмента можемо да убацимо на означено место, да би програм радио према очекивању?

  1. boja = pg.Color("red")
    
    def nov_frejm():
        global boja
        prozor.fill(pg.Color("skyblue"))
        if boja == pg.Color("red"):
            boja = pg.Color("yellow")
        else:
            boja = pg.Color("red")
        pg.draw.circle(prozor, boja, (100, 100), 50)
    
  2. i = 0
    boja = [pg.Color("red"), pg.Color("yellow")]
    
    def nov_frejm():
        global i
        prozor.fill(pg.Color("skyblue"))
        pg.draw.circle(prozor, boja[i], (100, 100), 50)
        i = 1 - i
    
  3. crveni = True
    
    def nov_frejm():
        global crveni
        prozor.fill(pg.Color("skyblue"))
        if crveni:
            pg.draw.circle(prozor, pg.Color("red"), (100, 100), 50)
        else:
            pg.draw.circle(prozor, pg.Color("yellow"), (100, 100), 50)
        crveni = not crveni
    
  4. boja = 1
    
    def nov_frejm():
        global boja
        prozor.fill(pg.Color("skyblue"))
        if boja == 0:
            pg.draw.circle(prozor, pg.Color("red"), (100, 100), 50)
            boja = 1
        else:
            pg.draw.circle(prozor, pg.Color("yellow"), (100, 100), 50)
            boja = 0
    

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






Питање 20.**

Следећи прогрм треба да сваке секунде насумично промени боју позадине

import pygame as pg, random
pg.init()
prozor = pg.display.set_mode((200,200))

def nasumicna_boja():
  return (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))

pg.time.set_timer(pg.USEREVENT,1000)

kraj = False
treba_crtati = True
while not kraj:
  if treba_crtati:
    prozor.fill(nasumicna_boja())
    pg.display.update()
    treba_crtati = False
  dogadjaj = pg.event.wait()
  # ....

pg.quit()

Предложене су две допуне програма на месту тачкица:

  1. if dogadjaj.type == pg.QUIT:
      kraj = True
    elif dogadjaj.type == pg.USEREVENT:
      treba_crtati = True
    
  2. if dogadjaj.type == pg.USEREVENT:
      treba_crtati = True
    elif dogadjaj.type == pg.QUIT:
      kraj = True
    

Дате допуне програма се разликују у редоследу испитивања да ли је неки догађај наступио.

Да ли се за један исти редослед одигравања догађаја тајмера и затварања прозора може десити да се две верзије програма различито понашају?

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