69 lines
2.2 KiB
Python
69 lines
2.2 KiB
Python
#!/usr/bin/env python3
|
|
"""Test for Sprite texture methods - Related to issue #19"""
|
|
import mcrfpy
|
|
|
|
print("Testing Sprite texture methods (Issue #19)...")
|
|
|
|
# Create test scene
|
|
mcrfpy.createScene("sprite_texture_test")
|
|
mcrfpy.setScene("sprite_texture_test")
|
|
ui = mcrfpy.sceneUI("sprite_texture_test")
|
|
|
|
# Create sprites
|
|
# Based on sprite2 syntax: Sprite(x, y, texture, sprite_index, scale)
|
|
sprite1 = mcrfpy.Sprite(10, 10, mcrfpy.default_texture, 0, 2.0)
|
|
sprite2 = mcrfpy.Sprite(100, 10, mcrfpy.default_texture, 5, 2.0)
|
|
|
|
ui.append(sprite1)
|
|
ui.append(sprite2)
|
|
|
|
# Test getting texture
|
|
try:
|
|
texture1 = sprite1.texture
|
|
texture2 = sprite2.texture
|
|
print(f"✓ Got textures: {texture1}, {texture2}")
|
|
|
|
if texture2 == mcrfpy.default_texture:
|
|
print("✓ Texture matches default_texture")
|
|
except Exception as e:
|
|
print(f"✗ Failed to get texture: {e}")
|
|
|
|
# Test setting texture (Issue #19 - get/set texture methods)
|
|
try:
|
|
# This should fail as texture is read-only currently
|
|
sprite1.texture = mcrfpy.default_texture
|
|
print("✗ Texture setter should not exist (Issue #19)")
|
|
except AttributeError:
|
|
print("✓ Texture is read-only (Issue #19 requests setter)")
|
|
except Exception as e:
|
|
print(f"✗ Unexpected error setting texture: {e}")
|
|
|
|
# Test sprite_number property
|
|
try:
|
|
print(f"Sprite2 sprite_number: {sprite2.sprite_number}")
|
|
sprite2.sprite_number = 10
|
|
print(f"✓ Changed sprite_number to: {sprite2.sprite_number}")
|
|
except Exception as e:
|
|
print(f"✗ sprite_number property failed: {e}")
|
|
|
|
# Test sprite index validation (Issue #33)
|
|
try:
|
|
# Try to set invalid sprite index
|
|
sprite2.sprite_number = 9999
|
|
print("✗ Should validate sprite index against texture range (Issue #33)")
|
|
except Exception as e:
|
|
print(f"✓ Sprite index validation works: {e}")
|
|
|
|
# Create grid of sprites to show different indices
|
|
y_offset = 100
|
|
for i in range(12): # Show first 12 sprites
|
|
sprite = mcrfpy.Sprite(10 + (i % 6) * 40, y_offset + (i // 6) * 40,
|
|
mcrfpy.default_texture, i, 2.0)
|
|
ui.append(sprite)
|
|
|
|
caption = mcrfpy.Caption(mcrfpy.Vector(10, 200),
|
|
text="Issue #19: Sprites need texture setter",
|
|
fill_color=mcrfpy.Color(255, 255, 255))
|
|
ui.append(caption)
|
|
|
|
print("PASS") |