Пример #1
0
import math
from lib import filePath, contentLoader

ENTITIES = contentLoader.loadEntities()  #Enemies, Projectiles
orderOfEntities = {}
for key in ENTITIES[0]:  #Add Enemies
    orderOfEntities[key] = ENTITIES[0][key]
for key in ENTITIES[1]:  #Add Projectiles
    orderOfEntities[key] = ENTITIES[1][key]
ENTITIES = orderOfEntities
del orderOfEntities


class entity:
    def __init__(self, entityId, position=(0, 0, 0)):
        self.entityId = entityId
        #Server updates every 30 seconds
        self.tweenTime = 1000 / 30
        self.x, self.y, self.angle = position
        self.tweenStartX, self.tweenToX, self.tweenStartY = position
        self.tweenToY, self.tweenStartAngle, self.tweenToAngle = position
        self.animation = None
        self.updated = False

        self.movementSpeed = 40

    def getPosition(self):
        return self.x, self.y, self.angle

    def getUpdate(self):  #Only called by the server
        if self.updated:
Пример #2
0
}

reverseOpCodes = {  
}

for key in opCodes:
    reverse = opCodes[key]
    reverseOpCodes[reverse] = key

entityCodes = {
}

reverseEntityCodes = {
}

entities  = contentLoader.loadEntities()
orderOfEntities = []
for key in entities[0]: #Add Enemies
    length = len(entityCodes)
    entityCodes[key] = length
    reverseEntityCodes[length - 1] = key
for key in entities[1]: #Add Projectiles
    length = len(entityCodes)
    entityCodes[key] = length
    reverseEntityCodes[length - 1] = key

def packetUnpacker(packet):
    try:
        packet = json.loads(packet)
    except Exception as e:
        print(packet)
Пример #3
0
import math
import json
from lib import filePath, contentLoader

#Hosts the classes that define how the entities work
#Lists the AI's of enemeies
#Controls the change of states of enemies

#Constants
FILERETRACTS = 2
ENTITIES = contentLoader.loadEntities(
)  # A list in the order of enemies, projectiles
ABILITIES = contentLoader.loadAbilities()
for ability in ABILITIES:
    pass
    #print(ability)


def pointToPoint(xDif, yDif, angle):
    if yDif < 0:
        return math.pi / 2 - math.atan(xDif / yDif)
    else:
        if yDif != 0:
            return -math.pi / 2 - math.atan(xDif / yDif)
        else:
            return angle  #returned when angle can not be calculated

        #(-1*yDif/abs(yDif)) = math.atan(xDif/yDif) One line equation


class entity: