11. Создания игры турель 1 часть

Турель
искусственно полученная последовательность реализаций случайной величины с заданным законом распределения.
Построение турели
центр турели x0 , y0
башня circle(x0, y0, W/2)
пушка line(x0, y0, x1, y1)
основание rectangle(x0-W/2, y0-W/2, x0+W/2, y0+W/2)


from graph import *
import math
W = 30; L = 40 # размеры турели
x0 = 250; y0 = 300;
angle = 90 # пушка
brushColor("#7ed957")
rectangle(x0-W/2, y0-W/2, x0+W/2, y0+W/2)
a = angle*math.pi/180 # в радианы
x1 = x0+L*math.cos(a)
y1 = y0-L*math.sin(a)
penSize(5)
line(x0, y0, x1, y1)
penSize(1)
brushColor("#c9e265")
circle(x0, y0, W/2)
run()
Анимация поворота пушки
def keyPressed(event):
--if event.keycode == VK_LEFT:
----drawGun(angle+5) # влево на 5 градусов
--elif event.keycode == VK_RIGHT:
----drawGun(angle-5) # вправо на 5 градусов
--elif event.keycode == VK_ESCAPE:
----close()
...
onKey(keyPressed)


def drawGun(angleNew):
--global angle, gun # глобальные переменные
--angle = angleNew # запомнить новый угол
--aRad = angle*math.pi/180 # в радианы
--x1 = x0 + L*math.cos(aRad)
--y1 = y0 - L*math.sin(aRad)
--if gun == None: # если в первый раз...
----gun = line(x0, y0, x1, y1)
--else: # если пушка уже нарисована
----changeCoords(gun, [(x0,y0), (x1,y1)] )
...
gun=None
Программа поворота пушки
from graph import *
import math
def keyPressed(event):
...
def drawGun(angleNew):
...
H = 60; W = 30; L = 40
x0 = 200; y0 = 400; angle = 90
gun = None
brushColor("#7ed957")
rectangle(x0-W/2, y0-H/2, x0+W/2, y0+H/2)
penSize(5)
drawGun(angle)
penSize(1)
brushColor("#556b2f")
circle(x0, y0, W/2)
onKey(keyPressed)
run()