for event in pygame.event.get(): … if event.type == pygame.MOUSEBUTTONDOWN: if x1 <= event.pos[0] <= x1 + 50 and y1 <= event.pos[1] <= y1 + 50: # тінтуір көрсеткіші шаршыда орналасқан ба, тексереміз moving = True # көшіру режимін қосамыз x, y = event.pos[0] - x1, event.pos[1] - y1 # шаршының жоғарыдағы сол жақ бұрышына дейінгі қашықтықты анықтаймыз if event.type == pygame.MOUSEBUTTONUP: moving = False # батырманы босатамыз – қозғалыс тоқтайды if event.type == pygame.MOUSEMOTION: x1, y1 = event.pos[0] - x, event.pos[1] – y # шаршының жоғарыдағы сол жақ бұрышының координаттарын белгілейміз screen.fill(pygame.Color('black')) pygame.draw.rect(screen, (255, 0, 0), ((x1, y1), (50, 50))) pygame.display.flip() «Шарларды жару» ойыны
Ойынды іске қосыңыз:
1) Әр секунд сайын терезенің ені ауқымында кездейсоқ х координаталары және кездейсоқ түсі бар шар пайда болады. Шар ball_velocity жылдамдығымен төменге түседі.
2) Шарды салу параметрлері balls тізіміне кортеж арқылы жазылады (x, y, (red, green, blue), ball_radius).
3) Алаңда бірнеше шарлар болуы мүмкін болғандықтан, олардың әрқайсысының параметрлерін тексеру үшін циклде for ball in balls кортеждерін іріктейміз.
4) Тінтуір батырмасын басқан кезде, шарларға тигіздік пе, жоқ па, анықтау керек k = ((x - доп [0]) ** 2 + (y - доп [1]) ** 2) ** 0,5, егер тигізген болсақ, k <= ball_radius болуы керек және соққылардың саны артуы керек, егер тигізбеген болсақ, айыппұл – минус 1 ұпай.
5) Ойын барысында уақыт 50-ден 0-ге дейін кері саналады, нөлге жеткен кезде, ойын аяқталады.
031balls.py
4.3-ресурс
031balls.py
Ойын аяқталды ☺ Қорытындылау:
Мен нені білетін едім?
|
Не туралы білдім?
|
Нені өз тәжірибемде қолданатын боламын?
| | | | | | | | | |
Сұрақтар
Күтілетін нәтижелер
Екі есепті шығару немесе бір қарапайым ойын құрастыру
Достарыңызбен бөлісу: |