update tests: new scene API
This commit is contained in:
parent
f62362032e
commit
838da4571d
142 changed files with 616 additions and 601 deletions
|
|
@ -21,11 +21,11 @@ import sys
|
|||
import random
|
||||
|
||||
# Create the benchmark scene
|
||||
mcrfpy.createScene("benchmark")
|
||||
mcrfpy.setScene("benchmark")
|
||||
benchmark = mcrfpy.Scene("benchmark")
|
||||
benchmark.activate()
|
||||
|
||||
# Get scene UI
|
||||
ui = mcrfpy.sceneUI("benchmark")
|
||||
ui = benchmark.children
|
||||
|
||||
# Create a 100x100 grid
|
||||
grid = mcrfpy.Grid(
|
||||
|
|
@ -94,7 +94,7 @@ def handle_key(key, state):
|
|||
print("\nBenchmark ended by user")
|
||||
sys.exit(0)
|
||||
|
||||
mcrfpy.keypressScene(handle_key)
|
||||
benchmark.on_key = handle_key
|
||||
|
||||
# Update entity positions
|
||||
def update_entities(ms):
|
||||
|
|
|
|||
|
|
@ -158,14 +158,14 @@ def run_next_scenario():
|
|||
|
||||
def setup_empty_scene():
|
||||
"""Scenario 1: Empty scene - pure engine overhead."""
|
||||
mcrfpy.createScene("bench_empty")
|
||||
mcrfpy.setScene("bench_empty")
|
||||
bench_empty = mcrfpy.Scene("bench_empty")
|
||||
bench_empty.activate()
|
||||
|
||||
|
||||
def setup_static_100():
|
||||
"""Scenario 2: 100 static frames - best case for caching."""
|
||||
mcrfpy.createScene("bench_static")
|
||||
ui = mcrfpy.sceneUI("bench_static")
|
||||
bench_static = mcrfpy.Scene("bench_static")
|
||||
ui = bench_static.children
|
||||
|
||||
# Create 100 frames in a 10x10 grid
|
||||
for i in range(100):
|
||||
|
|
@ -183,13 +183,13 @@ def setup_static_100():
|
|||
|
||||
ui.append(frame)
|
||||
|
||||
mcrfpy.setScene("bench_static")
|
||||
bench_static.activate()
|
||||
|
||||
|
||||
def setup_animated_100():
|
||||
"""Scenario 3: 100 frames all animating - worst case for caching."""
|
||||
mcrfpy.createScene("bench_animated")
|
||||
ui = mcrfpy.sceneUI("bench_animated")
|
||||
bench_animated = mcrfpy.Scene("bench_animated")
|
||||
ui = bench_animated.children
|
||||
|
||||
frames = []
|
||||
for i in range(100):
|
||||
|
|
@ -200,7 +200,7 @@ def setup_animated_100():
|
|||
frames.append(frame)
|
||||
ui.append(frame)
|
||||
|
||||
mcrfpy.setScene("bench_animated")
|
||||
bench_animated.activate()
|
||||
|
||||
# Start animations on all frames (color animation = content change)
|
||||
for i, frame in enumerate(frames):
|
||||
|
|
@ -212,8 +212,8 @@ def setup_animated_100():
|
|||
|
||||
def setup_mixed_100():
|
||||
"""Scenario 4: 100 frames, only 10 animating - realistic case."""
|
||||
mcrfpy.createScene("bench_mixed")
|
||||
ui = mcrfpy.sceneUI("bench_mixed")
|
||||
bench_mixed = mcrfpy.Scene("bench_mixed")
|
||||
ui = bench_mixed.children
|
||||
|
||||
frames = []
|
||||
for i in range(100):
|
||||
|
|
@ -224,7 +224,7 @@ def setup_mixed_100():
|
|||
frames.append(frame)
|
||||
ui.append(frame)
|
||||
|
||||
mcrfpy.setScene("bench_mixed")
|
||||
bench_mixed.activate()
|
||||
|
||||
# Animate only 10 frames (every 10th)
|
||||
for i in range(0, 100, 10):
|
||||
|
|
@ -235,8 +235,8 @@ def setup_mixed_100():
|
|||
|
||||
def setup_deep_hierarchy():
|
||||
"""Scenario 5: 5 levels of nesting - test dirty flag propagation cost."""
|
||||
mcrfpy.createScene("bench_deep")
|
||||
ui = mcrfpy.sceneUI("bench_deep")
|
||||
bench_deep = mcrfpy.Scene("bench_deep")
|
||||
ui = bench_deep.children
|
||||
|
||||
# Create 10 trees, each with 5 levels of nesting
|
||||
deepest_frames = []
|
||||
|
|
@ -263,7 +263,7 @@ def setup_deep_hierarchy():
|
|||
if level == 4: # Deepest level
|
||||
deepest_frames.append(frame)
|
||||
|
||||
mcrfpy.setScene("bench_deep")
|
||||
bench_deep.activate()
|
||||
|
||||
# Animate the deepest frames - tests propagation up the hierarchy
|
||||
for frame in deepest_frames:
|
||||
|
|
@ -273,8 +273,8 @@ def setup_deep_hierarchy():
|
|||
|
||||
def setup_grid_stress():
|
||||
"""Scenario 6: Large grid with entities - known performance bottleneck."""
|
||||
mcrfpy.createScene("bench_grid")
|
||||
ui = mcrfpy.sceneUI("bench_grid")
|
||||
bench_grid = mcrfpy.Scene("bench_grid")
|
||||
ui = bench_grid.children
|
||||
|
||||
# Create a 50x50 grid (2500 cells)
|
||||
grid = mcrfpy.Grid(grid_size=(50, 50), pos=(50, 50), size=(700, 700))
|
||||
|
|
@ -303,7 +303,7 @@ def setup_grid_stress():
|
|||
except Exception as e:
|
||||
print(f" Note: Could not create entities: {e}")
|
||||
|
||||
mcrfpy.setScene("bench_grid")
|
||||
bench_grid.activate()
|
||||
|
||||
|
||||
# ============================================================================
|
||||
|
|
|
|||
|
|
@ -24,13 +24,14 @@ import random
|
|||
|
||||
# Configuration
|
||||
# Use smaller grid for denser entity distribution (more realistic visibility tests)
|
||||
GRID_SIZE = (100, 100) # 10,000 cells - entities will actually see each other
|
||||
#GRID_SIZE = (100, 100) # 10,000 cells - entities will actually see each other
|
||||
GRID_SIZE = (1250, 1250)
|
||||
|
||||
# Full suite - may timeout on large counts due to O(n²) visibility
|
||||
# ENTITY_COUNTS = [100, 500, 1000, 2500, 5000, 10000]
|
||||
|
||||
# Extended suite to validate scalability (on 100x100 grid)
|
||||
ENTITY_COUNTS = [100, 500, 1000, 2000, 5000]
|
||||
ENTITY_COUNTS = [100, 500, 1000, 5000]
|
||||
QUERY_RADIUS = 15 # Smaller radius for smaller grid
|
||||
MOVEMENT_PERCENT = 0.10 # 10% of entities move each frame
|
||||
N2N_SAMPLE_SIZE = 50 # Sample size for N×N visibility test
|
||||
|
|
@ -44,11 +45,12 @@ def setup_grid_with_entities(n_entities):
|
|||
global texture
|
||||
|
||||
scene_name = f"bench_{n_entities}"
|
||||
mcrfpy.createScene(scene_name)
|
||||
ui = mcrfpy.sceneUI(scene_name)
|
||||
_scene = mcrfpy.Scene(scene_name)
|
||||
ui = _scene.children
|
||||
|
||||
# Create grid - minimal rendering size since we're testing entity operations
|
||||
grid = mcrfpy.Grid(grid_size=GRID_SIZE, pos=(0, 0), size=(100, 100))
|
||||
#grid = mcrfpy.Grid(grid_size=GRID_SIZE, pos=(0, 0), size=(100, 100))
|
||||
grid = mcrfpy.Grid(grid_size=GRID_SIZE, pos=(0, 0), size=(1024, 768))
|
||||
ui.append(grid)
|
||||
|
||||
# Load texture once
|
||||
|
|
@ -66,7 +68,7 @@ def setup_grid_with_entities(n_entities):
|
|||
entity = mcrfpy.Entity((x, y), texture, 0, grid)
|
||||
grid.entities.append(entity)
|
||||
|
||||
mcrfpy.setScene(scene_name)
|
||||
mcrfpy.current_scene = scene_name
|
||||
return grid, scene_name
|
||||
|
||||
|
||||
|
|
@ -75,8 +77,8 @@ def benchmark_creation(n_entities):
|
|||
global texture
|
||||
|
||||
scene_name = "bench_create_test"
|
||||
mcrfpy.createScene(scene_name)
|
||||
ui = mcrfpy.sceneUI(scene_name)
|
||||
_scene = mcrfpy.Scene(scene_name)
|
||||
ui = _scene.children
|
||||
|
||||
grid = mcrfpy.Grid(grid_size=GRID_SIZE, pos=(0, 0), size=(100, 100))
|
||||
ui.append(grid)
|
||||
|
|
|
|||
|
|
@ -99,8 +99,8 @@ def run_next_test():
|
|||
|
||||
def setup_base_layer_static():
|
||||
"""ColorLayer with per-cell set() calls - static after initial fill."""
|
||||
mcrfpy.createScene("test_base_static")
|
||||
ui = mcrfpy.sceneUI("test_base_static")
|
||||
test_base_static = mcrfpy.Scene("test_base_static")
|
||||
ui = test_base_static.children
|
||||
|
||||
grid = mcrfpy.Grid(grid_size=(GRID_SIZE, GRID_SIZE),
|
||||
pos=(10, 10), size=(600, 600))
|
||||
|
|
@ -112,13 +112,13 @@ def setup_base_layer_static():
|
|||
for x in range(GRID_SIZE):
|
||||
layer.set(x, y, mcrfpy.Color((x * 2) % 256, (y * 2) % 256, 128, 255))
|
||||
|
||||
mcrfpy.setScene("test_base_static")
|
||||
test_base_static.activate()
|
||||
|
||||
|
||||
def setup_base_layer_modified():
|
||||
"""ColorLayer with single cell modified each frame - tests dirty flag."""
|
||||
mcrfpy.createScene("test_base_mod")
|
||||
ui = mcrfpy.sceneUI("test_base_mod")
|
||||
test_base_mod = mcrfpy.Scene("test_base_mod")
|
||||
ui = test_base_mod.children
|
||||
|
||||
grid = mcrfpy.Grid(grid_size=(GRID_SIZE, GRID_SIZE),
|
||||
pos=(10, 10), size=(600, 600))
|
||||
|
|
@ -136,14 +136,14 @@ def setup_base_layer_modified():
|
|||
layer.set(x, y, mcrfpy.Color(255, 0, 0, 255))
|
||||
mod_counter[0] += 1
|
||||
|
||||
mcrfpy.setScene("test_base_mod")
|
||||
test_base_mod.activate()
|
||||
mcrfpy.setTimer("modify", modify_cell, 1)
|
||||
|
||||
|
||||
def setup_color_layer_static():
|
||||
"""New ColorLayer with dirty flag caching - static after fill."""
|
||||
mcrfpy.createScene("test_color_static")
|
||||
ui = mcrfpy.sceneUI("test_color_static")
|
||||
test_color_static = mcrfpy.Scene("test_color_static")
|
||||
ui = test_color_static.children
|
||||
|
||||
grid = mcrfpy.Grid(grid_size=(GRID_SIZE, GRID_SIZE),
|
||||
pos=(10, 10), size=(600, 600))
|
||||
|
|
@ -153,13 +153,13 @@ def setup_color_layer_static():
|
|||
layer = grid.add_layer("color", z_index=-1)
|
||||
layer.fill(mcrfpy.Color(100, 150, 200, 128))
|
||||
|
||||
mcrfpy.setScene("test_color_static")
|
||||
test_color_static.activate()
|
||||
|
||||
|
||||
def setup_color_layer_modified():
|
||||
"""ColorLayer with single cell modified each frame - tests dirty flag."""
|
||||
mcrfpy.createScene("test_color_mod")
|
||||
ui = mcrfpy.sceneUI("test_color_mod")
|
||||
test_color_mod = mcrfpy.Scene("test_color_mod")
|
||||
ui = test_color_mod.children
|
||||
|
||||
grid = mcrfpy.Grid(grid_size=(GRID_SIZE, GRID_SIZE),
|
||||
pos=(10, 10), size=(600, 600))
|
||||
|
|
@ -176,14 +176,14 @@ def setup_color_layer_modified():
|
|||
layer.set(x, y, mcrfpy.Color(255, 0, 0, 255))
|
||||
mod_counter[0] += 1
|
||||
|
||||
mcrfpy.setScene("test_color_mod")
|
||||
test_color_mod.activate()
|
||||
mcrfpy.setTimer("modify", modify_cell, 1)
|
||||
|
||||
|
||||
def setup_tile_layer_static():
|
||||
"""TileLayer with caching - static after fill."""
|
||||
mcrfpy.createScene("test_tile_static")
|
||||
ui = mcrfpy.sceneUI("test_tile_static")
|
||||
test_tile_static = mcrfpy.Scene("test_tile_static")
|
||||
ui = test_tile_static.children
|
||||
|
||||
try:
|
||||
texture = mcrfpy.Texture("assets/kenney_ice.png", 16, 16)
|
||||
|
|
@ -198,13 +198,13 @@ def setup_tile_layer_static():
|
|||
layer = grid.add_layer("tile", z_index=-1, texture=texture)
|
||||
layer.fill(5)
|
||||
|
||||
mcrfpy.setScene("test_tile_static")
|
||||
test_tile_static.activate()
|
||||
|
||||
|
||||
def setup_tile_layer_modified():
|
||||
"""TileLayer with single cell modified each frame."""
|
||||
mcrfpy.createScene("test_tile_mod")
|
||||
ui = mcrfpy.sceneUI("test_tile_mod")
|
||||
test_tile_mod = mcrfpy.Scene("test_tile_mod")
|
||||
ui = test_tile_mod.children
|
||||
|
||||
try:
|
||||
texture = mcrfpy.Texture("assets/kenney_ice.png", 16, 16)
|
||||
|
|
@ -229,14 +229,14 @@ def setup_tile_layer_modified():
|
|||
layer.set(x, y, (mod_counter[0] % 20))
|
||||
mod_counter[0] += 1
|
||||
|
||||
mcrfpy.setScene("test_tile_mod")
|
||||
test_tile_mod.activate()
|
||||
mcrfpy.setTimer("modify", modify_cell, 1)
|
||||
|
||||
|
||||
def setup_multi_layer_static():
|
||||
"""Multiple layers (5 color, 5 tile) - all static."""
|
||||
mcrfpy.createScene("test_multi_static")
|
||||
ui = mcrfpy.sceneUI("test_multi_static")
|
||||
test_multi_static = mcrfpy.Scene("test_multi_static")
|
||||
ui = test_multi_static.children
|
||||
|
||||
try:
|
||||
texture = mcrfpy.Texture("assets/kenney_ice.png", 16, 16)
|
||||
|
|
@ -259,13 +259,13 @@ def setup_multi_layer_static():
|
|||
layer.fill(i * 4)
|
||||
|
||||
print(f" Created {len(grid.layers)} layers")
|
||||
mcrfpy.setScene("test_multi_static")
|
||||
test_multi_static.activate()
|
||||
|
||||
|
||||
def setup_base_vs_layer_comparison():
|
||||
"""Direct comparison: same visual using base API vs layer API."""
|
||||
mcrfpy.createScene("test_comparison")
|
||||
ui = mcrfpy.sceneUI("test_comparison")
|
||||
test_comparison = mcrfpy.Scene("test_comparison")
|
||||
ui = test_comparison.children
|
||||
|
||||
# Grid using ONLY the new layer system (no base layer colors)
|
||||
grid = mcrfpy.Grid(grid_size=(GRID_SIZE, GRID_SIZE),
|
||||
|
|
@ -280,7 +280,7 @@ def setup_base_vs_layer_comparison():
|
|||
for x in range(GRID_SIZE):
|
||||
layer.set(x, y, mcrfpy.Color((x * 2) % 256, (y * 2) % 256, 128, 255))
|
||||
|
||||
mcrfpy.setScene("test_comparison")
|
||||
test_comparison.activate()
|
||||
|
||||
|
||||
# ============================================================================
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ class StressTestRunner:
|
|||
|
||||
# Setup scene
|
||||
scene_name = f"stress_{self.current_test}"
|
||||
mcrfpy.createScene(scene_name)
|
||||
_scene = mcrfpy.Scene(scene_name)
|
||||
|
||||
# Start benchmark
|
||||
mcrfpy.start_benchmark()
|
||||
|
|
@ -67,7 +67,7 @@ class StressTestRunner:
|
|||
except Exception as e:
|
||||
print(f" SETUP ERROR: {e}")
|
||||
|
||||
mcrfpy.setScene(scene_name)
|
||||
mcrfpy.current_scene = scene_name
|
||||
self.frames_counted = 0
|
||||
|
||||
def end_current_test(self):
|
||||
|
|
@ -133,10 +133,10 @@ class StressTestRunner:
|
|||
print("="*50)
|
||||
print(f"Tests: {len(self.tests)}, Duration: {TEST_DURATION_MS}ms each")
|
||||
|
||||
mcrfpy.createScene("init")
|
||||
ui = mcrfpy.sceneUI("init")
|
||||
init = mcrfpy.Scene("init")
|
||||
ui = init.children
|
||||
ui.append(mcrfpy.Frame(pos=(0,0), size=(10,10))) # Required for timer to fire
|
||||
mcrfpy.setScene("init")
|
||||
init.activate()
|
||||
mcrfpy.setTimer("tick", self.tick, TIMER_INTERVAL_MS)
|
||||
|
||||
|
||||
|
|
@ -146,7 +146,7 @@ class StressTestRunner:
|
|||
|
||||
def test_many_frames(scene_name):
|
||||
"""1000 Frame elements"""
|
||||
ui = mcrfpy.sceneUI(scene_name)
|
||||
ui = _scene.children # TODO: Replace _scene with correct Scene object
|
||||
for i in range(1000):
|
||||
frame = mcrfpy.Frame(
|
||||
pos=((i % 32) * 32, (i // 32) * 24),
|
||||
|
|
@ -158,7 +158,7 @@ def test_many_frames(scene_name):
|
|||
|
||||
def test_many_sprites(scene_name):
|
||||
"""500 Sprite elements"""
|
||||
ui = mcrfpy.sceneUI(scene_name)
|
||||
ui = _scene.children # TODO: Replace _scene with correct Scene object
|
||||
texture = mcrfpy.Texture("assets/kenney_ice.png", 16, 16)
|
||||
for i in range(500):
|
||||
sprite = mcrfpy.Sprite(
|
||||
|
|
@ -173,7 +173,7 @@ def test_many_sprites(scene_name):
|
|||
|
||||
def test_many_captions(scene_name):
|
||||
"""500 Caption elements"""
|
||||
ui = mcrfpy.sceneUI(scene_name)
|
||||
ui = _scene.children # TODO: Replace _scene with correct Scene object
|
||||
for i in range(500):
|
||||
caption = mcrfpy.Caption(
|
||||
text=f"Text #{i}",
|
||||
|
|
@ -184,7 +184,7 @@ def test_many_captions(scene_name):
|
|||
|
||||
def test_deep_nesting(scene_name):
|
||||
"""15-level nested frames"""
|
||||
ui = mcrfpy.sceneUI(scene_name)
|
||||
ui = _scene.children # TODO: Replace _scene with correct Scene object
|
||||
current = ui
|
||||
for level in range(15):
|
||||
frame = mcrfpy.Frame(
|
||||
|
|
@ -202,7 +202,7 @@ def test_deep_nesting(scene_name):
|
|||
|
||||
def test_large_grid(scene_name):
|
||||
"""100x100 grid with 500 entities"""
|
||||
ui = mcrfpy.sceneUI(scene_name)
|
||||
ui = _scene.children # TODO: Replace _scene with correct Scene object
|
||||
texture = mcrfpy.Texture("assets/kenney_ice.png", 16, 16)
|
||||
grid = mcrfpy.Grid(pos=(50, 50), size=(900, 650), grid_size=(100, 100), texture=texture)
|
||||
ui.append(grid)
|
||||
|
|
@ -223,7 +223,7 @@ def test_large_grid(scene_name):
|
|||
|
||||
def test_animation_stress(scene_name):
|
||||
"""100 frames with 200 animations"""
|
||||
ui = mcrfpy.sceneUI(scene_name)
|
||||
ui = _scene.children # TODO: Replace _scene with correct Scene object
|
||||
for i in range(100):
|
||||
frame = mcrfpy.Frame(
|
||||
pos=((i % 10) * 100 + 10, (i // 10) * 70 + 10),
|
||||
|
|
@ -241,7 +241,7 @@ def test_animation_stress(scene_name):
|
|||
|
||||
def test_static_scene(scene_name):
|
||||
"""Static game scene (ideal for caching)"""
|
||||
ui = mcrfpy.sceneUI(scene_name)
|
||||
ui = _scene.children # TODO: Replace _scene with correct Scene object
|
||||
texture = mcrfpy.Texture("assets/kenney_ice.png", 16, 16)
|
||||
|
||||
# Background
|
||||
|
|
@ -270,7 +270,7 @@ def test_static_scene(scene_name):
|
|||
|
||||
def test_static_scene_cached(scene_name):
|
||||
"""Static game scene with cache_subtree enabled (#144)"""
|
||||
ui = mcrfpy.sceneUI(scene_name)
|
||||
ui = _scene.children # TODO: Replace _scene with correct Scene object
|
||||
texture = mcrfpy.Texture("assets/kenney_ice.png", 16, 16)
|
||||
|
||||
# Background with caching enabled
|
||||
|
|
@ -299,7 +299,7 @@ def test_static_scene_cached(scene_name):
|
|||
|
||||
def test_deep_nesting_cached(scene_name):
|
||||
"""15-level nested frames with cache_subtree on outer frame (#144)"""
|
||||
ui = mcrfpy.sceneUI(scene_name)
|
||||
ui = _scene.children # TODO: Replace _scene with correct Scene object
|
||||
|
||||
# Outer frame with caching - entire subtree cached
|
||||
outer = mcrfpy.Frame(
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ def run_test(runtime):
|
|||
print("=" * 60)
|
||||
|
||||
# Create a 1000x1000 grid
|
||||
mcrfpy.createScene("test")
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
ui = test.children
|
||||
texture = mcrfpy.Texture("assets/kenney_ice.png", 16, 16)
|
||||
|
||||
print("\nCreating 1000x1000 grid...")
|
||||
|
|
@ -94,6 +94,6 @@ def run_test(runtime):
|
|||
|
||||
sys.exit(0)
|
||||
|
||||
mcrfpy.createScene("init")
|
||||
mcrfpy.setScene("init")
|
||||
init = mcrfpy.Scene("init")
|
||||
init.activate()
|
||||
mcrfpy.setTimer("test", run_test, 100)
|
||||
|
|
|
|||
|
|
@ -19,8 +19,8 @@ def benchmark_grid_size(grid_x, grid_y):
|
|||
|
||||
# Create scene and grid
|
||||
scene_name = f"bench_{grid_x}x{grid_y}"
|
||||
mcrfpy.createScene(scene_name)
|
||||
ui = mcrfpy.sceneUI(scene_name)
|
||||
_scene = mcrfpy.Scene(scene_name)
|
||||
ui = _scene.children # TODO: Replace _scene with correct Scene object
|
||||
|
||||
texture = mcrfpy.Texture("assets/kenney_ice.png", 16, 16)
|
||||
|
||||
|
|
@ -130,8 +130,8 @@ def main():
|
|||
sys.exit(0)
|
||||
|
||||
# Run immediately (no timer needed for this test)
|
||||
mcrfpy.createScene("init")
|
||||
mcrfpy.setScene("init")
|
||||
init = mcrfpy.Scene("init")
|
||||
init.activate()
|
||||
|
||||
# Use a timer to let the engine initialize
|
||||
def run_benchmark(runtime):
|
||||
|
|
|
|||
|
|
@ -65,8 +65,8 @@ class DemoRunner:
|
|||
|
||||
def create_menu(self):
|
||||
"""Create the main menu screen."""
|
||||
mcrfpy.createScene("menu")
|
||||
ui = mcrfpy.sceneUI("menu")
|
||||
menu = mcrfpy.Scene("menu")
|
||||
ui = menu.children
|
||||
|
||||
# Title
|
||||
title = mcrfpy.Caption(text="McRogueFace Demo", pos=(400, 30))
|
||||
|
|
@ -122,7 +122,7 @@ class DemoRunner:
|
|||
sys.exit(0)
|
||||
return
|
||||
screen = self.screens[self.current_index]
|
||||
mcrfpy.setScene(screen.scene_name)
|
||||
mcrfpy.current_scene = screen
|
||||
self.render_wait = 1
|
||||
elif self.render_wait < 2:
|
||||
# Wait additional frame
|
||||
|
|
@ -157,23 +157,23 @@ class DemoRunner:
|
|||
|
||||
# ESC returns to menu
|
||||
elif key == "Escape":
|
||||
mcrfpy.setScene("menu")
|
||||
menu.activate()
|
||||
|
||||
# Q quits
|
||||
elif key == "Q":
|
||||
sys.exit(0)
|
||||
|
||||
# Register keyboard handler on menu scene
|
||||
mcrfpy.setScene("menu")
|
||||
mcrfpy.keypressScene(handle_key)
|
||||
menu.activate()
|
||||
menu.on_key = handle_key
|
||||
|
||||
# Also register keyboard handler on all demo scenes
|
||||
for screen in self.screens:
|
||||
mcrfpy.setScene(screen.scene_name)
|
||||
mcrfpy.keypressScene(handle_key)
|
||||
mcrfpy.current_scene = screen
|
||||
menu.on_key = handle_key
|
||||
|
||||
# Start on menu
|
||||
mcrfpy.setScene("menu")
|
||||
menu.activate()
|
||||
|
||||
def main():
|
||||
"""Main entry point."""
|
||||
|
|
|
|||
|
|
@ -37,10 +37,10 @@ def setup_scene():
|
|||
"""Create the demo scene"""
|
||||
global g_grid, g_patrol, g_fov_layer
|
||||
|
||||
mcrfpy.createScene("patrol_demo")
|
||||
mcrfpy.setScene("patrol_demo")
|
||||
patrol_demo = mcrfpy.Scene("patrol_demo")
|
||||
patrol_demo.activate()
|
||||
|
||||
ui = mcrfpy.sceneUI("patrol_demo")
|
||||
ui = patrol_demo.children
|
||||
|
||||
# Title
|
||||
title = mcrfpy.Caption(text="Perspective Patrol Demo", pos=(10, 10))
|
||||
|
|
@ -123,7 +123,7 @@ def setup_scene():
|
|||
ui.append(status)
|
||||
|
||||
# Set up keyboard handler
|
||||
mcrfpy.keypressScene(on_keypress)
|
||||
patrol_demo.on_key = on_keypress
|
||||
|
||||
# Start patrol timer
|
||||
mcrfpy.setTimer("patrol", patrol_step, move_timer_ms)
|
||||
|
|
@ -173,7 +173,7 @@ def on_keypress(key, state):
|
|||
else:
|
||||
update_status("Status: Patrolling")
|
||||
elif key == "Q":
|
||||
mcrfpy.setScene(None)
|
||||
mcrfpy.current_scene = None
|
||||
|
||||
def reset_vision():
|
||||
"""Reset entity's discovered state to demonstrate unknown vs discovered"""
|
||||
|
|
@ -194,7 +194,7 @@ def reset_vision():
|
|||
|
||||
def update_status(text):
|
||||
"""Update status caption"""
|
||||
ui = mcrfpy.sceneUI("patrol_demo")
|
||||
ui = patrol_demo.children
|
||||
for element in ui:
|
||||
if hasattr(element, 'name') and element.name == "status":
|
||||
element.text = text
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ class DemoScreen:
|
|||
|
||||
def __init__(self, scene_name):
|
||||
self.scene_name = scene_name
|
||||
mcrfpy.createScene(scene_name)
|
||||
_scene = mcrfpy.Scene(scene_name)
|
||||
self.ui = mcrfpy.sceneUI(scene_name)
|
||||
|
||||
def setup(self):
|
||||
|
|
|
|||
|
|
@ -600,8 +600,8 @@ def create_demo_scene():
|
|||
"""Create and populate the focus system demo scene."""
|
||||
|
||||
# Create scene
|
||||
mcrfpy.createScene("focus_demo")
|
||||
ui = mcrfpy.sceneUI("focus_demo")
|
||||
focus_demo = mcrfpy.Scene("focus_demo")
|
||||
ui = focus_demo.children
|
||||
|
||||
# Background
|
||||
bg = mcrfpy.Frame(
|
||||
|
|
@ -752,10 +752,10 @@ def create_demo_scene():
|
|||
status_text.text = "No widget focused"
|
||||
|
||||
# Activate scene first (keypressScene sets handler for CURRENT scene)
|
||||
mcrfpy.setScene("focus_demo")
|
||||
focus_demo.activate()
|
||||
|
||||
# Register key handler for the now-current scene
|
||||
mcrfpy.keypressScene(on_key)
|
||||
focus_demo.on_key = on_key
|
||||
|
||||
# Set initial focus
|
||||
focus_mgr.focus(0)
|
||||
|
|
|
|||
|
|
@ -66,8 +66,8 @@ class GeometryDemoRunner:
|
|||
|
||||
def create_menu(self):
|
||||
"""Create the main menu screen."""
|
||||
mcrfpy.createScene("geo_menu")
|
||||
ui = mcrfpy.sceneUI("geo_menu")
|
||||
geo_menu = mcrfpy.Scene("geo_menu")
|
||||
ui = geo_menu.children
|
||||
|
||||
# Screen dimensions
|
||||
SCREEN_WIDTH = 1024
|
||||
|
|
@ -142,7 +142,7 @@ class GeometryDemoRunner:
|
|||
sys.exit(0)
|
||||
return
|
||||
screen = self.screens[self.current_index]
|
||||
mcrfpy.setScene(screen.scene_name)
|
||||
mcrfpy.current_scene = screen
|
||||
self.render_wait = 1
|
||||
elif self.render_wait < 3:
|
||||
# Wait for animated demos to show initial state
|
||||
|
|
@ -188,21 +188,21 @@ class GeometryDemoRunner:
|
|||
elif key == "Escape":
|
||||
for screen in self.screens:
|
||||
screen.cleanup()
|
||||
mcrfpy.setScene("geo_menu")
|
||||
geo_menu.activate()
|
||||
|
||||
# Q quits
|
||||
elif key == "Q":
|
||||
sys.exit(0)
|
||||
|
||||
# Register keyboard handler on all scenes
|
||||
mcrfpy.setScene("geo_menu")
|
||||
mcrfpy.keypressScene(handle_key)
|
||||
geo_menu.activate()
|
||||
geo_menu.on_key = handle_key
|
||||
|
||||
for screen in self.screens:
|
||||
mcrfpy.setScene(screen.scene_name)
|
||||
mcrfpy.keypressScene(handle_key)
|
||||
mcrfpy.current_scene = screen
|
||||
geo_menu.on_key = handle_key
|
||||
|
||||
mcrfpy.setScene("geo_menu")
|
||||
geo_menu.activate()
|
||||
|
||||
|
||||
def main():
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ class GeometryDemoScreen:
|
|||
|
||||
def __init__(self, scene_name):
|
||||
self.scene_name = scene_name
|
||||
mcrfpy.createScene(scene_name)
|
||||
_scene = mcrfpy.Scene(scene_name)
|
||||
self.ui = mcrfpy.sceneUI(scene_name)
|
||||
self.timers = [] # Track timer names for cleanup
|
||||
self._timer_configs = [] # Store timer configs for restart
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ def create_map():
|
|||
"""Create a map with obstacles to show pathfinding differences"""
|
||||
global grid, color_layer
|
||||
|
||||
mcrfpy.createScene("pathfinding_comparison")
|
||||
pathfinding_comparison = mcrfpy.Scene("pathfinding_comparison")
|
||||
|
||||
# Create grid
|
||||
grid = mcrfpy.Grid(grid_x=30, grid_y=20)
|
||||
|
|
@ -198,7 +198,7 @@ print("Dijkstra explores in all directions (good for multiple targets)")
|
|||
create_map()
|
||||
|
||||
# Set up UI
|
||||
ui = mcrfpy.sceneUI("pathfinding_comparison")
|
||||
ui = pathfinding_comparison.children
|
||||
ui.append(grid)
|
||||
|
||||
# Scale and position
|
||||
|
|
@ -230,8 +230,8 @@ legend2.fill_color = mcrfpy.Color(150, 150, 150)
|
|||
ui.append(legend2)
|
||||
|
||||
# Set scene and input
|
||||
mcrfpy.setScene("pathfinding_comparison")
|
||||
mcrfpy.keypressScene(handle_keypress)
|
||||
pathfinding_comparison.activate()
|
||||
pathfinding_comparison.on_key = handle_keypress
|
||||
|
||||
# Show initial A* path
|
||||
show_astar()
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import sys
|
|||
print("Debug visibility...")
|
||||
|
||||
# Create scene and grid
|
||||
mcrfpy.createScene("debug")
|
||||
debug = mcrfpy.Scene("debug")
|
||||
grid = mcrfpy.Grid(grid_x=5, grid_y=5)
|
||||
|
||||
# Initialize grid
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ def create_map():
|
|||
"""Create the map with entities"""
|
||||
global grid, color_layer, entities, all_combinations
|
||||
|
||||
mcrfpy.createScene("dijkstra_all")
|
||||
dijkstra_all = mcrfpy.Scene("dijkstra_all")
|
||||
|
||||
# Create grid
|
||||
grid = mcrfpy.Grid(grid_x=14, grid_y=10)
|
||||
|
|
@ -178,7 +178,7 @@ print()
|
|||
create_map()
|
||||
|
||||
# Set up UI
|
||||
ui = mcrfpy.sceneUI("dijkstra_all")
|
||||
ui = dijkstra_all.children
|
||||
ui.append(grid)
|
||||
|
||||
# Scale and position
|
||||
|
|
@ -221,8 +221,8 @@ expected.fill_color = mcrfpy.Color(255, 150, 150)
|
|||
ui.append(expected)
|
||||
|
||||
# Set scene first, then set up input handler
|
||||
mcrfpy.setScene("dijkstra_all")
|
||||
mcrfpy.keypressScene(handle_keypress)
|
||||
dijkstra_all.activate()
|
||||
dijkstra_all.on_key = handle_keypress
|
||||
|
||||
# Show first combination
|
||||
show_combination(0)
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ def create_map():
|
|||
"""Create the map with entities"""
|
||||
global grid, color_layer, entities
|
||||
|
||||
mcrfpy.createScene("dijkstra_cycle")
|
||||
dijkstra_cycle = mcrfpy.Scene("dijkstra_cycle")
|
||||
|
||||
# Create grid
|
||||
grid = mcrfpy.Grid(grid_x=14, grid_y=10)
|
||||
|
|
@ -189,7 +189,7 @@ print()
|
|||
create_map()
|
||||
|
||||
# Set up UI
|
||||
ui = mcrfpy.sceneUI("dijkstra_cycle")
|
||||
ui = dijkstra_cycle.children
|
||||
ui.append(grid)
|
||||
|
||||
# Scale and position
|
||||
|
|
@ -222,8 +222,8 @@ legend.fill_color = mcrfpy.Color(150, 150, 150)
|
|||
ui.append(legend)
|
||||
|
||||
# Show first valid path
|
||||
mcrfpy.setScene("dijkstra_cycle")
|
||||
mcrfpy.keypressScene(handle_keypress)
|
||||
dijkstra_cycle.activate()
|
||||
dijkstra_cycle.on_key = handle_keypress
|
||||
|
||||
# Display initial path
|
||||
if path_combinations:
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ def create_simple_map():
|
|||
"""Create a simple test map"""
|
||||
global grid, color_layer, entities
|
||||
|
||||
mcrfpy.createScene("dijkstra_debug")
|
||||
dijkstra_debug = mcrfpy.Scene("dijkstra_debug")
|
||||
|
||||
# Small grid for easy debugging
|
||||
grid = mcrfpy.Grid(grid_x=10, grid_y=10)
|
||||
|
|
@ -140,7 +140,7 @@ grid = create_simple_map()
|
|||
test_path_highlighting()
|
||||
|
||||
# Set up UI
|
||||
ui = mcrfpy.sceneUI("dijkstra_debug")
|
||||
ui = dijkstra_debug.children
|
||||
ui.append(grid)
|
||||
|
||||
# Position and scale
|
||||
|
|
@ -158,8 +158,8 @@ info.fill_color = mcrfpy.Color(200, 200, 200)
|
|||
ui.append(info)
|
||||
|
||||
# Set up scene
|
||||
mcrfpy.keypressScene(handle_keypress)
|
||||
mcrfpy.setScene("dijkstra_debug")
|
||||
dijkstra_debug.on_key = handle_keypress
|
||||
dijkstra_debug.activate()
|
||||
|
||||
print("\nScene ready. The path should be highlighted in cyan.")
|
||||
print("If you don't see the path, there may be a rendering issue.")
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ def create_map():
|
|||
"""Create the interactive map with the layout specified by the user"""
|
||||
global grid, color_layer, entities
|
||||
|
||||
mcrfpy.createScene("dijkstra_interactive")
|
||||
dijkstra_interactive = mcrfpy.Scene("dijkstra_interactive")
|
||||
|
||||
# Create grid - 14x10 as specified
|
||||
grid = mcrfpy.Grid(grid_x=14, grid_y=10)
|
||||
|
|
@ -194,7 +194,7 @@ print(" Q/ESC - Quit")
|
|||
grid = create_map()
|
||||
|
||||
# Set up UI
|
||||
ui = mcrfpy.sceneUI("dijkstra_interactive")
|
||||
ui = dijkstra_interactive.children
|
||||
ui.append(grid)
|
||||
|
||||
# Scale and position grid for better visibility
|
||||
|
|
@ -235,10 +235,10 @@ for i, entity in enumerate(entities):
|
|||
ui.append(marker)
|
||||
|
||||
# Set up input handling
|
||||
mcrfpy.keypressScene(handle_keypress)
|
||||
dijkstra_interactive.on_key = handle_keypress
|
||||
|
||||
# Show the scene
|
||||
mcrfpy.setScene("dijkstra_interactive")
|
||||
dijkstra_interactive.activate()
|
||||
|
||||
print("\nVisualization ready!")
|
||||
print("Entities are at:")
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ def create_map():
|
|||
"""Create the interactive map with the layout specified by the user"""
|
||||
global grid, color_layer, entities, original_positions
|
||||
|
||||
mcrfpy.createScene("dijkstra_enhanced")
|
||||
dijkstra_enhanced = mcrfpy.Scene("dijkstra_enhanced")
|
||||
|
||||
# Create grid - 14x10 as specified
|
||||
grid = mcrfpy.Grid(grid_x=14, grid_y=10)
|
||||
|
|
@ -286,7 +286,7 @@ print(" Q/ESC - Quit")
|
|||
grid = create_map()
|
||||
|
||||
# Set up UI
|
||||
ui = mcrfpy.sceneUI("dijkstra_enhanced")
|
||||
ui = dijkstra_enhanced.children
|
||||
ui.append(grid)
|
||||
|
||||
# Scale and position grid for better visibility
|
||||
|
|
@ -332,13 +332,13 @@ for i, entity in enumerate(entities):
|
|||
ui.append(marker)
|
||||
|
||||
# Set up input handling
|
||||
mcrfpy.keypressScene(handle_keypress)
|
||||
dijkstra_enhanced.on_key = handle_keypress
|
||||
|
||||
# Set up animation timer (60 FPS)
|
||||
mcrfpy.setTimer("animation", update_animation, 16)
|
||||
|
||||
# Show the scene
|
||||
mcrfpy.setScene("dijkstra_enhanced")
|
||||
dijkstra_enhanced.activate()
|
||||
|
||||
print("\nVisualization ready!")
|
||||
print("Entities are at:")
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import sys
|
|||
|
||||
def create_test_map():
|
||||
"""Create a test map with obstacles"""
|
||||
mcrfpy.createScene("dijkstra_test")
|
||||
dijkstra_test = mcrfpy.Scene("dijkstra_test")
|
||||
|
||||
# Create grid
|
||||
grid = mcrfpy.Grid(grid_x=20, grid_y=12)
|
||||
|
|
@ -120,7 +120,7 @@ print("Creating Dijkstra pathfinding test...")
|
|||
grid, entities = create_test_map()
|
||||
|
||||
# Set up UI
|
||||
ui = mcrfpy.sceneUI("dijkstra_test")
|
||||
ui = dijkstra_test.children
|
||||
ui.append(grid)
|
||||
|
||||
# Position and scale grid
|
||||
|
|
@ -138,7 +138,7 @@ legend.fill_color = mcrfpy.Color(180, 180, 180)
|
|||
ui.append(legend)
|
||||
|
||||
# Set scene
|
||||
mcrfpy.setScene("dijkstra_test")
|
||||
dijkstra_test.activate()
|
||||
|
||||
# Run test after scene loads
|
||||
mcrfpy.setTimer("test", run_test, 100)
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ import mcrfpy
|
|||
import sys
|
||||
|
||||
# Create scene and grid
|
||||
mcrfpy.createScene("visibility_demo")
|
||||
visibility_demo = mcrfpy.Scene("visibility_demo")
|
||||
grid = mcrfpy.Grid(grid_x=30, grid_y=20)
|
||||
grid.fill_color = mcrfpy.Color(20, 20, 30) # Dark background
|
||||
|
||||
|
|
@ -77,7 +77,7 @@ current_perspective = -1
|
|||
perspective_names = ["Omniscient", "Player", "Enemy"]
|
||||
|
||||
# UI Setup
|
||||
ui = mcrfpy.sceneUI("visibility_demo")
|
||||
ui = visibility_demo.children
|
||||
ui.append(grid)
|
||||
grid.position = (50, 100)
|
||||
grid.size = (900, 600) # 30*30, 20*30
|
||||
|
|
@ -187,10 +187,10 @@ def handle_keys(key, state):
|
|||
update_info()
|
||||
|
||||
# Set scene first
|
||||
mcrfpy.setScene("visibility_demo")
|
||||
visibility_demo.activate()
|
||||
|
||||
# Register key handler (operates on current scene)
|
||||
mcrfpy.keypressScene(handle_keys)
|
||||
visibility_demo.on_key = handle_keys
|
||||
|
||||
print("Interactive Visibility Demo")
|
||||
print("===========================")
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import sys
|
|||
|
||||
# Create scene and grid
|
||||
print("Creating scene...")
|
||||
mcrfpy.createScene("vis_test")
|
||||
vis_test = mcrfpy.Scene("vis_test")
|
||||
|
||||
print("Creating grid...")
|
||||
grid = mcrfpy.Grid(grid_x=10, grid_y=10)
|
||||
|
|
@ -33,7 +33,7 @@ entity.update_visibility()
|
|||
|
||||
# Set up UI
|
||||
print("Setting up UI...")
|
||||
ui = mcrfpy.sceneUI("vis_test")
|
||||
ui = vis_test.children
|
||||
ui.append(grid)
|
||||
grid.position = (50, 50)
|
||||
grid.size = (300, 300)
|
||||
|
|
@ -44,6 +44,6 @@ grid.perspective = -1 # Omniscient
|
|||
print(f"Perspective set to: {grid.perspective}")
|
||||
|
||||
print("Setting scene...")
|
||||
mcrfpy.setScene("vis_test")
|
||||
vis_test.activate()
|
||||
|
||||
print("Ready!")
|
||||
|
|
@ -7,7 +7,7 @@ import sys
|
|||
print("Simple visibility test...")
|
||||
|
||||
# Create scene and grid
|
||||
mcrfpy.createScene("simple")
|
||||
simple = mcrfpy.Scene("simple")
|
||||
print("Scene created")
|
||||
|
||||
grid = mcrfpy.Grid(grid_x=5, grid_y=5)
|
||||
|
|
|
|||
|
|
@ -14,8 +14,8 @@ def timer_that_raises(runtime):
|
|||
raise ValueError("Intentional test exception")
|
||||
|
||||
# Create a test scene
|
||||
mcrfpy.createScene("test")
|
||||
mcrfpy.setScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
test.activate()
|
||||
|
||||
# Schedule the timer - it will fire after 50ms
|
||||
mcrfpy.setTimer("raise_exception", timer_that_raises, 50)
|
||||
|
|
|
|||
|
|
@ -181,8 +181,8 @@ if __name__ == "__main__":
|
|||
print("Issue #123: Grid Sub-grid Chunk System Test")
|
||||
print("=" * 60)
|
||||
|
||||
mcrfpy.createScene("test")
|
||||
mcrfpy.setScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
test.activate()
|
||||
|
||||
# Run tests after scene is active
|
||||
mcrfpy.setTimer("test", run_test, 100)
|
||||
|
|
|
|||
|
|
@ -20,8 +20,8 @@ def run_test(runtime):
|
|||
print("=" * 60)
|
||||
|
||||
# Create a test grid
|
||||
mcrfpy.createScene("test")
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
ui = test.children
|
||||
texture = mcrfpy.Texture("assets/kenney_ice.png", 16, 16)
|
||||
|
||||
grid = mcrfpy.Grid(pos=(0,0), size=(400,300), grid_size=(50, 50), texture=texture)
|
||||
|
|
@ -109,6 +109,6 @@ def run_test(runtime):
|
|||
sys.exit(0)
|
||||
|
||||
# Initialize and run
|
||||
mcrfpy.createScene("init")
|
||||
mcrfpy.setScene("init")
|
||||
init = mcrfpy.Scene("init")
|
||||
init.activate()
|
||||
mcrfpy.setTimer("test", run_test, 100)
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@ def run_test(runtime):
|
|||
print("=" * 60)
|
||||
|
||||
# Create test scene
|
||||
mcrfpy.createScene("test")
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
ui = test.children
|
||||
texture = mcrfpy.Texture("assets/kenney_ice.png", 16, 16)
|
||||
|
||||
# Create grid with explicit empty layers (#150 migration)
|
||||
|
|
@ -188,6 +188,6 @@ def run_test(runtime):
|
|||
sys.exit(0)
|
||||
|
||||
# Initialize and run
|
||||
mcrfpy.createScene("init")
|
||||
mcrfpy.setScene("init")
|
||||
init = mcrfpy.Scene("init")
|
||||
init.activate()
|
||||
mcrfpy.setTimer("test", run_test, 100)
|
||||
|
|
|
|||
|
|
@ -20,14 +20,14 @@ def run_test(runtime):
|
|||
print("=" * 60)
|
||||
|
||||
# Create test scene
|
||||
mcrfpy.createScene("test")
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
ui = test.children
|
||||
texture = mcrfpy.Texture("assets/kenney_ice.png", 16, 16)
|
||||
|
||||
# Create grid with larger size for performance testing
|
||||
grid = mcrfpy.Grid(pos=(50, 50), size=(500, 400), grid_size=(50, 40), texture=texture)
|
||||
ui.append(grid)
|
||||
mcrfpy.setScene("test")
|
||||
test.activate()
|
||||
|
||||
print("\n--- Test 1: Layer creation (starts dirty) ---")
|
||||
color_layer = grid.add_layer("color", z_index=-1)
|
||||
|
|
@ -106,7 +106,7 @@ def run_test(runtime):
|
|||
|
||||
# First render will be slow (cache miss)
|
||||
start = time.time()
|
||||
mcrfpy.setScene("test") # Force render
|
||||
test.activate() # Force render
|
||||
first_render = time.time() - start
|
||||
print(f" First render (cache build): {first_render*1000:.2f}ms")
|
||||
|
||||
|
|
@ -152,6 +152,6 @@ def run_test(runtime):
|
|||
sys.exit(0)
|
||||
|
||||
# Initialize and run
|
||||
mcrfpy.createScene("init")
|
||||
mcrfpy.setScene("init")
|
||||
init = mcrfpy.Scene("init")
|
||||
init.activate()
|
||||
mcrfpy.setTimer("test", run_test, 100)
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ print(f"Current working directory: {os.getcwd()}")
|
|||
print(f"Script location: {__file__}")
|
||||
|
||||
# Create a simple scene to verify everything is working
|
||||
mcrfpy.createScene("issue37_test")
|
||||
issue37_test = mcrfpy.Scene("issue37_test")
|
||||
|
||||
print("PASS: Issue #37 - Script loading working correctly")
|
||||
sys.exit(0)
|
||||
|
|
@ -27,7 +27,7 @@ def test_script_loading():
|
|||
test_script = """
|
||||
import mcrfpy
|
||||
print("TEST SCRIPT LOADED SUCCESSFULLY")
|
||||
mcrfpy.createScene("test_scene")
|
||||
test_scene = mcrfpy.Scene("test_scene")
|
||||
"""
|
||||
|
||||
# Save the original game.py
|
||||
|
|
|
|||
|
|
@ -81,8 +81,8 @@ def run_test(runtime):
|
|||
sys.exit(0)
|
||||
|
||||
# Set up the test scene
|
||||
mcrfpy.createScene("test")
|
||||
mcrfpy.setScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
test.activate()
|
||||
|
||||
# Schedule test to run after game loop starts
|
||||
mcrfpy.setTimer("test", run_test, 100)
|
||||
|
|
@ -163,8 +163,8 @@ def run_test(runtime):
|
|||
sys.exit(0)
|
||||
|
||||
# Set up the test scene
|
||||
mcrfpy.createScene("test")
|
||||
mcrfpy.setScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
test.activate()
|
||||
|
||||
# Schedule test to run after game loop starts
|
||||
mcrfpy.setTimer("test", run_test, 100)
|
||||
|
|
@ -217,8 +217,8 @@ def run_test(runtime):
|
|||
sys.exit(0)
|
||||
|
||||
# Set up the test scene
|
||||
mcrfpy.createScene("test")
|
||||
mcrfpy.setScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
test.activate()
|
||||
|
||||
# Schedule test to run after game loop starts
|
||||
mcrfpy.setTimer("test", run_test, 100)
|
||||
|
|
@ -21,7 +21,7 @@ def run_test(runtime):
|
|||
grid.h = 300
|
||||
|
||||
# Add to scene
|
||||
scene_ui = mcrfpy.sceneUI("test")
|
||||
scene_ui = test.children
|
||||
scene_ui.append(grid)
|
||||
|
||||
# Test accessing grid points
|
||||
|
|
@ -60,8 +60,8 @@ def run_test(runtime):
|
|||
sys.exit(0)
|
||||
|
||||
# Create and set scene
|
||||
mcrfpy.createScene("test")
|
||||
mcrfpy.setScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
test.activate()
|
||||
|
||||
# Schedule test
|
||||
mcrfpy.setTimer("test", run_test, 100)
|
||||
|
|
@ -45,7 +45,7 @@ def test_rendertexture_resize():
|
|||
"""Test RenderTexture behavior with various grid sizes"""
|
||||
print("=== Testing UIGrid RenderTexture Resize (Issue #9) ===\n")
|
||||
|
||||
scene_ui = mcrfpy.sceneUI("test")
|
||||
scene_ui = test.children
|
||||
|
||||
# Test 1: Small grid (should work fine)
|
||||
print("--- Test 1: Small Grid (400x300) ---")
|
||||
|
|
@ -222,8 +222,8 @@ def run_test(runtime):
|
|||
sys.exit(0)
|
||||
|
||||
# Set up the test scene
|
||||
mcrfpy.createScene("test")
|
||||
mcrfpy.setScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
test.activate()
|
||||
|
||||
# Schedule test to run after game loop starts
|
||||
mcrfpy.setTimer("test", run_test, 100)
|
||||
|
|
@ -20,7 +20,7 @@ def run_test(runtime):
|
|||
grid.h = 200
|
||||
|
||||
# Add grid to scene
|
||||
scene_ui = mcrfpy.sceneUI("test")
|
||||
scene_ui = test.children
|
||||
scene_ui.append(grid)
|
||||
|
||||
# Take initial screenshot
|
||||
|
|
@ -82,8 +82,8 @@ def run_test(runtime):
|
|||
sys.exit(0)
|
||||
|
||||
# Set up the test scene
|
||||
mcrfpy.createScene("test")
|
||||
mcrfpy.setScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
test.activate()
|
||||
|
||||
# Schedule test to run after game loop starts
|
||||
mcrfpy.setTimer("test", run_test, 100)
|
||||
|
|
@ -78,6 +78,6 @@ def run_test(runtime):
|
|||
sys.exit(0)
|
||||
|
||||
# Set up scene and run
|
||||
mcrfpy.createScene("test")
|
||||
mcrfpy.setScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
test.activate()
|
||||
mcrfpy.setTimer("test", run_test, 100)
|
||||
|
|
@ -46,9 +46,9 @@ def run_automation_tests():
|
|||
print("=== Setting Up Test Scene ===")
|
||||
|
||||
# Create scene with visible content
|
||||
mcrfpy.createScene("timer_test_scene")
|
||||
mcrfpy.setScene("timer_test_scene")
|
||||
ui = mcrfpy.sceneUI("timer_test_scene")
|
||||
timer_test_scene = mcrfpy.Scene("timer_test_scene")
|
||||
timer_test_scene.activate()
|
||||
ui = timer_test_scene.children
|
||||
|
||||
# Add a bright red frame that should be visible
|
||||
frame = mcrfpy.Frame(pos=(100, 100), size=(400, 300),
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ def test_createScene():
|
|||
|
||||
for scene_name in test_scenes:
|
||||
try:
|
||||
mcrfpy.createScene(scene_name)
|
||||
_scene = mcrfpy.Scene(scene_name)
|
||||
print(f"✓ Created scene: {scene_name}")
|
||||
except Exception as e:
|
||||
print(f"✗ Failed to create scene {scene_name}: {e}")
|
||||
|
|
@ -17,8 +17,8 @@ def test_createScene():
|
|||
|
||||
# Try to set scene to verify it was created
|
||||
try:
|
||||
mcrfpy.setScene("test_scene1")
|
||||
current = mcrfpy.currentScene()
|
||||
test_scene1.activate() # Note: ensure scene was created
|
||||
current = (mcrfpy.current_scene.name if mcrfpy.current_scene else None)
|
||||
if current == "test_scene1":
|
||||
print("✓ Scene switching works correctly")
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ print("Starting setScene/currentScene test...")
|
|||
# Create test scenes first
|
||||
scenes = ["scene_A", "scene_B", "scene_C"]
|
||||
for scene in scenes:
|
||||
mcrfpy.createScene(scene)
|
||||
_scene = mcrfpy.Scene(scene)
|
||||
print(f"Created scene: {scene}")
|
||||
|
||||
results = []
|
||||
|
|
@ -15,8 +15,8 @@ results = []
|
|||
# Test switching between scenes
|
||||
for scene in scenes:
|
||||
try:
|
||||
mcrfpy.setScene(scene)
|
||||
current = mcrfpy.currentScene()
|
||||
mcrfpy.current_scene = scene
|
||||
current = (mcrfpy.current_scene.name if mcrfpy.current_scene else None)
|
||||
if current == scene:
|
||||
results.append(f"✓ setScene/currentScene works for '{scene}'")
|
||||
else:
|
||||
|
|
@ -25,9 +25,9 @@ for scene in scenes:
|
|||
results.append(f"✗ Error with scene '{scene}': {e}")
|
||||
|
||||
# Test invalid scene - it should not change the current scene
|
||||
current_before = mcrfpy.currentScene()
|
||||
mcrfpy.setScene("nonexistent_scene")
|
||||
current_after = mcrfpy.currentScene()
|
||||
current_before = (mcrfpy.current_scene.name if mcrfpy.current_scene else None)
|
||||
nonexistent_scene.activate() # Note: ensure scene was created
|
||||
current_after = (mcrfpy.current_scene.name if mcrfpy.current_scene else None)
|
||||
if current_before == current_after:
|
||||
results.append(f"✓ setScene correctly ignores nonexistent scene (stayed on '{current_after}')")
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ import os
|
|||
import sys
|
||||
|
||||
# Create a simple scene
|
||||
mcrfpy.createScene("test")
|
||||
mcrfpy.setScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
test.activate()
|
||||
|
||||
# Take a screenshot immediately
|
||||
try:
|
||||
|
|
|
|||
|
|
@ -128,8 +128,8 @@ mcrfpy.log_benchmark("Test log message")
|
|||
print("Logged test message")
|
||||
|
||||
# Set up scene and run for a few frames
|
||||
mcrfpy.createScene("test")
|
||||
mcrfpy.setScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
test.activate()
|
||||
|
||||
# Schedule test completion after ~100ms (to capture some frames)
|
||||
mcrfpy.setTimer("test", run_test, 100)
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ def test_uicollection_find():
|
|||
print("Testing UICollection.find()...")
|
||||
|
||||
# Create a scene with named elements
|
||||
mcrfpy.createScene("test_find")
|
||||
ui = mcrfpy.sceneUI("test_find")
|
||||
test_find = mcrfpy.Scene("test_find")
|
||||
ui = test_find.children
|
||||
|
||||
# Create frames with names
|
||||
frame1 = mcrfpy.Frame(pos=(0, 0), size=(100, 100))
|
||||
|
|
@ -94,8 +94,8 @@ def test_entitycollection_find():
|
|||
print("\nTesting EntityCollection.find()...")
|
||||
|
||||
# Create a grid with entities
|
||||
mcrfpy.createScene("test_entity_find")
|
||||
ui = mcrfpy.sceneUI("test_entity_find")
|
||||
test_entity_find = mcrfpy.Scene("test_entity_find")
|
||||
ui = test_entity_find.children
|
||||
|
||||
grid = mcrfpy.Grid(grid_size=(10, 10), pos=(0, 0), size=(400, 400))
|
||||
ui.append(grid)
|
||||
|
|
@ -149,8 +149,8 @@ def test_recursive_find():
|
|||
"""Test recursive find in nested Frame children."""
|
||||
print("\nTesting recursive find in nested frames...")
|
||||
|
||||
mcrfpy.createScene("test_recursive")
|
||||
ui = mcrfpy.sceneUI("test_recursive")
|
||||
test_recursive = mcrfpy.Scene("test_recursive")
|
||||
ui = test_recursive.children
|
||||
|
||||
# Create nested structure
|
||||
parent = mcrfpy.Frame(pos=(0, 0), size=(400, 400))
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ def test_uicollection_remove():
|
|||
"""Test UICollection.remove() takes a value, not an index."""
|
||||
print("Testing UICollection.remove()...")
|
||||
|
||||
mcrfpy.createScene("test_remove")
|
||||
ui = mcrfpy.sceneUI("test_remove")
|
||||
test_remove = mcrfpy.Scene("test_remove")
|
||||
ui = test_remove.children
|
||||
|
||||
frame1 = mcrfpy.Frame(pos=(0, 0), size=(100, 100))
|
||||
frame2 = mcrfpy.Frame(pos=(100, 0), size=(100, 100))
|
||||
|
|
@ -58,8 +58,8 @@ def test_uicollection_pop():
|
|||
"""Test UICollection.pop() removes and returns element at index."""
|
||||
print("\nTesting UICollection.pop()...")
|
||||
|
||||
mcrfpy.createScene("test_pop")
|
||||
ui = mcrfpy.sceneUI("test_pop")
|
||||
test_pop = mcrfpy.Scene("test_pop")
|
||||
ui = test_pop.children
|
||||
|
||||
frame1 = mcrfpy.Frame(pos=(0, 0), size=(100, 100))
|
||||
frame1.name = "first"
|
||||
|
|
@ -108,8 +108,8 @@ def test_uicollection_insert():
|
|||
"""Test UICollection.insert() inserts at given index."""
|
||||
print("\nTesting UICollection.insert()...")
|
||||
|
||||
mcrfpy.createScene("test_insert")
|
||||
ui = mcrfpy.sceneUI("test_insert")
|
||||
test_insert = mcrfpy.Scene("test_insert")
|
||||
ui = test_insert.children
|
||||
|
||||
frame1 = mcrfpy.Frame(pos=(0, 0), size=(100, 100))
|
||||
frame1.name = "first"
|
||||
|
|
@ -160,8 +160,8 @@ def test_entitycollection_pop_insert():
|
|||
"""Test EntityCollection.pop() and insert()."""
|
||||
print("\nTesting EntityCollection.pop() and insert()...")
|
||||
|
||||
mcrfpy.createScene("test_entity_pop")
|
||||
ui = mcrfpy.sceneUI("test_entity_pop")
|
||||
test_entity_pop = mcrfpy.Scene("test_entity_pop")
|
||||
ui = test_entity_pop.children
|
||||
|
||||
grid = mcrfpy.Grid(grid_size=(10, 10), pos=(0, 0), size=(400, 400))
|
||||
ui.append(grid)
|
||||
|
|
@ -204,8 +204,8 @@ def test_index_and_count():
|
|||
"""Test index() and count() methods."""
|
||||
print("\nTesting index() and count()...")
|
||||
|
||||
mcrfpy.createScene("test_index_count")
|
||||
ui = mcrfpy.sceneUI("test_index_count")
|
||||
test_index_count = mcrfpy.Scene("test_index_count")
|
||||
ui = test_index_count.children
|
||||
|
||||
frame1 = mcrfpy.Frame(pos=(0, 0), size=(100, 100))
|
||||
frame2 = mcrfpy.Frame(pos=(100, 0), size=(100, 100))
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import sys
|
|||
print("Debugging empty paths...")
|
||||
|
||||
# Create scene and grid
|
||||
mcrfpy.createScene("debug")
|
||||
debug = mcrfpy.Scene("debug")
|
||||
grid = mcrfpy.Grid(grid_x=10, grid_y=10)
|
||||
|
||||
# Initialize grid - all walkable
|
||||
|
|
@ -72,9 +72,9 @@ def timer_cb(dt):
|
|||
sys.exit(0)
|
||||
|
||||
# Quick UI setup
|
||||
ui = mcrfpy.sceneUI("debug")
|
||||
ui = debug.children
|
||||
ui.append(grid)
|
||||
mcrfpy.setScene("debug")
|
||||
debug.activate()
|
||||
mcrfpy.setTimer("exit", timer_cb, 100)
|
||||
|
||||
print("\nStarting timer...")
|
||||
|
|
@ -11,13 +11,13 @@ print(f"Automation available: {'automation' in dir(mcrfpy)}")
|
|||
|
||||
# Try to understand the scene state
|
||||
print("\nCreating and checking scene...")
|
||||
mcrfpy.createScene("debug_scene")
|
||||
mcrfpy.setScene("debug_scene")
|
||||
current = mcrfpy.currentScene()
|
||||
debug_scene = mcrfpy.Scene("debug_scene")
|
||||
debug_scene.activate()
|
||||
current = (mcrfpy.current_scene.name if mcrfpy.current_scene else None)
|
||||
print(f"Current scene: {current}")
|
||||
|
||||
# Get UI collection
|
||||
ui = mcrfpy.sceneUI("debug_scene")
|
||||
ui = debug_scene.children
|
||||
print(f"UI collection type: {type(ui)}")
|
||||
print(f"Initial UI elements: {len(ui)}")
|
||||
|
||||
|
|
|
|||
|
|
@ -32,8 +32,8 @@ def create_caption(x, y, text, font_size=16, text_color=WHITE, outline_color=BLA
|
|||
|
||||
def create_caption_example():
|
||||
"""Create a scene showing Caption UI element examples"""
|
||||
mcrfpy.createScene("caption_example")
|
||||
ui = mcrfpy.sceneUI("caption_example")
|
||||
caption_example = mcrfpy.Scene("caption_example")
|
||||
ui = caption_example.children
|
||||
|
||||
# Background frame
|
||||
bg = mcrfpy.Frame(0, 0, 800, 600, fill_color=FRAME_COLOR)
|
||||
|
|
@ -61,8 +61,8 @@ def create_caption_example():
|
|||
|
||||
def create_sprite_example():
|
||||
"""Create a scene showing Sprite UI element examples"""
|
||||
mcrfpy.createScene("sprite_example")
|
||||
ui = mcrfpy.sceneUI("sprite_example")
|
||||
sprite_example = mcrfpy.Scene("sprite_example")
|
||||
ui = sprite_example.children
|
||||
|
||||
# Background frame
|
||||
bg = mcrfpy.Frame(0, 0, 800, 600, fill_color=FRAME_COLOR)
|
||||
|
|
@ -122,8 +122,8 @@ def create_sprite_example():
|
|||
|
||||
def create_frame_example():
|
||||
"""Create a scene showing Frame UI element examples"""
|
||||
mcrfpy.createScene("frame_example")
|
||||
ui = mcrfpy.sceneUI("frame_example")
|
||||
frame_example = mcrfpy.Scene("frame_example")
|
||||
ui = frame_example.children
|
||||
|
||||
# Background
|
||||
bg = mcrfpy.Frame(0, 0, 800, 600, fill_color=SHADOW_COLOR)
|
||||
|
|
@ -184,8 +184,8 @@ def create_frame_example():
|
|||
|
||||
def create_grid_example():
|
||||
"""Create a scene showing Grid UI element examples"""
|
||||
mcrfpy.createScene("grid_example")
|
||||
ui = mcrfpy.sceneUI("grid_example")
|
||||
grid_example = mcrfpy.Scene("grid_example")
|
||||
ui = grid_example.children
|
||||
|
||||
# Background
|
||||
bg = mcrfpy.Frame(0, 0, 800, 600, fill_color=FRAME_COLOR)
|
||||
|
|
@ -234,8 +234,8 @@ def create_grid_example():
|
|||
|
||||
def create_entity_example():
|
||||
"""Create a scene showing Entity examples in a Grid"""
|
||||
mcrfpy.createScene("entity_example")
|
||||
ui = mcrfpy.sceneUI("entity_example")
|
||||
entity_example = mcrfpy.Scene("entity_example")
|
||||
ui = entity_example.children
|
||||
|
||||
# Background
|
||||
bg = mcrfpy.Frame(0, 0, 800, 600, fill_color=FRAME_COLOR)
|
||||
|
|
@ -310,8 +310,8 @@ def create_entity_example():
|
|||
|
||||
def create_combined_example():
|
||||
"""Create a scene showing all UI elements combined"""
|
||||
mcrfpy.createScene("combined_example")
|
||||
ui = mcrfpy.sceneUI("combined_example")
|
||||
combined_example = mcrfpy.Scene("combined_example")
|
||||
ui = combined_example.children
|
||||
|
||||
# Background
|
||||
bg = mcrfpy.Frame(0, 0, 800, 600, fill_color=SHADOW_COLOR)
|
||||
|
|
@ -417,7 +417,7 @@ def take_screenshots(runtime):
|
|||
scene_name, filename = screenshots[current_screenshot]
|
||||
|
||||
# Switch to the scene
|
||||
mcrfpy.setScene(scene_name)
|
||||
mcrfpy.current_scene = scene_name
|
||||
|
||||
# Take screenshot after a short delay to ensure rendering
|
||||
def capture():
|
||||
|
|
@ -435,7 +435,7 @@ def take_screenshots(runtime):
|
|||
mcrfpy.setTimer("capture", lambda r: capture(), 100)
|
||||
|
||||
# Start with the first scene
|
||||
mcrfpy.setScene("caption_example")
|
||||
caption_example.activate()
|
||||
|
||||
# Start the screenshot process
|
||||
print(f"\nStarting screenshot capture of {len(screenshots)} scenes...")
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ def capture_grid(runtime):
|
|||
sys.exit(0)
|
||||
|
||||
# Create scene
|
||||
mcrfpy.createScene("grid")
|
||||
grid = mcrfpy.Scene("grid")
|
||||
|
||||
# Load texture
|
||||
texture = mcrfpy.Texture("assets/kenney_TD_MR_IP.png", 16, 16)
|
||||
|
|
@ -92,7 +92,7 @@ for i, label in enumerate(labels):
|
|||
l.font = mcrfpy.default_font
|
||||
l.font_size = 10
|
||||
l.fill_color = mcrfpy.Color(255, 255, 255)
|
||||
mcrfpy.sceneUI("grid").append(l)
|
||||
grid.children.append(l)
|
||||
|
||||
# Add info caption
|
||||
info = mcrfpy.Caption(pos=(100, 680), text="Grid supports tiles and entities. Entities can move independently of the tile grid.")
|
||||
|
|
@ -101,7 +101,7 @@ info.font_size = 14
|
|||
info.fill_color = mcrfpy.Color(200, 200, 200)
|
||||
|
||||
# Add all elements to scene
|
||||
ui = mcrfpy.sceneUI("grid")
|
||||
ui = grid.children
|
||||
ui.append(title)
|
||||
ui.append(grid)
|
||||
ui.append(palette_label)
|
||||
|
|
@ -109,7 +109,7 @@ ui.append(palette)
|
|||
ui.append(info)
|
||||
|
||||
# Switch to scene
|
||||
mcrfpy.setScene("grid")
|
||||
grid.activate()
|
||||
|
||||
# Set timer to capture after rendering starts
|
||||
mcrfpy.setTimer("capture", capture_grid, 100)
|
||||
|
|
@ -16,7 +16,7 @@ def capture_sprites(runtime):
|
|||
sys.exit(0)
|
||||
|
||||
# Create scene
|
||||
mcrfpy.createScene("sprites")
|
||||
sprites = mcrfpy.Scene("sprites")
|
||||
|
||||
# Load texture
|
||||
texture = mcrfpy.Texture("assets/kenney_TD_MR_IP.png", 16, 16)
|
||||
|
|
@ -129,10 +129,10 @@ for i, scale in enumerate([1.0, 2.0, 3.0, 4.0]):
|
|||
s.texture = texture
|
||||
s.sprite_index = 84 # Player
|
||||
s.scale = (scale, scale)
|
||||
mcrfpy.sceneUI("sprites").append(s)
|
||||
sprites.children.append(s)
|
||||
|
||||
# Add all elements to scene
|
||||
ui = mcrfpy.sceneUI("sprites")
|
||||
ui = sprites.children
|
||||
ui.append(frame)
|
||||
ui.append(title)
|
||||
ui.append(player_label)
|
||||
|
|
@ -154,7 +154,7 @@ ui.append(armor)
|
|||
ui.append(scale_label)
|
||||
|
||||
# Switch to scene
|
||||
mcrfpy.setScene("sprites")
|
||||
sprites.activate()
|
||||
|
||||
# Set timer to capture after rendering starts
|
||||
mcrfpy.setTimer("capture", capture_sprites, 100)
|
||||
|
|
@ -11,15 +11,15 @@ def test_keypress_validation(timer_name):
|
|||
print("Testing keypressScene() validation...")
|
||||
|
||||
# Create test scene
|
||||
mcrfpy.createScene("test")
|
||||
mcrfpy.setScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
test.activate()
|
||||
|
||||
# Test 1: Valid callable (function)
|
||||
def key_handler(key, action):
|
||||
print(f"Key pressed: {key}, action: {action}")
|
||||
|
||||
try:
|
||||
mcrfpy.keypressScene(key_handler)
|
||||
test.on_key = key_handler
|
||||
print("✓ Accepted valid function as key handler")
|
||||
except Exception as e:
|
||||
print(f"✗ Rejected valid function: {e}")
|
||||
|
|
@ -27,7 +27,7 @@ def test_keypress_validation(timer_name):
|
|||
|
||||
# Test 2: Valid callable (lambda)
|
||||
try:
|
||||
mcrfpy.keypressScene(lambda k, a: None)
|
||||
test.on_key = lambda k, a: None
|
||||
print("✓ Accepted valid lambda as key handler")
|
||||
except Exception as e:
|
||||
print(f"✗ Rejected valid lambda: {e}")
|
||||
|
|
@ -35,7 +35,7 @@ def test_keypress_validation(timer_name):
|
|||
|
||||
# Test 3: Invalid - string
|
||||
try:
|
||||
mcrfpy.keypressScene("not callable")
|
||||
test.on_key = "not callable"
|
||||
print("✗ Should have rejected string as key handler")
|
||||
except TypeError as e:
|
||||
print(f"✓ Correctly rejected string: {e}")
|
||||
|
|
@ -45,7 +45,7 @@ def test_keypress_validation(timer_name):
|
|||
|
||||
# Test 4: Invalid - number
|
||||
try:
|
||||
mcrfpy.keypressScene(42)
|
||||
test.on_key = 42
|
||||
print("✗ Should have rejected number as key handler")
|
||||
except TypeError as e:
|
||||
print(f"✓ Correctly rejected number: {e}")
|
||||
|
|
@ -55,7 +55,7 @@ def test_keypress_validation(timer_name):
|
|||
|
||||
# Test 5: Invalid - None
|
||||
try:
|
||||
mcrfpy.keypressScene(None)
|
||||
test.on_key = None
|
||||
print("✗ Should have rejected None as key handler")
|
||||
except TypeError as e:
|
||||
print(f"✓ Correctly rejected None: {e}")
|
||||
|
|
@ -65,7 +65,7 @@ def test_keypress_validation(timer_name):
|
|||
|
||||
# Test 6: Invalid - dict
|
||||
try:
|
||||
mcrfpy.keypressScene({"not": "callable"})
|
||||
test.on_key = {"not": "callable"}
|
||||
print("✗ Should have rejected dict as key handler")
|
||||
except TypeError as e:
|
||||
print(f"✓ Correctly rejected dict: {e}")
|
||||
|
|
@ -79,7 +79,7 @@ def test_keypress_validation(timer_name):
|
|||
print(f"Class handler: {key}, {action}")
|
||||
|
||||
try:
|
||||
mcrfpy.keypressScene(KeyHandler())
|
||||
test.on_key = KeyHandler()
|
||||
print("✓ Accepted valid callable class instance")
|
||||
except Exception as e:
|
||||
print(f"✗ Rejected valid callable class: {e}")
|
||||
|
|
|
|||
|
|
@ -10,9 +10,9 @@ def test_transparency_workaround():
|
|||
print("=== Screenshot Transparency Fix Test ===\n")
|
||||
|
||||
# Create a scene
|
||||
mcrfpy.createScene("opaque_test")
|
||||
mcrfpy.setScene("opaque_test")
|
||||
ui = mcrfpy.sceneUI("opaque_test")
|
||||
opaque_test = mcrfpy.Scene("opaque_test")
|
||||
opaque_test.activate()
|
||||
ui = opaque_test.children
|
||||
|
||||
# WORKAROUND: Create a full-window opaque frame as the first element
|
||||
# This acts as an opaque background since the scene clears with transparent
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ def take_screenshot(runtime):
|
|||
sys.exit(0)
|
||||
|
||||
# Create minimal scene
|
||||
mcrfpy.createScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
|
||||
# Add a visible element
|
||||
caption = mcrfpy.Caption(pos=(100, 100), text="Screenshot Test")
|
||||
|
|
@ -36,8 +36,8 @@ caption.font = mcrfpy.default_font
|
|||
caption.fill_color = mcrfpy.Color(255, 255, 255)
|
||||
caption.font_size = 24
|
||||
|
||||
mcrfpy.sceneUI("test").append(caption)
|
||||
mcrfpy.setScene("test")
|
||||
test.children.append(caption)
|
||||
test.activate()
|
||||
|
||||
# Use timer to ensure rendering has started
|
||||
print("Setting timer...")
|
||||
|
|
|
|||
|
|
@ -25,9 +25,9 @@ def take_screenshot_and_exit():
|
|||
|
||||
# Set up a simple scene
|
||||
print("Creating test scene...")
|
||||
mcrfpy.createScene("test")
|
||||
mcrfpy.setScene("test")
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
test.activate()
|
||||
ui = test.children
|
||||
|
||||
# Add visible content - a white frame on default background
|
||||
frame = mcrfpy.Frame(pos=(100, 100), size=(200, 200),
|
||||
|
|
|
|||
|
|
@ -17,12 +17,12 @@ def my_callback(anim, target):
|
|||
def setup_and_run():
|
||||
"""Set up scene and run animation with callback"""
|
||||
# Create scene
|
||||
mcrfpy.createScene("callback_demo")
|
||||
mcrfpy.setScene("callback_demo")
|
||||
callback_demo = mcrfpy.Scene("callback_demo")
|
||||
callback_demo.activate()
|
||||
|
||||
# Create a frame to animate
|
||||
frame = mcrfpy.Frame((100, 100), (200, 200), fill_color=(255, 0, 0))
|
||||
ui = mcrfpy.sceneUI("callback_demo")
|
||||
ui = callback_demo.children
|
||||
ui.append(frame)
|
||||
|
||||
# Create animation with callback
|
||||
|
|
@ -42,7 +42,7 @@ def check_result(runtime):
|
|||
|
||||
# Test 2: Animation without callback
|
||||
print("\nTesting animation without callback...")
|
||||
ui = mcrfpy.sceneUI("callback_demo")
|
||||
ui = callback_demo.children
|
||||
frame = ui[0]
|
||||
|
||||
anim2 = mcrfpy.Animation("y", 300.0, 0.5, "linear")
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ class PathAnimator:
|
|||
self._animate_next_step()
|
||||
|
||||
# Create test scene
|
||||
mcrfpy.createScene("chain_test")
|
||||
chain_test = mcrfpy.Scene("chain_test")
|
||||
|
||||
# Create grid
|
||||
grid = mcrfpy.Grid(grid_x=20, grid_y=15)
|
||||
|
|
@ -97,7 +97,7 @@ enemy = mcrfpy.Entity((17, 12), grid=grid)
|
|||
enemy.sprite_index = 69 # E
|
||||
|
||||
# UI setup
|
||||
ui = mcrfpy.sceneUI("chain_test")
|
||||
ui = chain_test.children
|
||||
ui.append(grid)
|
||||
grid.position = (100, 100)
|
||||
grid.size = (600, 450)
|
||||
|
|
@ -201,8 +201,8 @@ def handle_input(key, state):
|
|||
info.text = "Positions reset"
|
||||
|
||||
# Setup
|
||||
mcrfpy.setScene("chain_test")
|
||||
mcrfpy.keypressScene(handle_input)
|
||||
chain_test.activate()
|
||||
chain_test.on_key = handle_input
|
||||
|
||||
# Camera update timer
|
||||
mcrfpy.setTimer("cam_update", update_camera, 100)
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ class AnimationTracker:
|
|||
mcrfpy.delTimer(f"check_{self.name}")
|
||||
|
||||
# Create test scene
|
||||
mcrfpy.createScene("anim_debug")
|
||||
anim_debug = mcrfpy.Scene("anim_debug")
|
||||
|
||||
# Simple grid
|
||||
grid = mcrfpy.Grid(grid_x=15, grid_y=10)
|
||||
|
|
@ -75,7 +75,7 @@ entity = mcrfpy.Entity((5, 5), grid=grid)
|
|||
entity.sprite_index = 64
|
||||
|
||||
# UI
|
||||
ui = mcrfpy.sceneUI("anim_debug")
|
||||
ui = anim_debug.children
|
||||
ui.append(grid)
|
||||
grid.position = (100, 150)
|
||||
grid.size = (450, 300)
|
||||
|
|
@ -215,8 +215,8 @@ def handle_input(key, state):
|
|||
print("Reset entity and cleared log")
|
||||
|
||||
# Setup
|
||||
mcrfpy.setScene("anim_debug")
|
||||
mcrfpy.keypressScene(handle_input)
|
||||
anim_debug.activate()
|
||||
anim_debug.on_key = handle_input
|
||||
mcrfpy.setTimer("update", update_display, 100)
|
||||
|
||||
print("Animation Debug Tool")
|
||||
|
|
|
|||
|
|
@ -6,11 +6,11 @@ Test Animation creation without timer
|
|||
import mcrfpy
|
||||
|
||||
print("1. Creating scene...")
|
||||
mcrfpy.createScene("test")
|
||||
mcrfpy.setScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
test.activate()
|
||||
|
||||
print("2. Getting UI...")
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
ui = test.children
|
||||
|
||||
print("3. Creating frame...")
|
||||
frame = mcrfpy.Frame(pos=(100, 100), size=(200, 200))
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ def test_result(name, passed, details=""):
|
|||
def test_1_replace_mode_default():
|
||||
"""Test that REPLACE mode is the default and works correctly"""
|
||||
try:
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
ui = test.children
|
||||
frame = mcrfpy.Frame(pos=(100, 100), size=(100, 100))
|
||||
ui.append(frame)
|
||||
|
||||
|
|
@ -55,7 +55,7 @@ def test_1_replace_mode_default():
|
|||
def test_2_replace_mode_explicit():
|
||||
"""Test explicit REPLACE mode"""
|
||||
try:
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
ui = test.children
|
||||
frame = mcrfpy.Frame(pos=(100, 100), size=(100, 100))
|
||||
ui.append(frame)
|
||||
|
||||
|
|
@ -73,7 +73,7 @@ def test_2_replace_mode_explicit():
|
|||
def test_3_queue_mode():
|
||||
"""Test QUEUE mode - animation should be queued"""
|
||||
try:
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
ui = test.children
|
||||
frame = mcrfpy.Frame(pos=(100, 100), size=(100, 100))
|
||||
ui.append(frame)
|
||||
|
||||
|
|
@ -95,7 +95,7 @@ def test_3_queue_mode():
|
|||
def test_4_error_mode():
|
||||
"""Test ERROR mode - should raise RuntimeError"""
|
||||
try:
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
ui = test.children
|
||||
frame = mcrfpy.Frame(pos=(100, 100), size=(100, 100))
|
||||
ui.append(frame)
|
||||
|
||||
|
|
@ -120,7 +120,7 @@ def test_4_error_mode():
|
|||
def test_5_invalid_conflict_mode():
|
||||
"""Test that invalid conflict_mode raises ValueError"""
|
||||
try:
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
ui = test.children
|
||||
frame = mcrfpy.Frame(pos=(100, 100), size=(100, 100))
|
||||
ui.append(frame)
|
||||
|
||||
|
|
@ -140,7 +140,7 @@ def test_5_invalid_conflict_mode():
|
|||
def test_6_different_properties_no_conflict():
|
||||
"""Test that different properties can animate simultaneously"""
|
||||
try:
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
ui = test.children
|
||||
frame = mcrfpy.Frame(pos=(100, 100), size=(100, 100))
|
||||
ui.append(frame)
|
||||
|
||||
|
|
@ -164,7 +164,7 @@ def test_6_different_properties_no_conflict():
|
|||
def test_7_different_targets_no_conflict():
|
||||
"""Test that same property on different targets doesn't conflict"""
|
||||
try:
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
ui = test.children
|
||||
frame1 = mcrfpy.Frame(pos=(100, 100), size=(100, 100))
|
||||
frame2 = mcrfpy.Frame(pos=(200, 200), size=(100, 100))
|
||||
ui.append(frame1)
|
||||
|
|
@ -187,7 +187,7 @@ def test_7_different_targets_no_conflict():
|
|||
def test_8_replace_completes_old():
|
||||
"""Test that REPLACE mode completes the old animation's value"""
|
||||
try:
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
ui = test.children
|
||||
frame = mcrfpy.Frame(pos=(0, 0), size=(100, 100))
|
||||
ui.append(frame)
|
||||
|
||||
|
|
@ -242,8 +242,8 @@ def run_all_tests(runtime):
|
|||
|
||||
|
||||
# Setup and run
|
||||
mcrfpy.createScene("test")
|
||||
mcrfpy.setScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
test.activate()
|
||||
|
||||
# Start tests after a brief delay to allow scene to initialize
|
||||
mcrfpy.setTimer("start", run_all_tests, 100)
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ def test_result(name, passed, details=""):
|
|||
def test_1_basic_animation():
|
||||
"""Test that basic animations still work"""
|
||||
try:
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
ui = test.children
|
||||
frame = mcrfpy.Frame(pos=(100, 100), size=(100, 100))
|
||||
ui.append(frame)
|
||||
|
||||
|
|
@ -48,7 +48,7 @@ def test_1_basic_animation():
|
|||
def test_2_remove_animated_object():
|
||||
"""Test removing object with active animation"""
|
||||
try:
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
ui = test.children
|
||||
frame = mcrfpy.Frame(pos=(100, 100), size=(100, 100))
|
||||
ui.append(frame)
|
||||
|
||||
|
|
@ -72,7 +72,7 @@ def test_2_remove_animated_object():
|
|||
def test_3_complete_animation():
|
||||
"""Test completing animation immediately"""
|
||||
try:
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
ui = test.children
|
||||
frame = mcrfpy.Frame(pos=(100, 100), size=(100, 100))
|
||||
ui.append(frame)
|
||||
|
||||
|
|
@ -97,7 +97,7 @@ def test_4_multiple_animations_timer():
|
|||
def create_animations(runtime):
|
||||
nonlocal success
|
||||
try:
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
ui = test.children
|
||||
frame = mcrfpy.Frame(pos=(200, 200), size=(100, 100))
|
||||
ui.append(frame)
|
||||
|
||||
|
|
@ -113,7 +113,7 @@ def test_4_multiple_animations_timer():
|
|||
mcrfpy.setTimer("exit", lambda t: None, 100)
|
||||
|
||||
# Clear scene
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
ui = test.children
|
||||
while len(ui) > 0:
|
||||
ui.remove(len(ui) - 1)
|
||||
|
||||
|
|
@ -124,10 +124,10 @@ def test_5_scene_cleanup():
|
|||
"""Test that changing scenes cleans up animations"""
|
||||
try:
|
||||
# Create a second scene
|
||||
mcrfpy.createScene("test2")
|
||||
test2 = mcrfpy.Scene("test2")
|
||||
|
||||
# Add animated objects to first scene
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
ui = test.children
|
||||
for i in range(5):
|
||||
frame = mcrfpy.Frame(pos=(50 * i, 100), size=(40, 40))
|
||||
ui.append(frame)
|
||||
|
|
@ -135,10 +135,10 @@ def test_5_scene_cleanup():
|
|||
anim.start(frame)
|
||||
|
||||
# Switch scenes (animations should become invalid)
|
||||
mcrfpy.setScene("test2")
|
||||
test2.activate()
|
||||
|
||||
# Switch back
|
||||
mcrfpy.setScene("test")
|
||||
test.activate()
|
||||
|
||||
test_result("Scene change cleanup", True)
|
||||
except Exception as e:
|
||||
|
|
@ -147,7 +147,7 @@ def test_5_scene_cleanup():
|
|||
def test_6_animation_after_clear():
|
||||
"""Test animations after clearing UI"""
|
||||
try:
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
ui = test.children
|
||||
|
||||
# Create and animate
|
||||
frame = mcrfpy.Frame(pos=(100, 100), size=(100, 100))
|
||||
|
|
@ -202,11 +202,11 @@ def print_results(runtime):
|
|||
mcrfpy.setTimer("exit", lambda t: sys.exit(0 if tests_failed == 0 else 1), 500)
|
||||
|
||||
# Setup and run
|
||||
mcrfpy.createScene("test")
|
||||
mcrfpy.setScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
test.activate()
|
||||
|
||||
# Add a background
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
ui = test.children
|
||||
bg = mcrfpy.Frame(pos=(0, 0), size=(1024, 768))
|
||||
bg.fill_color = mcrfpy.Color(20, 20, 30)
|
||||
ui.append(bg)
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ def clear_and_recreate(runtime):
|
|||
"""Clear UI and recreate - mimics demo switching"""
|
||||
print(f"\nTimer called at {runtime}")
|
||||
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
ui = test.children
|
||||
|
||||
# Remove all but first 2 items (like clear_demo_objects)
|
||||
print(f"Scene has {len(ui)} elements before clearing")
|
||||
|
|
@ -37,9 +37,9 @@ def clear_and_recreate(runtime):
|
|||
|
||||
# Create initial scene
|
||||
print("Creating scene...")
|
||||
mcrfpy.createScene("test")
|
||||
mcrfpy.setScene("test")
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
test.activate()
|
||||
ui = test.children
|
||||
|
||||
# Add title and subtitle (to preserve during clearing)
|
||||
title = mcrfpy.Caption(pos=(400, 20), text="Test Title")
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ print("A* Pathfinding Test")
|
|||
print("==================")
|
||||
|
||||
# Create scene and grid
|
||||
mcrfpy.createScene("astar_test")
|
||||
astar_test = mcrfpy.Scene("astar_test")
|
||||
grid = mcrfpy.Grid(grid_x=20, grid_y=20)
|
||||
|
||||
# Initialize grid - all walkable
|
||||
|
|
@ -119,12 +119,12 @@ def visual_test(runtime):
|
|||
sys.exit(0)
|
||||
|
||||
# Set up minimal UI for visual test
|
||||
ui = mcrfpy.sceneUI("astar_test")
|
||||
ui = astar_test.children
|
||||
ui.append(grid)
|
||||
grid.position = (50, 50)
|
||||
grid.size = (400, 400)
|
||||
|
||||
mcrfpy.setScene("astar_test")
|
||||
astar_test.activate()
|
||||
mcrfpy.setTimer("visual", visual_test, 100)
|
||||
|
||||
print("\nStarting visual test...")
|
||||
|
|
@ -6,6 +6,6 @@ import sys
|
|||
print("Testing audio cleanup...")
|
||||
|
||||
# Create a scene and immediately exit
|
||||
mcrfpy.createScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
print("Exiting now...")
|
||||
sys.exit(0)
|
||||
|
|
@ -8,8 +8,8 @@ def test_bounds_property():
|
|||
"""Test bounds property returns correct local bounds"""
|
||||
print("Testing bounds property...")
|
||||
|
||||
mcrfpy.createScene("test_bounds")
|
||||
ui = mcrfpy.sceneUI("test_bounds")
|
||||
test_bounds = mcrfpy.Scene("test_bounds")
|
||||
ui = test_bounds.children
|
||||
|
||||
frame = mcrfpy.Frame(pos=(50, 75), size=(200, 150))
|
||||
ui.append(frame)
|
||||
|
|
@ -27,8 +27,8 @@ def test_global_bounds_no_parent():
|
|||
"""Test global_bounds equals bounds when no parent"""
|
||||
print("Testing global_bounds without parent...")
|
||||
|
||||
mcrfpy.createScene("test_gb1")
|
||||
ui = mcrfpy.sceneUI("test_gb1")
|
||||
test_gb1 = mcrfpy.Scene("test_gb1")
|
||||
ui = test_gb1.children
|
||||
|
||||
frame = mcrfpy.Frame(pos=(100, 100), size=(50, 50))
|
||||
ui.append(frame)
|
||||
|
|
@ -45,8 +45,8 @@ def test_global_bounds_with_parent():
|
|||
"""Test global_bounds correctly adds parent offset"""
|
||||
print("Testing global_bounds with parent...")
|
||||
|
||||
mcrfpy.createScene("test_gb2")
|
||||
ui = mcrfpy.sceneUI("test_gb2")
|
||||
test_gb2 = mcrfpy.Scene("test_gb2")
|
||||
ui = test_gb2.children
|
||||
|
||||
parent = mcrfpy.Frame(pos=(100, 100), size=(200, 200))
|
||||
ui.append(parent)
|
||||
|
|
@ -67,8 +67,8 @@ def test_global_bounds_nested():
|
|||
"""Test global_bounds with deeply nested hierarchy"""
|
||||
print("Testing global_bounds with nested hierarchy...")
|
||||
|
||||
mcrfpy.createScene("test_gb3")
|
||||
ui = mcrfpy.sceneUI("test_gb3")
|
||||
test_gb3 = mcrfpy.Scene("test_gb3")
|
||||
ui = test_gb3.children
|
||||
|
||||
# Create 3-level hierarchy
|
||||
root = mcrfpy.Frame(pos=(10, 10), size=(300, 300))
|
||||
|
|
@ -92,8 +92,8 @@ def test_all_drawable_types_have_bounds():
|
|||
"""Test that all drawable types have bounds properties"""
|
||||
print("Testing bounds on all drawable types...")
|
||||
|
||||
mcrfpy.createScene("test_types")
|
||||
ui = mcrfpy.sceneUI("test_types")
|
||||
test_types = mcrfpy.Scene("test_types")
|
||||
ui = test_types.children
|
||||
|
||||
types_to_test = [
|
||||
("Frame", mcrfpy.Frame(pos=(0, 0), size=(100, 100))),
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ print()
|
|||
print("Test 3: Function creating mcrfpy objects")
|
||||
def create_scene():
|
||||
try:
|
||||
mcrfpy.createScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
print(" ✓ Created scene")
|
||||
|
||||
# Now try range
|
||||
|
|
@ -69,7 +69,7 @@ print()
|
|||
print("Test 4: Exact failing pattern")
|
||||
def failing_pattern():
|
||||
try:
|
||||
mcrfpy.createScene("failing_test")
|
||||
failing_test = mcrfpy.Scene("failing_test")
|
||||
grid = mcrfpy.Grid(grid_x=14, grid_y=10)
|
||||
|
||||
# This is where it fails in the demos
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ print("Testing Color fix...")
|
|||
|
||||
# Test 1: Create grid
|
||||
try:
|
||||
mcrfpy.createScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
grid = mcrfpy.Grid(grid_x=5, grid_y=5)
|
||||
print("✓ Grid created")
|
||||
except Exception as e:
|
||||
|
|
|
|||
|
|
@ -178,5 +178,5 @@ def test_color_helpers(runtime):
|
|||
sys.exit(0 if all_pass else 1)
|
||||
|
||||
# Run test
|
||||
mcrfpy.createScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
mcrfpy.setTimer("test", test_color_helpers, 100)
|
||||
|
|
@ -9,7 +9,7 @@ print("=" * 50)
|
|||
# Test 1: Basic Color assignment
|
||||
print("Test 1: Color assignment in grid")
|
||||
try:
|
||||
mcrfpy.createScene("test1")
|
||||
test1 = mcrfpy.Scene("test1")
|
||||
grid = mcrfpy.Grid(grid_x=25, grid_y=15)
|
||||
|
||||
# Assign color to a cell
|
||||
|
|
@ -27,7 +27,7 @@ except Exception as e:
|
|||
# Test 2: Multiple color assignments
|
||||
print("\nTest 2: Multiple color assignments")
|
||||
try:
|
||||
mcrfpy.createScene("test2")
|
||||
test2 = mcrfpy.Scene("test2")
|
||||
grid = mcrfpy.Grid(grid_x=25, grid_y=15)
|
||||
|
||||
# Multiple properties including color
|
||||
|
|
@ -54,7 +54,7 @@ print("\nTest 3: Exact pattern from dijkstra_demo_final.py")
|
|||
try:
|
||||
# Recreate the exact function
|
||||
def create_demo():
|
||||
mcrfpy.createScene("dijkstra_demo")
|
||||
dijkstra_demo = mcrfpy.Scene("dijkstra_demo")
|
||||
|
||||
# Create grid
|
||||
grid = mcrfpy.Grid(grid_x=25, grid_y=15)
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ print("=" * 50)
|
|||
# Test 1: Setting color with tuple (old way)
|
||||
print("Test 1: Setting color with tuple")
|
||||
try:
|
||||
mcrfpy.createScene("test1")
|
||||
test1 = mcrfpy.Scene("test1")
|
||||
grid = mcrfpy.Grid(grid_x=5, grid_y=5)
|
||||
|
||||
# This should work (PyArg_ParseTuple expects tuple)
|
||||
|
|
@ -26,7 +26,7 @@ print()
|
|||
# Test 2: Setting color with Color object (the bug)
|
||||
print("Test 2: Setting color with Color object")
|
||||
try:
|
||||
mcrfpy.createScene("test2")
|
||||
test2 = mcrfpy.Scene("test2")
|
||||
grid = mcrfpy.Grid(grid_x=5, grid_y=5)
|
||||
|
||||
# This will fail in PyArg_ParseTuple but not report it
|
||||
|
|
@ -45,7 +45,7 @@ print()
|
|||
# Test 3: Multiple color assignments
|
||||
print("Test 3: Multiple Color assignments (reproducing original bug)")
|
||||
try:
|
||||
mcrfpy.createScene("test3")
|
||||
test3 = mcrfpy.Scene("test3")
|
||||
grid = mcrfpy.Grid(grid_x=25, grid_y=15)
|
||||
|
||||
# Do multiple color assignments
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ import sys
|
|||
|
||||
def create_test_grid():
|
||||
"""Create a test grid with obstacles"""
|
||||
mcrfpy.createScene("dijkstra_test")
|
||||
dijkstra_test = mcrfpy.Scene("dijkstra_test")
|
||||
|
||||
# Create grid
|
||||
grid = mcrfpy.Grid(grid_x=20, grid_y=20)
|
||||
|
|
@ -212,7 +212,7 @@ print("=====================================")
|
|||
|
||||
# Set up scene
|
||||
grid = create_test_grid()
|
||||
ui = mcrfpy.sceneUI("dijkstra_test")
|
||||
ui = dijkstra_test.children
|
||||
ui.append(grid)
|
||||
|
||||
# Add title
|
||||
|
|
@ -224,4 +224,4 @@ ui.append(title)
|
|||
mcrfpy.setTimer("test", run_test, 100)
|
||||
|
||||
# Show scene
|
||||
mcrfpy.setScene("dijkstra_test")
|
||||
dijkstra_test.activate()
|
||||
|
|
@ -6,8 +6,8 @@ Test if AnimationManager crashes with no animations
|
|||
import mcrfpy
|
||||
|
||||
print("Creating empty scene...")
|
||||
mcrfpy.createScene("test")
|
||||
mcrfpy.setScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
test.activate()
|
||||
|
||||
print("Scene created, no animations added")
|
||||
print("Starting game loop in 100ms...")
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import mcrfpy
|
|||
import sys
|
||||
|
||||
# Create scene
|
||||
mcrfpy.createScene("test_anim")
|
||||
test_anim = mcrfpy.Scene("test_anim")
|
||||
|
||||
# Create simple grid
|
||||
grid = mcrfpy.Grid(grid_x=15, grid_y=15)
|
||||
|
|
@ -42,7 +42,7 @@ entity = mcrfpy.Entity((5, 5), grid=grid)
|
|||
entity.sprite_index = 64 # @
|
||||
|
||||
# UI setup
|
||||
ui = mcrfpy.sceneUI("test_anim")
|
||||
ui = test_anim.children
|
||||
ui.append(grid)
|
||||
grid.position = (100, 100)
|
||||
grid.size = (450, 450) # 15 * 30 pixels per cell
|
||||
|
|
@ -182,8 +182,8 @@ def handle_input(key, state):
|
|||
print(f"Reset entity to ({entity.x}, {entity.y})")
|
||||
|
||||
# Set scene
|
||||
mcrfpy.setScene("test_anim")
|
||||
mcrfpy.keypressScene(handle_input)
|
||||
test_anim.activate()
|
||||
test_anim.on_key = handle_input
|
||||
|
||||
# Start position update timer
|
||||
mcrfpy.setTimer("update_pos", update_position_display, 200)
|
||||
|
|
|
|||
|
|
@ -12,11 +12,11 @@ def test_remove_by_entity():
|
|||
|
||||
# Create a test scene and grid
|
||||
scene_name = "test_entity_remove"
|
||||
mcrfpy.createScene(scene_name)
|
||||
_scene = mcrfpy.Scene(scene_name)
|
||||
|
||||
# Create a grid (entities need a grid)
|
||||
grid = mcrfpy.Grid() # Default 2x2 grid is fine for testing
|
||||
mcrfpy.sceneUI(scene_name).append(grid)
|
||||
_scene.children.append(grid) # TODO: Replace _scene with correct Scene object
|
||||
|
||||
# Get the entity collection
|
||||
entities = grid.entities
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
import mcrfpy
|
||||
|
||||
# Create scene and grid
|
||||
mcrfpy.createScene("test")
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
ui = test.children
|
||||
|
||||
# Create texture and grid
|
||||
texture = mcrfpy.Texture("assets/kenney_TD_MR_IP.png", 16, 16)
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ print("UIEntity::setProperty for 'x' and 'y' properties.")
|
|||
print()
|
||||
|
||||
# Create scene to demonstrate
|
||||
mcrfpy.createScene("fix_demo")
|
||||
fix_demo = mcrfpy.Scene("fix_demo")
|
||||
|
||||
# Create grid
|
||||
grid = mcrfpy.Grid(grid_x=15, grid_y=10)
|
||||
|
|
@ -49,7 +49,7 @@ entity = mcrfpy.Entity((2, 2), grid=grid)
|
|||
entity.sprite_index = 64 # @
|
||||
|
||||
# UI
|
||||
ui = mcrfpy.sceneUI("fix_demo")
|
||||
ui = fix_demo.children
|
||||
ui.append(grid)
|
||||
grid.position = (100, 150)
|
||||
grid.size = (450, 300)
|
||||
|
|
@ -111,8 +111,8 @@ def handle_input(key, state):
|
|||
status.text = "Reset entity to (2,2)"
|
||||
|
||||
# Setup
|
||||
mcrfpy.setScene("fix_demo")
|
||||
mcrfpy.keypressScene(handle_input)
|
||||
fix_demo.activate()
|
||||
fix_demo.on_key = handle_input
|
||||
mcrfpy.setTimer("update", update_display, 100)
|
||||
|
||||
print("Ready to demonstrate the issue.")
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ print("Testing Entity.path_to() method...")
|
|||
print("=" * 50)
|
||||
|
||||
# Create scene and grid
|
||||
mcrfpy.createScene("path_test")
|
||||
path_test = mcrfpy.Scene("path_test")
|
||||
grid = mcrfpy.Grid(grid_x=10, grid_y=10)
|
||||
|
||||
# Set up a simple map with some walls
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ except Exception as e:
|
|||
|
||||
# Test 2: Entity in grid with walls blocking path
|
||||
print("\nTest 2: Completely blocked path")
|
||||
mcrfpy.createScene("blocked_test")
|
||||
blocked_test = mcrfpy.Scene("blocked_test")
|
||||
grid = mcrfpy.Grid(grid_x=5, grid_y=5)
|
||||
|
||||
# Make all tiles walkable first
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ FLOOR_COLOR = mcrfpy.Color(200, 200, 220)
|
|||
|
||||
def test_exact_pattern():
|
||||
"""Exact code from dijkstra_demo_final.py"""
|
||||
mcrfpy.createScene("dijkstra_demo")
|
||||
dijkstra_demo = mcrfpy.Scene("dijkstra_demo")
|
||||
|
||||
# Create grid
|
||||
grid = mcrfpy.Grid(grid_x=25, grid_y=15)
|
||||
|
|
@ -48,7 +48,7 @@ print("Test 2: Breaking it down step by step...")
|
|||
|
||||
# Step 1: Scene and grid
|
||||
try:
|
||||
mcrfpy.createScene("test2")
|
||||
test2 = mcrfpy.Scene("test2")
|
||||
grid = mcrfpy.Grid(grid_x=25, grid_y=15)
|
||||
print(" ✓ Step 1: Scene and grid created")
|
||||
except Exception as e:
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ def take_second_screenshot(runtime):
|
|||
def animate_frames(runtime):
|
||||
"""Animate frames to demonstrate clipping"""
|
||||
mcrfpy.delTimer("animate")
|
||||
scene = mcrfpy.sceneUI("test")
|
||||
scene = test.children
|
||||
# Move child frames
|
||||
parent1 = scene[0]
|
||||
parent2 = scene[1]
|
||||
|
|
@ -36,7 +36,7 @@ def test_clipping(runtime):
|
|||
|
||||
print("Testing UIFrame clipping functionality...")
|
||||
|
||||
scene = mcrfpy.sceneUI("test")
|
||||
scene = test.children
|
||||
|
||||
# Create parent frame with clipping disabled (default)
|
||||
parent1 = Frame(pos=(50, 50), size=(200, 150),
|
||||
|
|
@ -119,15 +119,15 @@ def test_clipping(runtime):
|
|||
|
||||
def handle_keypress(key, modifiers):
|
||||
if key == "c":
|
||||
scene = mcrfpy.sceneUI("test")
|
||||
scene = test.children
|
||||
parent1 = scene[0]
|
||||
parent1.clip_children = not parent1.clip_children
|
||||
print(f"Toggled parent1 clip_children to: {parent1.clip_children}")
|
||||
|
||||
# Main execution
|
||||
print("Creating test scene...")
|
||||
mcrfpy.createScene("test")
|
||||
mcrfpy.setScene("test")
|
||||
mcrfpy.keypressScene(handle_keypress)
|
||||
test = mcrfpy.Scene("test")
|
||||
test.activate()
|
||||
test.on_key = handle_keypress
|
||||
mcrfpy.setTimer("test_clipping", test_clipping, 100)
|
||||
print("Test scheduled, running...")
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ def test_nested_clipping(runtime):
|
|||
print("Testing advanced UIFrame clipping with nested frames...")
|
||||
|
||||
# Create test scene
|
||||
scene = mcrfpy.sceneUI("test")
|
||||
scene = test.children
|
||||
|
||||
# Create outer frame with clipping enabled
|
||||
outer = Frame(pos=(50, 50), size=(400, 300),
|
||||
|
|
@ -94,8 +94,8 @@ def test_nested_clipping(runtime):
|
|||
|
||||
# Main execution
|
||||
print("Creating advanced test scene...")
|
||||
mcrfpy.createScene("test")
|
||||
mcrfpy.setScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
test.activate()
|
||||
|
||||
# Schedule the test
|
||||
mcrfpy.setTimer("test_nested_clipping", test_nested_clipping, 100)
|
||||
|
|
|
|||
|
|
@ -9,8 +9,8 @@ def test_grid_background():
|
|||
print("Testing Grid Background Color...")
|
||||
|
||||
# Create a test scene
|
||||
mcrfpy.createScene("test")
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
ui = test.children
|
||||
|
||||
# Create a grid with default background
|
||||
grid = mcrfpy.Grid(pos=(50, 50), size=(400, 300), grid_size=(20, 15))
|
||||
|
|
@ -40,7 +40,7 @@ def test_grid_background():
|
|||
info_frame.children.append(color_display)
|
||||
|
||||
# Activate the scene
|
||||
mcrfpy.setScene("test")
|
||||
test.activate()
|
||||
|
||||
def run_tests(dt):
|
||||
"""Run background color tests"""
|
||||
|
|
|
|||
|
|
@ -9,8 +9,8 @@ def test_properties():
|
|||
"""Test grid cell event properties exist and work"""
|
||||
print("Testing grid cell event properties...")
|
||||
|
||||
mcrfpy.createScene("test_props")
|
||||
ui = mcrfpy.sceneUI("test_props")
|
||||
test_props = mcrfpy.Scene("test_props")
|
||||
ui = test_props.children
|
||||
grid = mcrfpy.Grid(grid_size=(5, 5), pos=(100, 100), size=(200, 200))
|
||||
ui.append(grid)
|
||||
|
||||
|
|
@ -45,9 +45,9 @@ def test_cell_hover():
|
|||
"""Test cell hover events"""
|
||||
print("Testing cell hover events...")
|
||||
|
||||
mcrfpy.createScene("test_hover")
|
||||
ui = mcrfpy.sceneUI("test_hover")
|
||||
mcrfpy.setScene("test_hover")
|
||||
test_hover = mcrfpy.Scene("test_hover")
|
||||
ui = test_hover.children
|
||||
test_hover.activate()
|
||||
|
||||
grid = mcrfpy.Grid(grid_size=(5, 5), pos=(100, 100), size=(200, 200))
|
||||
ui.append(grid)
|
||||
|
|
@ -89,9 +89,9 @@ def test_cell_click():
|
|||
"""Test cell click events"""
|
||||
print("Testing cell click events...")
|
||||
|
||||
mcrfpy.createScene("test_click")
|
||||
ui = mcrfpy.sceneUI("test_click")
|
||||
mcrfpy.setScene("test_click")
|
||||
test_click = mcrfpy.Scene("test_click")
|
||||
ui = test_click.children
|
||||
test_click.activate()
|
||||
|
||||
grid = mcrfpy.Grid(grid_size=(5, 5), pos=(100, 100), size=(200, 200))
|
||||
ui.append(grid)
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ def run_test(runtime):
|
|||
mcrfpy.delTimer("test")
|
||||
|
||||
# Get the scene UI
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
ui = test.children
|
||||
|
||||
# Create a grid without texture (uses default 16x16 cells)
|
||||
print("Test 1: Creating Grid with children...")
|
||||
|
|
@ -122,8 +122,8 @@ def run_test(runtime):
|
|||
mcrfpy.setTimer("screenshot", take_screenshot, 100)
|
||||
|
||||
# Create a test scene
|
||||
mcrfpy.createScene("test")
|
||||
mcrfpy.setScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
test.activate()
|
||||
|
||||
# Schedule test to run after game loop starts
|
||||
mcrfpy.setTimer("test", run_test, 50)
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ print("Testing grid creation...")
|
|||
|
||||
# First create scene
|
||||
try:
|
||||
mcrfpy.createScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
print("✓ Created scene")
|
||||
except Exception as e:
|
||||
print(f"✗ Failed to create scene: {e}")
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import traceback
|
|||
print("Testing grid creation with detailed error...")
|
||||
|
||||
# Create scene first
|
||||
mcrfpy.createScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
|
||||
# Try to create grid and get detailed error
|
||||
try:
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ print("=" * 50)
|
|||
# Test 1: Basic grid.at() calls
|
||||
print("Test 1: Basic grid.at() calls")
|
||||
try:
|
||||
mcrfpy.createScene("test1")
|
||||
test1 = mcrfpy.Scene("test1")
|
||||
grid = mcrfpy.Grid(grid_x=5, grid_y=5)
|
||||
|
||||
# Single call
|
||||
|
|
@ -32,7 +32,7 @@ print()
|
|||
# Test 2: Grid.at() in a loop
|
||||
print("Test 2: Grid.at() in simple loop")
|
||||
try:
|
||||
mcrfpy.createScene("test2")
|
||||
test2 = mcrfpy.Scene("test2")
|
||||
grid = mcrfpy.Grid(grid_x=5, grid_y=5)
|
||||
|
||||
for i in range(3):
|
||||
|
|
@ -50,7 +50,7 @@ print()
|
|||
# Test 3: Nested loops with grid.at()
|
||||
print("Test 3: Nested loops with grid.at()")
|
||||
try:
|
||||
mcrfpy.createScene("test3")
|
||||
test3 = mcrfpy.Scene("test3")
|
||||
grid = mcrfpy.Grid(grid_x=5, grid_y=5)
|
||||
|
||||
for y in range(3):
|
||||
|
|
@ -68,7 +68,7 @@ print()
|
|||
# Test 4: Exact pattern from failing code
|
||||
print("Test 4: Exact failing pattern")
|
||||
try:
|
||||
mcrfpy.createScene("test4")
|
||||
test4 = mcrfpy.Scene("test4")
|
||||
grid = mcrfpy.Grid(grid_x=25, grid_y=15)
|
||||
grid.fill_color = mcrfpy.Color(0, 0, 0)
|
||||
|
||||
|
|
@ -109,7 +109,7 @@ print()
|
|||
# Test 5: Is it related to the number of grid.at() calls?
|
||||
print("Test 5: Testing grid.at() call limits")
|
||||
try:
|
||||
mcrfpy.createScene("test5")
|
||||
test5 = mcrfpy.Scene("test5")
|
||||
grid = mcrfpy.Grid(grid_x=10, grid_y=10)
|
||||
|
||||
count = 0
|
||||
|
|
|
|||
|
|
@ -17,9 +17,9 @@ def run_tests():
|
|||
print("=== Headless Benchmark Tests ===\n")
|
||||
|
||||
# Create a test scene
|
||||
mcrfpy.createScene("benchmark_test")
|
||||
mcrfpy.setScene("benchmark_test")
|
||||
ui = mcrfpy.sceneUI("benchmark_test")
|
||||
benchmark_test = mcrfpy.Scene("benchmark_test")
|
||||
benchmark_test.activate()
|
||||
ui = benchmark_test.children
|
||||
|
||||
# Add some UI elements to have something to render
|
||||
frame = mcrfpy.Frame(pos=(100, 100), size=(200, 200))
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ def test_headless_click():
|
|||
"""Test that clicks work in headless mode via automation API"""
|
||||
print("Testing headless click events...")
|
||||
|
||||
mcrfpy.createScene("test_click")
|
||||
ui = mcrfpy.sceneUI("test_click")
|
||||
mcrfpy.setScene("test_click")
|
||||
test_click = mcrfpy.Scene("test_click")
|
||||
ui = test_click.children
|
||||
test_click.activate()
|
||||
|
||||
# Create a frame at known position
|
||||
frame = mcrfpy.Frame(pos=(100, 100), size=(200, 200))
|
||||
|
|
@ -64,9 +64,9 @@ def test_click_miss():
|
|||
click_count = 0
|
||||
click_positions = []
|
||||
|
||||
mcrfpy.createScene("test_miss")
|
||||
ui = mcrfpy.sceneUI("test_miss")
|
||||
mcrfpy.setScene("test_miss")
|
||||
test_miss = mcrfpy.Scene("test_miss")
|
||||
ui = test_miss.children
|
||||
test_miss.activate()
|
||||
|
||||
# Create a frame at known position
|
||||
frame = mcrfpy.Frame(pos=(100, 100), size=(100, 100))
|
||||
|
|
|
|||
|
|
@ -6,9 +6,9 @@ from mcrfpy import automation
|
|||
import sys
|
||||
|
||||
# Create scene
|
||||
mcrfpy.createScene("detect_test")
|
||||
ui = mcrfpy.sceneUI("detect_test")
|
||||
mcrfpy.setScene("detect_test")
|
||||
detect_test = mcrfpy.Scene("detect_test")
|
||||
ui = detect_test.children
|
||||
detect_test.activate()
|
||||
|
||||
# Create a frame
|
||||
frame = mcrfpy.Frame(pos=(100, 100), size=(200, 200))
|
||||
|
|
|
|||
|
|
@ -5,9 +5,9 @@ import mcrfpy
|
|||
import sys
|
||||
|
||||
# Create scene
|
||||
mcrfpy.createScene("headless_test")
|
||||
ui = mcrfpy.sceneUI("headless_test")
|
||||
mcrfpy.setScene("headless_test")
|
||||
headless_test = mcrfpy.Scene("headless_test")
|
||||
ui = headless_test.children
|
||||
headless_test.activate()
|
||||
|
||||
# Create a visible indicator
|
||||
frame = mcrfpy.Frame(pos=(200, 200), size=(400, 200))
|
||||
|
|
|
|||
|
|
@ -108,11 +108,11 @@ def test_metrics(runtime):
|
|||
|
||||
# Set up test scene
|
||||
print("Setting up metrics test scene...")
|
||||
mcrfpy.createScene("metrics_test")
|
||||
mcrfpy.setScene("metrics_test")
|
||||
metrics_test = mcrfpy.Scene("metrics_test")
|
||||
metrics_test.activate()
|
||||
|
||||
# Add some UI elements
|
||||
ui = mcrfpy.sceneUI("metrics_test")
|
||||
ui = metrics_test.children
|
||||
|
||||
# Create various UI elements
|
||||
frame1 = mcrfpy.Frame(pos=(10, 10), size=(200, 150))
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@ def test_callback_assignment():
|
|||
"""Test that on_enter and on_exit callbacks can be assigned"""
|
||||
print("Testing callback assignment...")
|
||||
|
||||
mcrfpy.createScene("test_assign")
|
||||
ui = mcrfpy.sceneUI("test_assign")
|
||||
test_assign = mcrfpy.Scene("test_assign")
|
||||
ui = test_assign.children
|
||||
|
||||
frame = mcrfpy.Frame(pos=(100, 100), size=(200, 200))
|
||||
ui.append(frame)
|
||||
|
|
@ -50,8 +50,8 @@ def test_hovered_property():
|
|||
"""Test that hovered property exists and is initially False"""
|
||||
print("Testing hovered property...")
|
||||
|
||||
mcrfpy.createScene("test_hovered")
|
||||
ui = mcrfpy.sceneUI("test_hovered")
|
||||
test_hovered = mcrfpy.Scene("test_hovered")
|
||||
ui = test_hovered.children
|
||||
|
||||
frame = mcrfpy.Frame(pos=(50, 50), size=(100, 100))
|
||||
ui.append(frame)
|
||||
|
|
@ -77,8 +77,8 @@ def test_all_types_have_events():
|
|||
"""Test that all drawable types have on_enter/on_exit properties"""
|
||||
print("Testing events on all drawable types...")
|
||||
|
||||
mcrfpy.createScene("test_types")
|
||||
ui = mcrfpy.sceneUI("test_types")
|
||||
test_types = mcrfpy.Scene("test_types")
|
||||
ui = test_types.children
|
||||
|
||||
types_to_test = [
|
||||
("Frame", mcrfpy.Frame(pos=(0, 0), size=(100, 100))),
|
||||
|
|
@ -121,9 +121,9 @@ def test_enter_exit_simulation():
|
|||
enter_positions = []
|
||||
exit_positions = []
|
||||
|
||||
mcrfpy.createScene("test_sim")
|
||||
ui = mcrfpy.sceneUI("test_sim")
|
||||
mcrfpy.setScene("test_sim")
|
||||
test_sim = mcrfpy.Scene("test_sim")
|
||||
ui = test_sim.children
|
||||
test_sim.activate()
|
||||
|
||||
# Create a frame at known position
|
||||
frame = mcrfpy.Frame(pos=(100, 100), size=(200, 200))
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ def test_ui_constructors(runtime):
|
|||
sys.exit(0)
|
||||
|
||||
# Create a basic scene so the game can start
|
||||
mcrfpy.createScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
|
||||
# Schedule the test to run after game initialization
|
||||
mcrfpy.setTimer("test", test_ui_constructors, 100)
|
||||
|
|
@ -9,8 +9,8 @@ def test_on_move_property():
|
|||
"""Test that on_move property exists and can be assigned"""
|
||||
print("Testing on_move property...")
|
||||
|
||||
mcrfpy.createScene("test_move_prop")
|
||||
ui = mcrfpy.sceneUI("test_move_prop")
|
||||
test_move_prop = mcrfpy.Scene("test_move_prop")
|
||||
ui = test_move_prop.children
|
||||
|
||||
frame = mcrfpy.Frame(pos=(100, 100), size=(200, 200))
|
||||
ui.append(frame)
|
||||
|
|
@ -33,9 +33,9 @@ def test_on_move_fires():
|
|||
"""Test that on_move fires when mouse moves within bounds"""
|
||||
print("Testing on_move callback firing...")
|
||||
|
||||
mcrfpy.createScene("test_move")
|
||||
ui = mcrfpy.sceneUI("test_move")
|
||||
mcrfpy.setScene("test_move")
|
||||
test_move = mcrfpy.Scene("test_move")
|
||||
ui = test_move.children
|
||||
test_move.activate()
|
||||
|
||||
# Create a frame at known position
|
||||
frame = mcrfpy.Frame(pos=(100, 100), size=(200, 200))
|
||||
|
|
@ -78,9 +78,9 @@ def test_on_move_not_outside():
|
|||
"""Test that on_move doesn't fire when mouse is outside bounds"""
|
||||
print("Testing on_move doesn't fire outside bounds...")
|
||||
|
||||
mcrfpy.createScene("test_move_outside")
|
||||
ui = mcrfpy.sceneUI("test_move_outside")
|
||||
mcrfpy.setScene("test_move_outside")
|
||||
test_move_outside = mcrfpy.Scene("test_move_outside")
|
||||
ui = test_move_outside.children
|
||||
test_move_outside.activate()
|
||||
|
||||
# Frame at 100-300, 100-300
|
||||
frame = mcrfpy.Frame(pos=(100, 100), size=(200, 200))
|
||||
|
|
@ -117,8 +117,8 @@ def test_all_types_have_on_move():
|
|||
"""Test that all drawable types have on_move property"""
|
||||
print("Testing on_move on all drawable types...")
|
||||
|
||||
mcrfpy.createScene("test_types")
|
||||
ui = mcrfpy.sceneUI("test_types")
|
||||
test_types = mcrfpy.Scene("test_types")
|
||||
ui = test_types.children
|
||||
|
||||
types_to_test = [
|
||||
("Frame", mcrfpy.Frame(pos=(0, 0), size=(100, 100))),
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ print()
|
|||
# Test 4: After creating mcrfpy objects
|
||||
print("Test 4: After creating mcrfpy scene/grid")
|
||||
try:
|
||||
mcrfpy.createScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
grid = mcrfpy.Grid(grid_x=10, grid_y=10)
|
||||
|
||||
walls = []
|
||||
|
|
@ -63,7 +63,7 @@ print()
|
|||
# Test 5: Check line number in error
|
||||
print("Test 5: Checking exact error location")
|
||||
def test_exact_pattern():
|
||||
mcrfpy.createScene("dijkstra_demo")
|
||||
dijkstra_demo = mcrfpy.Scene("dijkstra_demo")
|
||||
grid = mcrfpy.Grid(grid_x=25, grid_y=15)
|
||||
grid.fill_color = mcrfpy.Color(0, 0, 0)
|
||||
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@ def test_parent_property():
|
|||
print("Testing parent property...")
|
||||
|
||||
# Create scene and get UI
|
||||
mcrfpy.createScene("test")
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
ui = test.children
|
||||
|
||||
# Create a parent frame
|
||||
parent = mcrfpy.Frame(pos=(100, 100), size=(200, 200))
|
||||
|
|
@ -44,8 +44,8 @@ def test_global_position():
|
|||
print("Testing global_position property...")
|
||||
|
||||
# Create scene and get UI
|
||||
mcrfpy.createScene("test2")
|
||||
ui = mcrfpy.sceneUI("test2")
|
||||
test2 = mcrfpy.Scene("test2")
|
||||
ui = test2.children
|
||||
|
||||
# Create nested hierarchy:
|
||||
# root (50, 50)
|
||||
|
|
@ -81,8 +81,8 @@ def test_parent_changes_on_move():
|
|||
"""Test that moving child to different parent updates parent reference"""
|
||||
print("Testing parent changes on move...")
|
||||
|
||||
mcrfpy.createScene("test3")
|
||||
ui = mcrfpy.sceneUI("test3")
|
||||
test3 = mcrfpy.Scene("test3")
|
||||
ui = test3.children
|
||||
|
||||
parent1 = mcrfpy.Frame(pos=(0, 0), size=(100, 100), fill_color=(255, 0, 0, 255))
|
||||
parent2 = mcrfpy.Frame(pos=(200, 0), size=(100, 100), fill_color=(0, 255, 0, 255))
|
||||
|
|
@ -116,8 +116,8 @@ def test_remove_clears_parent():
|
|||
"""Test that removing child clears parent reference"""
|
||||
print("Testing remove clears parent...")
|
||||
|
||||
mcrfpy.createScene("test4")
|
||||
ui = mcrfpy.sceneUI("test4")
|
||||
test4 = mcrfpy.Scene("test4")
|
||||
ui = test4.children
|
||||
|
||||
parent = mcrfpy.Frame(pos=(0, 0), size=(100, 100))
|
||||
ui.append(parent)
|
||||
|
|
@ -140,8 +140,8 @@ def test_scene_level_elements():
|
|||
"""Test that scene-level elements have no parent"""
|
||||
print("Testing scene-level elements...")
|
||||
|
||||
mcrfpy.createScene("test5")
|
||||
ui = mcrfpy.sceneUI("test5")
|
||||
test5 = mcrfpy.Scene("test5")
|
||||
ui = test5.children
|
||||
|
||||
frame = mcrfpy.Frame(pos=(10, 10), size=(50, 50))
|
||||
ui.append(frame)
|
||||
|
|
@ -160,8 +160,8 @@ def test_all_drawable_types():
|
|||
"""Test parent/global_position on all drawable types"""
|
||||
print("Testing all drawable types...")
|
||||
|
||||
mcrfpy.createScene("test6")
|
||||
ui = mcrfpy.sceneUI("test6")
|
||||
test6 = mcrfpy.Scene("test6")
|
||||
ui = test6.children
|
||||
|
||||
parent = mcrfpy.Frame(pos=(100, 100), size=(300, 300))
|
||||
ui.append(parent)
|
||||
|
|
@ -190,8 +190,8 @@ def test_parent_setter():
|
|||
"""Test parent property setter (assign parent directly)"""
|
||||
print("Testing parent setter...")
|
||||
|
||||
mcrfpy.createScene("test7")
|
||||
ui = mcrfpy.sceneUI("test7")
|
||||
test7 = mcrfpy.Scene("test7")
|
||||
ui = test7.children
|
||||
|
||||
# Create parent frame and child
|
||||
parent = mcrfpy.Frame(pos=(100, 100), size=(200, 200))
|
||||
|
|
@ -223,8 +223,8 @@ def test_reparenting_via_setter():
|
|||
"""Test moving a child from one parent to another via setter"""
|
||||
print("Testing reparenting via setter...")
|
||||
|
||||
mcrfpy.createScene("test8")
|
||||
ui = mcrfpy.sceneUI("test8")
|
||||
test8 = mcrfpy.Scene("test8")
|
||||
ui = test8.children
|
||||
|
||||
parent1 = mcrfpy.Frame(pos=(0, 0), size=(100, 100))
|
||||
parent2 = mcrfpy.Frame(pos=(200, 200), size=(100, 100))
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ print("Testing path color changes...")
|
|||
print("=" * 50)
|
||||
|
||||
# Create scene and small grid
|
||||
mcrfpy.createScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
grid = mcrfpy.Grid(grid_x=5, grid_y=5)
|
||||
|
||||
# Add color layer for cell coloring
|
||||
|
|
@ -75,12 +75,12 @@ def check_visual(runtime):
|
|||
sys.exit(0)
|
||||
|
||||
# Set up minimal UI to test rendering
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
ui = test.children
|
||||
ui.append(grid)
|
||||
grid.position = (50, 50)
|
||||
grid.size = (250, 250)
|
||||
|
||||
mcrfpy.setScene("test")
|
||||
test.activate()
|
||||
mcrfpy.setTimer("check", check_visual, 500)
|
||||
|
||||
print("\nStarting render test...")
|
||||
|
|
@ -8,7 +8,7 @@ print("Testing pathfinding integration...")
|
|||
print("=" * 50)
|
||||
|
||||
# Create scene and grid
|
||||
mcrfpy.createScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
grid = mcrfpy.Grid(grid_x=10, grid_y=10)
|
||||
|
||||
# Initialize grid
|
||||
|
|
|
|||
|
|
@ -5,9 +5,9 @@ import mcrfpy
|
|||
import sys
|
||||
|
||||
# Create a simple scene
|
||||
mcrfpy.createScene("test")
|
||||
mcrfpy.setScene("test")
|
||||
ui = mcrfpy.sceneUI("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
test.activate()
|
||||
ui = test.children
|
||||
|
||||
# Create a small grid
|
||||
grid = mcrfpy.Grid(
|
||||
|
|
|
|||
|
|
@ -53,5 +53,5 @@ def test_properties(runtime):
|
|||
|
||||
sys.exit(0)
|
||||
|
||||
mcrfpy.createScene("test")
|
||||
test = mcrfpy.Scene("test")
|
||||
mcrfpy.setTimer("test_properties", test_properties, 100)
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue