mirror of
https://github.com/LingDong-/Hermit.git
synced 2026-02-06 10:56:44 +00:00
52 lines
1.1 KiB
Python
52 lines
1.1 KiB
Python
import pygame
|
|
import sys
|
|
import math
|
|
import utilities as u
|
|
import copy
|
|
import random
|
|
import noise
|
|
|
|
pygame.init()
|
|
|
|
class Arrow():
|
|
def __init__(self,x,y):
|
|
self.color = (150,150,150)
|
|
self.x=x
|
|
self.y=y
|
|
self.l=20
|
|
self.a=0
|
|
self.spd=10
|
|
self.v=[self.spd,0]
|
|
self.g=0.2
|
|
#self.body = None
|
|
#self.state = 0
|
|
|
|
self.flicker = 1
|
|
def calcA(self):
|
|
return math.degrees(math.atan2(self.v[1],self.v[0]))
|
|
|
|
def calcV(self):
|
|
return [self.spd*math.cos(math.radians(self.a)), -self.spd*math.sin(math.radians(self.a))]
|
|
|
|
|
|
def calcHead(self):
|
|
return self.x+self.l*math.cos(math.radians(self.a)), self.y+self.l*math.sin(math.radians(self.a))
|
|
|
|
def calcFeather(self):
|
|
return self.x+self.l*0.3*math.cos(math.radians(self.a)), self.y+self.l*0.3*math.sin(math.radians(self.a))
|
|
|
|
|
|
def draw(self,surf):
|
|
u.line(surf,[245,245,245],[self.x,self.y],self.calcFeather(),3)
|
|
u.line(surf,self.color,[self.x,self.y],self.calcHead(),random.randrange(0,2)*self.flicker+1)
|
|
|
|
|
|
def fly(self):
|
|
self.a=self.calcA()
|
|
|
|
self.x += self.v[0]
|
|
self.y += self.v[1]
|
|
self.v[1]+=self.g
|
|
|
|
|