Задача 6
Создать код с вылетом круга-снаряда из другого угла графического окна.
Задача 7
Создать код в котором круг-мишень вылетает несколько раз (в цикле)
ИЗ ЭТОГО КОДА :
Игра «Подбить круг»
Код игры
from graphics import *
import time
import math
from random import randrange
class movingCircle():
def __init__(self,center,r,win,color):
self.center = center
self.r=r
self.krug=Circle(
self.center,self.r)
self.krug.setFill(color)
self.Cx=
self.center.getX()
self.Cy=
self.center.getY()
self.krug.draw(win)
def movePix(self,dx,dy):
self.krug.move(dx, dy)
self.Cx+=dx
self.Cy+=dy
time.sleep(0.01) #задержка исполнения кода (в секундах)
def CrashBy(self,another):
dist=math.sqrt((
self.Cx-another.Cx)**2+ \
(
self.Cy-another.Cy)**2)
if dist< self.r:
self.krug.undraw() #удаление круга-мишени
size = 300
r=20
win=GraphWin('fight',size,size) #Задаем графическое окно
win.setBackground("white") #Задаем цвет графического окна
x=randrange(r*4,size-r) #задаем случайную х-координату круга-мишени
p1=Point(x,0) #задаем центр круга-мишени
p2=Point(0,0) #задаем центр круга-снаряда
kr1=movingCircle(p1,r,win,'red') #создаем оба круга
kr2=movingCircle(p2,10,win,'black')
pusk=0 #переменная pusk изменяет свое значение на 1
for i in range(size): #при клике мышки по окну (win.checkMouse()
kr1.movePix(0, 1) # возвращает точку-Point(x,y) клика или None)
if pusk==0 and win.checkMouse()!=None: #и снаряд начинает движение
pusk=1
if pusk==1:
kr2.movePix(2, 2)
kr1.CrashBy(kr2)
win.getMouse()