start the testing

This commit is contained in:
ajuvercr 2019-09-14 11:13:17 +02:00
parent 0686ca78ae
commit a289936913
2 changed files with 48 additions and 9 deletions

View file

@ -14,10 +14,19 @@ use wasm_bindgen::prelude::*;
#[global_allocator] #[global_allocator]
static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT; static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT;
#[wasm_bindgen]
pub struct Location {
x: f64,
y: f64,
angle: f64,
}
#[wasm_bindgen] #[wasm_bindgen]
pub struct Game { pub struct Game {
states : Vec<types::State>, states : Vec<types::State>,
/* put extra shit here */ /* put extra shit here */
current_turn: Vec<Location>,
} }
#[wasm_bindgen] #[wasm_bindgen]
@ -31,13 +40,28 @@ impl Game {
).collect(); ).collect();
Self { Self {
states states,
current_turn: Vec::new()
} }
} }
pub fn turn_count(&self) -> usize { pub fn turn_count(&self) -> usize {
self.states.len() self.states.len()
} }
pub fn add_location(&mut self, x: f64, y: f64, angle: f64) {
self.current_turn.push(
Location { x, y, angle}
);
}
pub fn location_count(&self) -> usize {
self.current_turn.len()
}
pub fn locations(&self) -> *const Location {
self.current_turn.as_ptr()
}
} }

View file

@ -1,16 +1,31 @@
import { Game } from "planetwars"; import { Game } from "planetwars";
import { memory } from "planetwars/plantwars_bg"
const URL = window.location.origin+window.location.pathname; const URL = window.location.origin+window.location.pathname;
const LOCATION = URL.substring(0, URL.lastIndexOf("/") + 1); const LOCATION = URL.substring(0, URL.lastIndexOf("/") + 1);
const game_location = LOCATION + "static/game.json"; const game_location = LOCATION + "static/game.json";
fetch(game_location) // fetch(game_location)
.then((r) => r.text()) // .then((r) => r.text())
.then((response) => { // .then((response) => {
console.log(response); // console.log(response);
let game = Game.new(response); // let game = Game.new(response);
console.log(game.turn_count()); // console.log(game.turn_count());
}).catch(console.error); // }).catch(console.error);
const g = Game.new("");
const p1 = g.locations();
const s1 = g.location_count();
console.log(p1, s1);
const a1 = new Float64Array(memory.buffer, p1, s1 * 3);
console.log(a1);
g.add_location(0.5, 1.2, 3.14);
const p2 = g.locations();
const s2 = g.location_count();
const a2 = new Float64Array(memory.buffer, p2, s2 * 3);
console.log(a2);