mirror of
https://github.com/Xevion/Pac-Man.git
synced 2025-12-06 15:15:48 -06:00
fix: key stealing, disable Emscripten module, disable colored ANSI for emscripten builds
This commit is contained in:
@@ -4,6 +4,6 @@ rustflags = [
|
|||||||
"-O", "-C", "link-args=-O2 --profiling",
|
"-O", "-C", "link-args=-O2 --profiling",
|
||||||
#"-C", "link-args=-O3 --closure 1",
|
#"-C", "link-args=-O3 --closure 1",
|
||||||
"-C", "link-args=-sASYNCIFY -sALLOW_MEMORY_GROWTH=1",
|
"-C", "link-args=-sASYNCIFY -sALLOW_MEMORY_GROWTH=1",
|
||||||
"-C", "link-args=-sUSE_SDL=2 -sUSE_SDL_IMAGE=2 -sSDL_EMSCRIPTEN_KEYBOARD_ELEMENT -sSDL2_IMAGE_FORMATS=['png']",
|
"-C", "link-args=-sUSE_SDL=2 -sUSE_SDL_IMAGE=2 -sSDL2_IMAGE_FORMATS=['png']",
|
||||||
"-C", "link-args=--preload-file assets/ -lidbfs.js",
|
"-C", "link-args=--preload-file assets/ -lidbfs.js",
|
||||||
]
|
]
|
||||||
|
|||||||
7
STORY.md
7
STORY.md
@@ -39,6 +39,13 @@ Luckily though, someone else has done this before, and they fully documented it
|
|||||||
|
|
||||||
This repository has been massively helpful in getting my WebAssembly builds working.
|
This repository has been massively helpful in getting my WebAssembly builds working.
|
||||||
|
|
||||||
|
## Key Capturing Extensions in WASM Build
|
||||||
|
|
||||||
|
Some extensions I had installed were capturing keys.
|
||||||
|
The issue presented with some keys never being sent to the application.
|
||||||
|
To confirm, enter safe mode or switch to a different browser without said extensions.
|
||||||
|
If the issue disappears, it's because of an extension in your browser stealing keys in a way that is incompatible with the batshit insanity of Emscripten.
|
||||||
|
|
||||||
[code-review-video]: https://www.youtube.com/watch?v=OKs_JewEeOo
|
[code-review-video]: https://www.youtube.com/watch?v=OKs_JewEeOo
|
||||||
[code-review-thumbnail]: https://img.youtube.com/vi/OKs_JewEeOo/hqdefault.jpg
|
[code-review-thumbnail]: https://img.youtube.com/vi/OKs_JewEeOo/hqdefault.jpg
|
||||||
[fighting-lifetimes-1]: https://devcry.heiho.net/html/2022/20220709-rust-and-sdl2-fighting-with-lifetimes.html
|
[fighting-lifetimes-1]: https://devcry.heiho.net/html/2022/20220709-rust-and-sdl2-fighting-with-lifetimes.html
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
set -eu
|
# set -eu
|
||||||
|
|
||||||
echo "Building WASM with Emscripten"
|
echo "Building WASM with Emscripten"
|
||||||
cargo build --target=wasm32-unknown-emscripten --release
|
cargo build --target=wasm32-unknown-emscripten --release
|
||||||
|
|
||||||
echo "Copying release files to dist/"
|
echo "Copying release files to dist/"
|
||||||
mkdir -p dist
|
mkdir -p dist
|
||||||
|
|
||||||
output_folder="target/wasm32-unknown-emscripten/release"
|
output_folder="target/wasm32-unknown-emscripten/release"
|
||||||
cp $output_folder/pacman.wasm dist
|
cp $output_folder/pacman.wasm dist
|
||||||
cp $output_folder/pacman.js dist
|
cp $output_folder/pacman.js dist
|
||||||
|
|||||||
@@ -17,15 +17,13 @@ mod map;
|
|||||||
mod modulation;
|
mod modulation;
|
||||||
mod pacman;
|
mod pacman;
|
||||||
|
|
||||||
#[cfg(target_os = "emscripten")]
|
|
||||||
mod emscripten;
|
|
||||||
|
|
||||||
pub fn main() {
|
pub fn main() {
|
||||||
let sdl_context = sdl2::init().unwrap();
|
let sdl_context = sdl2::init().unwrap();
|
||||||
let video_subsystem = sdl_context.video().unwrap();
|
let video_subsystem = sdl_context.video().unwrap();
|
||||||
|
|
||||||
// Setup tracing
|
// Setup tracing
|
||||||
let subscriber = tracing_subscriber::fmt()
|
let subscriber = tracing_subscriber::fmt()
|
||||||
|
.with_ansi(cfg!(not(target_os = "emscripten")))
|
||||||
.with_max_level(tracing::Level::DEBUG)
|
.with_max_level(tracing::Level::DEBUG)
|
||||||
.finish()
|
.finish()
|
||||||
.with(ErrorLayer::default());
|
.with(ErrorLayer::default());
|
||||||
@@ -77,6 +75,7 @@ pub fn main() {
|
|||||||
|
|
||||||
// TODO: Fix key repeat delay issues by using VecDeque for instant key repeat
|
// TODO: Fix key repeat delay issues by using VecDeque for instant key repeat
|
||||||
for event in event_pump.poll_iter() {
|
for event in event_pump.poll_iter() {
|
||||||
|
|
||||||
match event {
|
match event {
|
||||||
// Handle quitting keys or window close
|
// Handle quitting keys or window close
|
||||||
Event::Quit { .. }
|
Event::Quit { .. }
|
||||||
|
|||||||
Reference in New Issue
Block a user