mirror of
https://github.com/italicsjenga/agb.git
synced 2024-12-23 08:11:33 +11:00
more mobile stuff
This commit is contained in:
parent
e43d2d5a3e
commit
552f8f878d
|
@ -6,7 +6,7 @@ import {
|
|||
useState,
|
||||
} from "react";
|
||||
import mGBA from "./vendor/mgba";
|
||||
import { KeyBindings } from "./bindings";
|
||||
import { GbaKey, KeyBindings } from "./bindings";
|
||||
import { styled } from "styled-components";
|
||||
|
||||
type Module = any;
|
||||
|
@ -36,6 +36,8 @@ const MgbaCanvas = styled.canvas`
|
|||
|
||||
export interface MgbaHandle {
|
||||
restart: () => void;
|
||||
buttonPress: (key: GbaKey) => void;
|
||||
buttonRelease: (key: GbaKey) => void;
|
||||
}
|
||||
|
||||
export const Mgba = forwardRef<MgbaHandle, MgbaProps>(
|
||||
|
@ -87,7 +89,7 @@ export const Mgba = forwardRef<MgbaHandle, MgbaProps>(
|
|||
try {
|
||||
mgbaModule.current.quitGame();
|
||||
mgbaModule.current.quitMgba();
|
||||
} catch {}
|
||||
} catch { }
|
||||
};
|
||||
}, [state]);
|
||||
|
||||
|
@ -124,6 +126,8 @@ export const Mgba = forwardRef<MgbaHandle, MgbaProps>(
|
|||
useImperativeHandle(ref, () => {
|
||||
return {
|
||||
restart: () => mgbaModule.current.quickReload(),
|
||||
buttonPress: (key: GbaKey) => mgbaModule.current.buttonPress(key),
|
||||
buttonRelease: (key: GbaKey) => mgbaModule.current.buttonRelease(key),
|
||||
};
|
||||
});
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>agbrs crash backtrace</title>
|
||||
<style>
|
||||
body {
|
||||
|
|
|
@ -1,127 +1,132 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>agb - a rust framework for making Game Boy Advance games</title>
|
||||
<style>
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font: 1.2em/1.62 sans-serif;
|
||||
background-color: white;
|
||||
font-size: 1.5rem;
|
||||
line-height: 1.6;
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin: 0;
|
||||
}
|
||||
h1,
|
||||
h2,
|
||||
h3 {
|
||||
line-height: 1.2;
|
||||
}
|
||||
.gameDisplay > div {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
height: 100%;
|
||||
}
|
||||
<head>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>agb - a rust framework for making Game Boy Advance games</title>
|
||||
<style>
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.gameDisplay {
|
||||
height: clamp(480px, 40vh, calc(100vw / 3));
|
||||
max-width: 100vw;
|
||||
margin-top: 20px;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
body {
|
||||
font: 1.2em/1.62 sans-serif;
|
||||
background-color: white;
|
||||
font-size: 1.5rem;
|
||||
line-height: 1.6;
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.gameDisplay .imageWrapper {
|
||||
aspect-ratio: 15 / 31;
|
||||
height: 100%;
|
||||
}
|
||||
h1,
|
||||
h2,
|
||||
h3 {
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
.gameDisplay .imageWrapper > img {
|
||||
height: 100%;
|
||||
image-rendering: pixelated;
|
||||
}
|
||||
.gameDisplay>div {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.gameDisplay iframe {
|
||||
border: 0;
|
||||
height: 100%;
|
||||
max-width: 100vw;
|
||||
aspect-ratio: 240 / 160;
|
||||
}
|
||||
.gameDisplay {
|
||||
height: clamp(480px, 40vh, calc(100vw / 3));
|
||||
max-width: 100vw;
|
||||
margin-top: 20px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
header,
|
||||
.help {
|
||||
max-width: 60%;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-block-end: 40px;
|
||||
}
|
||||
.gameDisplay .imageWrapper {
|
||||
aspect-ratio: 15 / 31;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.red {
|
||||
background-color: #f5755e;
|
||||
flex-grow: 1;
|
||||
}
|
||||
.gameDisplay .imageWrapper>img {
|
||||
height: 100%;
|
||||
image-rendering: pixelated;
|
||||
}
|
||||
|
||||
.links {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
margin-top: 40px;
|
||||
margin-bottom: 40px;
|
||||
max-width: 40rem;
|
||||
}
|
||||
.gameDisplay iframe {
|
||||
border: 0;
|
||||
height: 100%;
|
||||
max-width: 100vw;
|
||||
aspect-ratio: 240 / 160;
|
||||
}
|
||||
|
||||
.links > a {
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
background-color: #fad288;
|
||||
border: solid #fad288 2px;
|
||||
border-radius: 5px;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
header,
|
||||
.desktopHelp {
|
||||
max-width: 60%;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-block-end: 40px;
|
||||
}
|
||||
|
||||
.links > a:hover {
|
||||
border: solid black 2px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<h1>agb - a rust framework for making Game Boy Advance games</h1>
|
||||
</header>
|
||||
<section>
|
||||
<div class="gameDisplay">
|
||||
<div>
|
||||
<div class="imageWrapper"><img src="assets/left.png" /></div>
|
||||
<iframe
|
||||
onload="this.contentWindow.focus()"
|
||||
src="mgba/index.html#/assets/combo.gba"
|
||||
></iframe>
|
||||
<div class="imageWrapper"><img src="assets/right.png" /></div>
|
||||
</div>
|
||||
.red {
|
||||
background-color: #f5755e;
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.links {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
margin-top: 40px;
|
||||
margin-bottom: 40px;
|
||||
max-width: 40rem;
|
||||
}
|
||||
|
||||
.links>a {
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
background-color: #fad288;
|
||||
border: solid #fad288 2px;
|
||||
border-radius: 5px;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
|
||||
.links>a:hover {
|
||||
border: solid black 2px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header>
|
||||
<h1>agb - a rust framework for making Game Boy Advance games</h1>
|
||||
</header>
|
||||
<section>
|
||||
<div class="gameDisplay">
|
||||
<div>
|
||||
<div class="imageWrapper"><img src="assets/left.png" /></div>
|
||||
<iframe id="gameFrame" onload="this.contentWindow.focus()" src="mgba/index.html#/assets/combo.gba"></iframe>
|
||||
<div class="imageWrapper"><img src="assets/right.png" /></div>
|
||||
</div>
|
||||
<div class="help">
|
||||
<p>
|
||||
Press escape to open the menu where you can view or change controls
|
||||
and restart the game. The game provided is a combination of multiple
|
||||
Game Boy Advance games made using agb, you can press left or right on
|
||||
the main menu to switch game.
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<div class="mobileControls">
|
||||
|
||||
</div>
|
||||
<div class="desktopHelp">
|
||||
<p>
|
||||
Press escape to open the menu where you can view or change controls
|
||||
and restart the game. The game provided is a combination of multiple
|
||||
Game Boy Advance games made using agb, you can press left or right on
|
||||
the main menu to switch game.
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="red">
|
||||
<div class="links">
|
||||
<a href="https://github.com/agbrs/agb">GitHub</a>
|
||||
<a href="book/">Book</a>
|
||||
</div>
|
||||
</section>
|
||||
</body>
|
||||
|
||||
<section class="red">
|
||||
<div class="links">
|
||||
<a href="https://github.com/agbrs/agb">GitHub</a>
|
||||
<a href="book/">Book</a>
|
||||
</div>
|
||||
</section>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in a new issue