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
ocp-build is tricky, underdocumented, and breaks.
When a sprite is drawn, no bound checking is done, so something drawn at the right edge can appear at the left edge.
[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.
Writing a js_of_ocaml app should help decouple what goes where.
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.
[Bulletsmorph]_kunekune_plus_homing.xml
contains a label to bulletmls/[G_DARIUS]_homing_laser.xml:_:hmgLsr
. Is this syntax documented somewhere? Support it?
Bullets that are either vanished or oob should get deleted. See also how it can be plugged to a collision engine.
There seems to be ocaml support in coveralls.io !
Import assets from bulletml.js and just assert that they pass (don't specify them).
It mysteriously stops at 43 bullets.
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
Support loading patterns using "lighter" syntax forms, such as JSON or YAML.
This file cannot be parsed.
The linear_map
is already there, with a unit
parameter.
All that is left to do is a bit of trigonometry.
Something using Graphics
should be enough to debug and make beautiful gifs.
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.
Like for DirSeq
, add a dedicated field.
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)]
Using git diff-files --quiet
should do the trick.
Missing feature?
It would be nice to add parameters to modify speed/accel of a whole pattern.
It is not used anymore.
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).
A game shouldn't have to require sdl
or ocamlyacc
.
(cc @mathiasbourgoin)
On [ESP_RADE]_round_123_boss_izuna_fan.xml
, a wild stack overflow appears.
An additional target to compute coverage locally would be nice.
It makes the package play nice with other tools.
This pattern does not seem to do the same as in this video.
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.
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.