d
This commit is contained in:
@@ -8,7 +8,8 @@ windowTitle = Прототип: Отель
|
||||
windowWidth = 900
|
||||
|
||||
[player]
|
||||
base = 25
|
||||
base = 75
|
||||
left = 50
|
||||
texture = stub
|
||||
visible = true
|
||||
|
||||
|
||||
1
main.py
1
main.py
@@ -44,6 +44,7 @@ def process(c):
|
||||
# Perform context dependent calls of desktop functions.
|
||||
# Similar to context functions, but no platform is returned.
|
||||
desktop_applyConfigInit(p)
|
||||
desktop_createConfigPlayerSprites(p)
|
||||
desktop_createConfigStaticSprites(p)
|
||||
desktop_loadConfigTextures(p)
|
||||
ctrl.registerCallback(process)
|
||||
|
||||
@@ -18,6 +18,26 @@ def desktop_applyConfigInit(p):
|
||||
value = desktop_aux_convertValue(val)
|
||||
p.ctrl.set(key, value)
|
||||
|
||||
# Create player sprites
|
||||
#
|
||||
# Conditions:
|
||||
# 1. Config textures has just been loaded
|
||||
def desktop_createConfigPlayerSprites(p):
|
||||
if (
|
||||
p.c.recentField != "didLoadConfigTextures"
|
||||
):
|
||||
return
|
||||
|
||||
for key in p.c.cfgTree:
|
||||
if (
|
||||
key == "player"
|
||||
):
|
||||
sprite = desktop_aux_createPlayerSprite(p, key, p.c.cfgTree[key])
|
||||
p.player = sprite
|
||||
p.playerSprites.append(sprite)
|
||||
# Report finish.
|
||||
p.ctrl.set("didCreateConfigPlayerSprites", True)
|
||||
|
||||
# Create static sprites
|
||||
#
|
||||
# Conditions:
|
||||
|
||||
@@ -4,6 +4,8 @@ class desktop_Platform:
|
||||
def __init__(self):
|
||||
self.c = None
|
||||
self.ctrl = None
|
||||
self.player = None
|
||||
self.statics = {}
|
||||
self.playerSprites = arcade.SpriteList()
|
||||
self.staticSprites = arcade.SpriteList()
|
||||
self.textures = {}
|
||||
|
||||
@@ -14,6 +14,7 @@ class desktop_Window(arcade.Window):
|
||||
def on_draw(self):
|
||||
arcade.start_render()
|
||||
self.p.staticSprites.draw()
|
||||
self.p.playerSprites.draw()
|
||||
|
||||
def on_mouse_press(self, x, y, button, key_modifiers):
|
||||
print("mouse press:", x, y)
|
||||
|
||||
@@ -23,6 +23,23 @@ def desktop_aux_convertValue(
|
||||
# String.
|
||||
return value
|
||||
|
||||
def desktop_aux_createPlayerSprite(
|
||||
p: desktop_Platform,
|
||||
name: str,
|
||||
desc: dict[str, str]
|
||||
):
|
||||
sp = arcade.Sprite()
|
||||
sp.guid = name
|
||||
texName = desc["texture"]
|
||||
sp.texture = p.textures[texName]
|
||||
# Position.
|
||||
sp.left = float(desc["left"])
|
||||
sp.top = float(desc["base"])
|
||||
# Visibility.
|
||||
sp.visible = True if desc["visible"] == "true" else False
|
||||
|
||||
return sp
|
||||
|
||||
def desktop_aux_createStaticSprite(
|
||||
p: desktop_Platform,
|
||||
name: str,
|
||||
|
||||
@@ -4,6 +4,7 @@ class ht_Context:
|
||||
self.cfgDir = None
|
||||
self.cfgPath = None
|
||||
self.cfgTree = {}
|
||||
self.didCreateConfigPlayerSprites = False
|
||||
self.didCreateConfigStaticSprites = False
|
||||
self.didLaunch = False
|
||||
self.didLoadConfigTextures = False
|
||||
|
||||
Reference in New Issue
Block a user