mirror of
https://github.com/Project-Redacted/Gayme.git
synced 2025-05-14 06:52:16 +00:00
Fix Crash on Pathfinding error
This commit is contained in:
parent
41a0ec665b
commit
760b29a761
4 changed files with 15 additions and 13 deletions
|
@ -1,5 +1,4 @@
|
||||||
import pygame as pg
|
import pygame as pg
|
||||||
import sys
|
|
||||||
from settings import *
|
from settings import *
|
||||||
from map import *
|
from map import *
|
||||||
from player import *
|
from player import *
|
|
@ -28,7 +28,7 @@ class ObjectHandler:
|
||||||
|
|
||||||
# NPC Map
|
# NPC Map
|
||||||
#add_npc(NPC(game))
|
#add_npc(NPC(game))
|
||||||
add_npc(NPC(game, path=self.npc_sprite_path + 'baller/0.png', pos=(14.5, 5.5), scale=0.6, shift=0.38))
|
add_npc(NPC(game, path=self.npc_sprite_path + 'baller/0.png', pos=(5, 18), scale=0.6, shift=0.38))
|
||||||
|
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
|
|
|
@ -23,17 +23,20 @@ class PathFinding:
|
||||||
queue = deque([start])
|
queue = deque([start])
|
||||||
visited = {start: None}
|
visited = {start: None}
|
||||||
|
|
||||||
while queue:
|
try:
|
||||||
cur_node = queue.popleft()
|
while queue:
|
||||||
if cur_node == goal:
|
cur_node = queue.popleft()
|
||||||
break
|
if cur_node == goal:
|
||||||
next_nodes = graph[cur_node]
|
break
|
||||||
|
next_nodes = graph[cur_node]
|
||||||
|
|
||||||
for next_node in next_nodes:
|
for next_node in next_nodes:
|
||||||
if next_node not in visited and next_node not in self.game.object_handler.npc_positions:
|
if next_node not in visited and next_node not in self.game.object_handler.npc_positions:
|
||||||
queue.append(next_node)
|
queue.append(next_node)
|
||||||
visited[next_node] = cur_node
|
visited[next_node] = cur_node
|
||||||
return visited
|
return visited
|
||||||
|
except KeyError:
|
||||||
|
return visited
|
||||||
|
|
||||||
def get_next_nodes(self, x, y):
|
def get_next_nodes(self, x, y):
|
||||||
return [(x + dx, y + dy) for dx, dy in self.ways if (x + dx, y + dy) not in self.game.map.world_map]
|
return [(x + dx, y + dy) for dx, dy in self.ways if (x + dx, y + dy) not in self.game.map.world_map]
|
||||||
|
|
|
@ -7,7 +7,7 @@ HALF_WIDTH = WIDTH // 2
|
||||||
HALF_HEIGHT = HEIGHT // 2
|
HALF_HEIGHT = HEIGHT // 2
|
||||||
FPS = 0 # 0 = unlimited
|
FPS = 0 # 0 = unlimited
|
||||||
|
|
||||||
PLAYER_POS = 1.5, 5 # player position on the map
|
PLAYER_POS = 5, 18 # player position on the map
|
||||||
PLAYER_ROT = 0
|
PLAYER_ROT = 0
|
||||||
PLAYER_SPEED = 0.002 # player speed
|
PLAYER_SPEED = 0.002 # player speed
|
||||||
PLAYER_ROT_SPEED = 0.003 # player rotation speed
|
PLAYER_ROT_SPEED = 0.003 # player rotation speed
|
||||||
|
|
Loading…
Add table
Reference in a new issue