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") |