import core::raylib; fn start_main() -> i64 { let opened = raylib::InitWindow(480, 300, "PNG sprites / صور متحركة"); if not opened::ok { print(opened::error::message); return 1; } let loaded = raylib::LoadTexture("docs/examples/assets/raylib-sprites.png"); if not loaded::ok { print(loaded::error::message); return 2; } let texture = loaded::value; let alias = texture; if raylib::GetTextureWidth(texture)::value not matches 32 or raylib::GetTextureHeight(texture)::value not matches 16 { return 3; } let filter = raylib::SetTextureFilter(texture, raylib::TEXTURE_FILTER_POINT); let wrap = raylib::SetTextureWrap(texture, raylib::TEXTURE_WRAP_CLAMP); let pacing = raylib::SetTargetFPS(60); if not filter::ok or not wrap::ok or not pacing::ok { return 4; } let camera = raylib::Camera2D { offset: raylib::Vector2 { x: 15.0, y: 10.0 }, target: raylib::Vector2 { x: 0.0, y: 0.0 }, rotation: 0.0, zoom: 1.0 }; let first = raylib::Rectangle { x: 24.0, y: 24.0, width: 32.0, height: 16.0 }; let second = raylib::Rectangle { x: 30.0, y: 28.0, width: 32.0, height: 16.0 }; let collision = raylib::CheckCollisionRecs(first, second); let overlap = raylib::GetCollisionRec(first, second); if not collision::ok or not overlap::ok { return 16; } if not collision::value { return 17; } var frame: i32 = 0; while frame < 20 { if not raylib::BeginDrawing()::ok or not raylib::ClearBackground(raylib::RAYWHITE)::ok { return 5; } if not raylib::BeginMode2D(camera)::ok { return 6; } if not raylib::DrawTexture(texture, 24, 24, raylib::WHITE)::ok { return 7; } if not raylib::DrawTextureV(texture, raylib::Vector2 { x: 100.0, y: 24.0 }, raylib::SKYBLUE)::ok { return 8; } if not raylib::DrawTextureEx(texture, raylib::Vector2 { x: 40.0, y: 110.0 }, -10.0, 4.0, raylib::WHITE)::ok { return 9; } if not raylib::DrawTextureRec(texture, raylib::Rectangle { x: 16.0, y: 0.0, width: -16.0, height: 16.0 }, raylib::Vector2 { x: 250.0, y: 24.0 }, raylib::WHITE)::ok { return 10; } if not raylib::DrawTexturePro(texture, raylib::Rectangle { x: 16.0, y: 0.0, width: 16.0, height: -16.0 }, raylib::Rectangle { x: 330.0, y: 160.0, width: -96.0, height: 96.0 }, raylib::Vector2 { x: 48.0, y: 48.0 }, 25.0, raylib::Color { r: 255, g: 255, b: 255, a: 210 })::ok { return 11; } if not raylib::DrawRectangleLinesEx(overlap::value, 1.0, raylib::RED)::ok { return 18; } if not raylib::EndMode2D()::ok { return 12; } if frame matches 19 { if not raylib::UnloadTexture(alias)::ok or raylib::IsTextureValid(texture) { return 13; } } if not raylib::EndDrawing()::ok { return 14; } frame = frame + 1; } if not raylib::UnloadTexture(texture)::ok or not raylib::CloseWindow()::ok { return 15; } print("texture sprites complete"); return 0; }