Initial project import
This commit is contained in:
commit
23f2d29e32
11957 files changed
+1754577
No files matched your search
@@ -0,0 +1,6 @@
|
||||
2048.wasm
|
||||
2048
|
||||
main
|
||||
|
||||
index.js
|
||||
index.wasm
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2020 Delyan Angelov
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,62 @@
|
||||
# V 2048
|
||||
|
||||
This is a simple 2048 game, written in [the V programming language](https://vlang.io/).
|
||||
|
||||
WebAssembly demo: https://v2048.vercel.app
|
||||
|
||||

|
||||
|
||||
## Description
|
||||
|
||||
Merge tiles by moving them.
|
||||
After each move, a new random tile is added (2 or 4).
|
||||
The goal of the game is to create a tile with a value of 2048.
|
||||
|
||||
## Keys
|
||||
|
||||
Escape - exit the game
|
||||
Backspace - undo last move
|
||||
n - restart the game
|
||||
t - toggle the UI theme
|
||||
Enter - toggle the tile text format
|
||||
|
||||
UP,LEFT,DOWN,RIGHT / W,A,S,D / touchscreen swipes - move the tiles
|
||||
|
||||
## Running instructions
|
||||
|
||||
Compile & run the game with `./v run examples/2048`
|
||||
|
||||
## Compiling to WASM
|
||||
|
||||
1. Install Emscripten from:
|
||||
https://emscripten.org/docs/getting_started/downloads.html
|
||||
|
||||
2. Make sure that the environment in your shell is setup correctly,
|
||||
i.e. that `emcc --version` works.
|
||||
|
||||
```sh
|
||||
. /opt/emsdk/emsdk_env.sh
|
||||
emcc --version
|
||||
```
|
||||
|
||||
3. Compile the game to WASM:
|
||||
(the JS file contains a loader for the .wasm file, without the extension):
|
||||
```sh
|
||||
v -prod -os wasm32_emscripten -o examples/2048/index.js examples/2048/
|
||||
```
|
||||
|
||||
5. Run/test the game:
|
||||
|
||||
```sh
|
||||
emrun examples/2048/index.html
|
||||
```
|
||||
|
||||
If you prefer, instead of `emrun`, you can start a simple V http file server:
|
||||
```sh
|
||||
v -e 'import net.http.file; file.serve(folder: "examples/2048")'
|
||||
```
|
||||
and then open http://127.0.0.1:4001/ in your browser.
|
||||
|
||||
Once you have opened the game in your browser, you can make changes to
|
||||
the V source, then recompile (step 3), and refresh the browser window
|
||||
with the game, to see their effect.
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 19 KiB |
@@ -0,0 +1,36 @@
|
||||
<!doctype html>
|
||||
<html lang="en-us">
|
||||
|
||||
<head>
|
||||
<meta charset=utf-8>
|
||||
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>v 2048</title>
|
||||
<style>
|
||||
body {
|
||||
margin-left: 1rem;
|
||||
background-color: rgb(250, 248, 239);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>V 2048 demo</h1>
|
||||
<h3>
|
||||
Authors: <a href="http://github.com/spaceface777">@spaceface777</a>, <a href="http://github.com/spytheman">@spytheman</a> and other V contributors.
|
||||
<br>
|
||||
Original game by <a href="http://github.com/gabrielecirulli">@gabrielecirulli</a>.
|
||||
</h3>
|
||||
<h3>Click on the canvas to go into fullscreen mode</h3>
|
||||
<canvas id=canvas oncontextmenu=event.preventDefault() tabindex=-1 width="544" height="560"></canvas>
|
||||
<script src=index.js></script>
|
||||
<script>
|
||||
const m = Module()
|
||||
const e = document.getElementById("canvas");
|
||||
e.onclick = e.ontouchstart = () => {
|
||||
e.requestFullscreen()
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,7 @@
|
||||
Module {
|
||||
name: 'v2048',
|
||||
description: 'A simple 2048 game written in V.',
|
||||
version: '0.0.2',
|
||||
repo_url: 'https://github.com/spytheman/v2048',
|
||||
dependencies: []
|
||||
}
|
||||
Reference in new issue
Block a user