emillon / bulletml Goto Github PK
View Code? Open in Web Editor NEWTools to manipulate and interpret shmup patterns
License: BSD 2-Clause "Simplified" License
Tools to manipulate and interpret shmup patterns
License: BSD 2-Clause "Simplified" License
Using git diff-files --quiet
should do the trick.
The linear_map
is already there, with a unit
parameter.
All that is left to do is a bit of trigonometry.
This pattern does not seem to do the same as in this video.
It mysteriously stops at 43 bullets.
An additional target to compute coverage locally would be nice.
Missing feature?
It would be nice to add parameters to modify speed/accel of a whole pattern.
Import assets from bulletml.js and just assert that they pass (don't specify them).
A game shouldn't have to require sdl
or ocamlyacc
.
(cc @mathiasbourgoin)
Bullets that are either vanished or oob should get deleted. See also how it can be plugged to a collision engine.
Something using Graphics
should be enough to debug and make beautiful gifs.
It would be nice to attach external hooks to bulletml actions. For example for a change_color
action could be implemented using a function ('a -> 'a) -> ('a obj -> 'a obj)
that changes some private state within the obj (where it is possible to store the color or a sprite).
It makes the package play nice with other tools.
An additional Accel
test would be nice to have: by accelerating (1., 2.)
I expect the speed to be (0., 0.);(1.;2.);(2.;4.)
etc.
make
...
0.02s bulletml/Bulletml/parser.cmo [failed]
[47.1] Command failed: '/Users/mathias/.opam/4.02.1/bin/ocamlc.opt' '-g' '-bin-annot' '-c' '-o' '_obuild/47/parser.cmo' '-for-pack' 'Bulletml' '-I' './_obuild/bulletml/Bulletml' '-I' './_obuild/bulletml' '-I' './bulletml' '-I' '/Users/mathias/.opam/4.02.1/lib/mparser' '-I' '/Users/mathias/.opam/4.02.1/lib/xml-light' 'bulletml/parser.ml'
-- stderr of ocamlc.opt --
File "bulletml/parser.ml", line 10, characters 34-52:
Error: Unbound module Tokens
When a sprite is drawn, no bound checking is done, so something drawn at the right edge can appear at the left edge.
On [ESP_RADE]_round_123_boss_izuna_fan.xml
, a wild stack overflow appears.
subst_*
functions are a bit annoying. I would like to get rid of them. It would be better to have a proper call stack. The problem is where to store it. obj
makes sense of course but breaks standalone function evaluation. It is probably necessary to add Op{Push,Pop}Param
opcodes too.
This file cannot be parsed.
Writing a js_of_ocaml app should help decouple what goes where.
ocp-build is tricky, underdocumented, and breaks.
[Ketui_LT]_2boss_winder_crash.xml
seems to be a good candidate
Building them takes twice the time and is not needed for normal builds.
So far ship_pos
stays constant. It would be nice if it was possible to move the ship using the mouse or keyboard.
It can be implemented in main_loop
in the form of an additional function 'l -> position -> position
or something similar.
Like for DirSeq
, add a dedicated field.
[Bulletsmorph]_kunekune_plus_homing.xml
contains a label to bulletmls/[G_DARIUS]_homing_laser.xml:_:hmgLsr
. Is this syntax documented somewhere? Support it?
Support loading patterns using "lighter" syntax forms, such as JSON or YAML.
It is not used anymore.
There seems to be ocaml support in coveralls.io !
let prog =
let%bulletml act =
repeat 500 @@ fire @@ repeat 10
begin
wait 60;
speed 0;
wait 60;
speed 1;
end;
wait 10
in
[("top", act)]
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.