FAQ / Common Pitfalls
Nothing appears on screen
Check this first:
- you called
app.Run() - you registered a scene and activated it with
ChangeScene() - the entity has
TransformandSpriteRenderer - the texture exists or at least the path is correct
- you did not hide the sprite with
Hide()orSetVisible(false)
Text does not appear
Usually it is one of two things:
- you did not call
UI::Bind(app) - no default font has been loaded
The engine loads the default PixelStormMini.ttf font automatically.
If you replace it, load another font with Application::LoadFont() and select it with Application::SetDefaultFont().
The collider does not rotate with the sprite
That is expected.
The public physics system uses AABB:
- the
Transformrotation only affects drawing - the collider remains axis-aligned
- the
Transformscale does not change the collider either
Changing Scenes Clears My World
That is also expected.
SceneManager::ChangeScene() clears the world before entering the new scene.
If you need persistence, keep it outside the world or rebuild it on entry.
Entity Became Invalid
An entity becomes invalid if:
- it never existed
- it was destroyed
- the registry no longer owns it
Use IsValid() before operating on it if the reference might expire.
Input::GetAxis2D("move") Returns Zero
Check that:
- the window is initialized
- you are calling it inside an updated frame
- you did not clear the default bindings
- you are not querying a different action name that does not exist
My Sprite Uses a Strange Texture
If SpriteRenderer.TextureName is empty, the engine uses the procedural fallback texture.
That helps debugging, but it also means forgetting to load a texture name still leaves something visible.
Text Follows the Camera When I Do Not Want It To
Use followCamera = false in UI::Print() or Application::DrawText().
The Camera Moves Too Slowly
FollowCamera() uses smoothing when followSpeed > 0.
If you want instant follow, use followSpeed = 0.0f.
Play(name) in Animation Does Nothing
That method does not throw if the clip does not exist.
Check:
- that you added the clip with
AddClip() - that the name matches exactly
- that
AnimatorandSpriteRendererexist on the entity
Particles Are Not Spawning
Check:
- that the emitter has
Active = true - that you called
EmitBurst() - that
AutoEmitandEmitRateare configured if you want continuous emission
The Screen Uses Strange Coordinates
PixelStorm works with a fixed logical resolution defined by the initial window.
GetMousePosition() and the camera use that logical space, not the physical framebuffer.
The Scene Changes But Some State Still Looks Wrong
That usually means the state lives outside the world, or the camera was not reset the way you expected. The engine resets camera tracking on scene changes, but your own global variables remain under your control.
If something "works but does not show up", the problem is usually in the resource, the active scene, or the coordinate space.