예제 #1
0
파일: A_Star.py 프로젝트: yash19970/Xomber-
    def getSurroundingTiles(base_node):

        array = (
            (base_node.number + N),
            (base_node.number + NE),
            (base_node.number + E),
            (base_node.number + SE),
            (base_node.number + S),
            (base_node.number + SW),
            (base_node.number + W),
            (base_node.number + NW),
        )

        tiles = []

        onn = base_node.number
        diagonals = [onn + NE, onn + NW, onn + SE, onn + SW]

        for tile_number in array:

            surroundingTile = Tile.getTile(tile_number)

            if tile_number not in range(1, Tile.totalTiles + 1):
                continue

            if surroundingTile.walkable and surroundingTile not in closedList:
                # tiles.append(surroundingTile) # Diagonal movement
                tiles = blocky(tiles, diagonals, surroundingTile)

        return tiles
예제 #2
0
 def spawn(totalFrames, FPS):
     if totalFrames % (FPS) == 0:
         if totalFrames % (FPS * 6) == 0:    
             r = randint(0,2)
             sound = [pygame.mixer.Sound('Audio/zs1.ogg'),
                     pygame.mixer.Sound('Audio/zs2.ogg'),
                     pygame.mixer.Sound('Audio/zs3.ogg')]
             sound = sound[ r ]
             sound.play()
         r = randint(0, len(Zombie.d) - 1)
         tile_num = Zombie.d[r]
         spawnNode = Tile.getTile(tile_num)
         Zombie(spawnNode.x, spawnNode.y)
예제 #3
0
 def getTile(self):
     return Tile.getTile(self.getNumber())
예제 #4
0
 def getTile(self):
     return Tile.getTile(self.getNumber())
예제 #5
0
def interaction(screen, survivor):


    for event in pygame.event.get():

        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

        if event.type == pygame.KEYDOWN:

            if event.key == pygame.K_e:
                survivor.current += 1
                survivor.current %= 3
                #always remains 0-2


    keys = pygame.key.get_pressed()



    if keys[pygame.K_w]: # North
        futureTileNumber = survivor.getNumber() - Tile.V
        if futureTileNumber in range(1, Tile.totalTiles + 1):
            futureTile = Tile.getTile(futureTileNumber)
            if futureTile.walkable:
                survivor.setTarget(futureTile)
                survivor.rotate('n')
                # survivor.y -= survivor.height                   

    if keys[pygame.K_s]: # South
        futureTileNumber = survivor.getNumber() + Tile.V
        if futureTileNumber in range(1, Tile.totalTiles + 1):
            futureTile = Tile.getTile(futureTileNumber)
            if futureTile.walkable:
                survivor.setTarget(futureTile)
                survivor.rotate('s')
                # survivor.y += survivor.height 

    if keys[pygame.K_a]: # West
        futureTileNumber = survivor.getNumber() - Tile.H

        if futureTileNumber in range(1, Tile.totalTiles + 1):
            futureTile = Tile.getTile(futureTileNumber)    
            if futureTile.walkable:
                survivor.setTarget(futureTile)
                survivor.rotate('w')
                # survivor.x -= survivor.width 

    if keys[pygame.K_d]: # East
        futureTileNumber = survivor.getNumber() + Tile.H
        if futureTileNumber in range(1, Tile.totalTiles + 1):
            futureTile = Tile.getTile(futureTileNumber)
            if futureTile.walkable:
                survivor.setTarget(futureTile)
                survivor.rotate('e')
                # survivor.x += survivor.width 

    if keys[pygame.K_LEFT]:
        survivor.rotate('w') #rorate west
        Bullet(survivor.centerx,survivor.centery, -10,0,'w',survivor.getBulletType())

    elif keys[pygame.K_RIGHT]:
        survivor.rotate('e')
        Bullet(survivor.centerx,survivor.centery, 10,0,'e',survivor.getBulletType())


    elif keys[pygame.K_UP]:
        survivor.rotate('n')
        Bullet(survivor.centerx,survivor.centery, 0,-10,'n',survivor.getBulletType())


    elif keys[pygame.K_DOWN]:
        survivor.rotate('s')
        Bullet(survivor.centerx,survivor.centery, 0,10,'s',survivor.getBulletType())