{"id":20864816,"url":"https://github.com/nightswatchgames/celeste","last_synced_at":"2025-10-16T20:47:10.088Z","repository":{"id":147938678,"uuid":"601946813","full_name":"NightsWatchGames/celeste","owner":"NightsWatchGames","description":"Celeste classic platformer game made with bevy engine.","archived":false,"fork":false,"pushed_at":"2024-12-25T08:28:20.000Z","size":295,"stargazers_count":134,"open_issues_count":0,"forks_count":13,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-29T10:05:19.512Z","etag":null,"topics":["bevy-engine","celeste","gamedev","platformer","rust-lang"],"latest_commit_sha":null,"homepage":"https://nightswatchgames.github.io/games/celeste/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NightsWatchGames.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-15T06:57:53.000Z","updated_at":"2025-03-14T16:14:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"36957a40-8709-41ae-9792-c411cc1dc8d0","html_url":"https://github.com/NightsWatchGames/celeste","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NightsWatchGames%2Fceleste","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NightsWatchGames%2Fceleste/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NightsWatchGames%2Fceleste/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NightsWatchGames%2Fceleste/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NightsWatchGames","download_url":"https://codeload.github.com/NightsWatchGames/celeste/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247325693,"owners_count":20920714,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bevy-engine","celeste","gamedev","platformer","rust-lang"],"created_at":"2024-11-18T05:44:14.580Z","updated_at":"2025-10-16T20:47:10.009Z","avatar_url":"https://github.com/NightsWatchGames.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"[English](README_EN.md)\n\n# celeste 蔚蓝经典平台跳跃游戏\n- [x] Aseprite软件设计像素美术\n- [x] Ldtk软件编辑关卡\n- [x] 加载关卡\n- [x] 角色跳跃\n- [x] 角色冲刺及动画\n- [x] 角色爬墙和蹬墙跳\n- [x] 角色死亡重生及动画特效\n- [x] 角色头发飘逸效果\n- [x] 弹簧、雪堆、陷阱、木架\n- [x] 天气效果\n- [x] 相机跟随角色\n- [x] 游戏ui\n- [x] WASM支持\n\n在线游玩：[点这里](https://nightswatchgames.github.io/games/celeste/)（电脑版Chrome/Firefox/Edge打开）\n\n## 运行\n1. 本地运行\n```\ncargo run\n```\n2. WASM运行\n```\nrustup target install wasm32-unknown-unknown\ncargo install wasm-server-runner\ncargo run --target wasm32-unknown-unknown --features bevy_ecs_ldtk/atlas\n```\n```\ncargo install wasm-bindgen-cli\ncargo build --release --target wasm32-unknown-unknown --features bevy_ecs_ldtk/atlas\nwasm-bindgen --out-dir ./out/ --target web ./target/wasm32-unknown-unknown/release/celeste.wasm\n```\n\n## 控制\n- `A` `D` `S` 移动\n- `K` 跳跃\n- `J` 冲刺\n\n## 游戏展示\n视频演示：[B站](https://www.bilibili.com/video/BV14v4y1n7qk)\n![](screenshots/start-menu.png)\n![](screenshots/play-game.png)\n\n## 感谢\n- @littlekite 添加天气效果\n\n## 参考\n- [Celeste Official source project](https://github.com/NoelFB/Celeste)\n- [U3D教程实现《蔚蓝 Celeste 》Movement 系统](https://www.bilibili.com/video/BV1D4411d7Xn)\n- [casuak/Game_1_Tiny_Celeste_v3](https://github.com/casuak/Game_1_Tiny_Celeste_v3)\n- [LDtk一小时完全入门教程](https://www.bilibili.com/video/BV1y64y1z7Uw)\n\n\n## 问题\n**1.像素完美 (Pixel Perfect) 是什么意思？**\n\n指确保像素图像在不同分辨率下始终保持锐利清晰，并在运动中保持稳定，在Bevy中通过`ImagePlugin::default_nearest()`设置。\n\n参考\n- https://docs.unity3d.com/cn/2019.4/Manual/com.unity.2d.pixel-perfect.html\n- https://github.com/bevyengine/bevy/blob/main/examples/2d/pixel_perfect.rs\n\n\n**2.常见角色控制有哪些方式？**\n\n1. 通过`Transform`组件直接指定角色坐标\n2. 通过设置`RigidBody`刚体组件，利用物理引擎（力、速度、加速度等）控制角色\n3. 通过`CharacterController`来控制角色，它不受物理（如重力）限制，会自动处理碰撞检测，移动，跳跃等，可以很方便地实现在各种复杂地形中运动\n4. 通过为角色添加NavMesh Agent组件并使用导航网格系统来实现角色的自动寻路和移动\n5. 通过为角色添加Animator组件并使用动画系统来实现角色的移动、旋转和动作\n6. 通过编写自定义脚本来实现角色的移动、旋转和碰撞\n\n参考\n- https://rapier.rs/docs/user_guides/bevy_plugin/character_controller/\n- https://docs.unity3d.com/cn/2021.1/Manual/class-CharacterController.html","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnightswatchgames%2Fceleste","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnightswatchgames%2Fceleste","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnightswatchgames%2Fceleste/lists"}