mirror of
https://github.com/Xevion/Pac-Man.git
synced 2025-12-06 05:15:49 -06:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| af57199915 | |||
| 538cf1efb5 | |||
| 03b2c5a659 | |||
| 64e226be70 | |||
| f998ddd344 | |||
| b2ad8e7afe | |||
| 799d5d85e8 | |||
| 9730d02da5 | |||
| f634beffee | |||
| d15dbe3982 |
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
|
||||
27
assets/index.html
Normal file
27
assets/index.html
Normal file
@@ -0,0 +1,27 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||
</head>
|
||||
<style>
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background: #000;
|
||||
}
|
||||
canvas {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
background: #000;
|
||||
}
|
||||
</style>
|
||||
<body>
|
||||
<canvas id="canvas"></canvas>
|
||||
<script>
|
||||
var Module = {
|
||||
'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>
|
||||
14
scripts/build-wasm.sh
Executable file
14
scripts/build-wasm.sh
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
set -eux
|
||||
|
||||
echo "Building WASM with Emscripten"
|
||||
cargo build --target=wasm32-unknown-emscripten --release
|
||||
|
||||
echo "Copying release files to dist/"
|
||||
mkdir -p dist
|
||||
|
||||
output_folder="target/wasm32-unknown-emscripten/release"
|
||||
cp $output_folder/pacman.wasm dist
|
||||
cp $output_folder/pacman.js dist
|
||||
cp $output_folder/deps/pacman.data dist
|
||||
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