mirror of
https://github.com/Xevion/Pac-Man.git
synced 2025-12-06 09:15:46 -06:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 64e226be70 | |||
| f998ddd344 | |||
| b2ad8e7afe | |||
| 799d5d85e8 | |||
| 9730d02da5 | |||
| f634beffee | |||
| d15dbe3982 | |||
| de5cddd9b6 |
@@ -1,4 +1,8 @@
|
||||
[target.wasm32-unknown-emscripten]
|
||||
rustflags = [
|
||||
"--use-preload-plugins --preload-file assets -s USE_SDL=2 -s USE_SDL_IMAGE=2 -s ASSERTIONS=1",
|
||||
]
|
||||
"-O", "-C", "link-args=-O2 --profiling",
|
||||
#"-C", "link-args=-O3 --closure 1",
|
||||
"-C", "link-args=-sASYNCIFY -sALLOW_MEMORY_GROWTH=1",
|
||||
"-C", "link-args=-sUSE_SDL=2 -sUSE_SDL_IMAGE=2 -sSDL2_IMAGE_FORMATS=['png']",
|
||||
"-C", "link-args=--preload-file assets/ -lidbfs.js",
|
||||
]
|
||||
|
||||
26
.github/workflows/deploy.yaml
vendored
26
.github/workflows/deploy.yaml
vendored
@@ -1,28 +1,38 @@
|
||||
name: Github Pages
|
||||
|
||||
on: [push]
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
build-github-pages:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
pages: write
|
||||
id-token: write
|
||||
steps:
|
||||
- uses: actions/checkout@v2 # repo checkout
|
||||
|
||||
- uses: mymindstorm/setup-emsdk@v11 # setup emscripten toolchain
|
||||
with:
|
||||
version: 1.39.20
|
||||
|
||||
- uses: actions-rs/toolchain@v1 # get rust toolchain for wasm
|
||||
with:
|
||||
toolchain: stable
|
||||
target: wasm32-unknown-emscripten
|
||||
override: true
|
||||
|
||||
# TODO: Update to v2
|
||||
- name: Rust Cache # cache the rust build artefacts
|
||||
uses: Swatinem/rust-cache@v1
|
||||
|
||||
- name: Build # build
|
||||
run: ./build.sh
|
||||
- name: Deploy
|
||||
uses: JamesIves/github-pages-deploy-action@v4
|
||||
run: ./scripts/build-wasm.sh
|
||||
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-pages-artifact@v2
|
||||
with:
|
||||
folder: dist
|
||||
path: './dist/'
|
||||
retention-days: 7
|
||||
|
||||
- name: Deploy
|
||||
uses: actions/deploy-pages@v2
|
||||
7
BUILD.md
Normal file
7
BUILD.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# Building Pac-Man
|
||||
|
||||
## GitHub Actions Workflow
|
||||
|
||||
1. Build workflow produces executables & WASM files for all platforms
|
||||
2. Uploaded as artifacts
|
||||
3. Deployment workflow downloads artifacts and uploads to GitHub Pages
|
||||
21
assets/index.html
Normal file
21
assets/index.html
Normal file
@@ -0,0 +1,21 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||
</head>
|
||||
<body>
|
||||
<canvas id="canvas"></canvas>
|
||||
<script>
|
||||
var Module = {
|
||||
'locateFile': function (path, prefix) {
|
||||
if (path.endsWith(".data")) {
|
||||
return prefix + "deps/" + path;
|
||||
}
|
||||
return prefix + path;
|
||||
},
|
||||
'canvas': document.getElementById('canvas'),
|
||||
};
|
||||
</script>
|
||||
<script src="pacman.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
10
build.sh
10
build.sh
@@ -1,10 +0,0 @@
|
||||
#!/bin/sh
|
||||
set -eux
|
||||
|
||||
cargo build --target=wasm32-unknown-emscripten --release
|
||||
|
||||
mkdir -p dist
|
||||
|
||||
cp target/wasm32-unknown-emscripten/release/Pac_Man.wasm dist
|
||||
cp target/wasm32-unknown-emscripten/release/Pac-Man.js dist
|
||||
cp index.html dist
|
||||
21
index.html
21
index.html
@@ -1,21 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||
</head>
|
||||
<body>
|
||||
<canvas id="canvas"></canvas>
|
||||
<script type="text/javascript">
|
||||
let Module = {
|
||||
canvas: (function () {
|
||||
// this is how we provide a canvas to our sdl2
|
||||
return document.getElementById("canvas");
|
||||
})(),
|
||||
preRun: [function () {
|
||||
ENV.RUST_LOG = "info,wgpu=warn"
|
||||
}]
|
||||
};
|
||||
</script>
|
||||
<script src="Pac-Man.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
12
scripts/build-wasm.sh
Executable file
12
scripts/build-wasm.sh
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
set -eux
|
||||
|
||||
cargo build --target=wasm32-unknown-emscripten --release
|
||||
|
||||
mkdir -p dist
|
||||
|
||||
cp target/wasm32-unknown-emscripten/release/pacman.wasm dist
|
||||
cp target/wasm32-unknown-emscripten/release/pacman.js dist
|
||||
mkdir -p dist/deps
|
||||
cp target/wasm32-unknown-emscripten/release/deps/pacman.data dist/deps
|
||||
cp assets/index.html dist
|
||||
12
src/main.rs
12
src/main.rs
@@ -8,9 +8,6 @@ use tracing::event;
|
||||
use tracing_error::ErrorLayer;
|
||||
use tracing_subscriber::layer::SubscriberExt;
|
||||
|
||||
#[cfg(target_os = "emscripten")]
|
||||
pub mod emscripten;
|
||||
|
||||
mod animation;
|
||||
mod constants;
|
||||
mod direction;
|
||||
@@ -149,14 +146,7 @@ pub fn main() {
|
||||
|
||||
true
|
||||
};
|
||||
|
||||
#[cfg(target_os = "emscripten")]
|
||||
use emscripten::emscripten;
|
||||
|
||||
#[cfg(target_os = "emscripten")]
|
||||
emscripten::set_main_loop_callback(main_loop);
|
||||
|
||||
#[cfg(not(target_os = "emscripten"))]
|
||||
|
||||
loop {
|
||||
if !main_loop() {
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user