Pixel Runner¶
Clear Code’s Pygame intro, endless runner, sprite + input + collision.
📄 Docs onlyUpstream: https://github.com/clear-code-projects/UltimatePygameIntro
Tags: port tier-0
Pixel Runner: SimVX Port¶
Faithful port of Clear Code’’s Ultimate Pygame Intro endless runner to SimVX.
Run¶
uv run python ported_games/ultimate_pygame_intro/simvx_port/main.py
Controls¶
Key |
Action |
|---|---|
|
Jump |
|
Start / restart after death |
Left mouse button |
Start / restart |
|
Quit |
Web export¶
uv run simvx export web ported_games/ultimate_pygame_intro/simvx_port/main.py \
-o ported_games/ultimate_pygame_intro/simvx_port/web/index.html
Asset license¶
All graphics, fonts, and audio in assets/ are CC0 (Clear Code project).
Source¶
1#!/usr/bin/env python3
2# /// script
3# requires-python = ">=3.13"
4# dependencies = ["simvx-core", "simvx-graphics"]
5# ///
6"""Pixel Runner: Clear Code's Pygame intro, endless runner, sprite + input + collision.
7
8# /// simvx
9# tags = ["port", "tier-0"]
10# upstream = "https://github.com/clear-code-projects/UltimatePygameIntro"
11# web = { width = 800, height = 400, responsive = true, disabled = true, reason = "Blocked on audio refactor (uses old 'SFX' bus name)." }
12# ///
13
14Run::
15
16 uv run python ported_games/ultimate_pygame_intro/simvx_port/main.py
17
18Web export::
19
20 uv run simvx export web ported_games/ultimate_pygame_intro/simvx_port/main.py -o ported_games/ultimate_pygame_intro/simvx_port/web/index.html
21"""
22
23import os
24import sys
25
26# Allow running this file directly via ``python main.py``: make the package
27# importable by adding its parent directory to sys.path.
28_HERE = os.path.abspath(os.path.dirname(__file__))
29if _HERE not in sys.path:
30 sys.path.insert(0, _HERE)
31
32from simvx.graphics import App # noqa: E402
33
34from nodes.runner import Runner # noqa: E402
35
36
37def main():
38 App(title="Pixel Runner", width=800, height=400).run(Runner())
39
40
41if __name__ == "__main__":
42 main()