- Upgrade opal to 1.0 (#37)
- fix:
mouse_release?
returns wrong value (#44)
- fix: Image#[]= was broken since 1.4.0 (#35)
- feat: Better error msg (#29)
- feat: Support Window.fps= (#30)
- feat: dxopal server prints access log (#31)
- feat: Default index.html avoids main.rb cache (#32)
- feat: Add Image.hsl2rgb (#34)
- feat: Multi-touch (#26)
- feat: Maximize Window by setting nil to .width, .height (#27)
- fix: Disable pull-to-refresh on mobile devices (#28)
- fix: Downgrade opal to 0.11 (#25)
- change: starter-kit is discontinued
- feat: Touch events (experimental) (#21)
- feat: Added some more keycodes
- fix:
LoadError: cannot load such file -- dxopal
(#19) - fix: Resource loading does not work on v1.4.0 (#20)
- new:
dxopal new APP_PATH
(#14) - new:
Image.load
(#17) - new:
Font.get_width
(#18) - fix:
Window.draw_box(C_WHITE)
draws a gray rectangle (#16) - chores: Update Opal to 1.0.0
- internal: Moved ./opal to ./lib (#15)
- new: Support blend mode
:add
- Update gems
- new: Support shift/ctrl key
- new: Added some opal stdlibs
- singleton
- delegate, forwardable
- promise
- set
- time
- (Let me know if you need some more)
- new: Sound#stop
- fix:
z
for draw_xx did not work correctly
To use DXOpal::Sprite::Physics
, you need to load matter.js explicitly.
Old:
<script src="dxopal.min.js"></script>
New:
<script src="matter.js"></script>
<script src="dxopal.min.js"></script>
- new: Image#set_color_key
- new: Window.draw_scale
- new: Show the message of an exception if there is a
<div id='dxopal-errors'>
- new: Add --port to dxopal command
- fix: shot/hit method names for Sprite.check are now customizable
- fix: Multiple loops runs when Window.loop is called more than once
- internal: Upgrade to Opal 0.11.0
Old:
<canvas id="canvas">
New:
<canvas id="dxopal-canvas">
- new: Sprite.check (collision detection)
- new: Window.bgcolor
- new: Input.mouse_down?, mouse_push?, mouse_release?
- new: Input.keyevent_target
- new: Matter.js support (experimental)
- new: Window.loop can be called twice
- fix: Image transparency was ignored
- fix: Sprite.clean was broken
- fix: Window.width=, height= did not work
- new: Window.real_fps
- new: Some more drawing methods
- new: SoundEffect class
- improve: Better fps stabillity (use requestAnimationFrame)
- new: Add example (apple_catcher)
Image.load and Sound.new are removed. They look like a synchronous API but actually were not. It was fun to emulate DXRuby APIs with JS Promise, but I found it very confusing while implementing the AppleCatcher example.
Since v0.2, resource loading look like this.
Image.register(:player, 'images/player.png')
Sound.register(:game_over, 'sounds/game_over.wav')
Window.load_resources do
Window.loop do
# ... Window.draw(0, 0, Image[:player]) ...
# ... Sound[:game_over].play ...
end
end
- new: Window.pause, .resume
- new: Window.draw_box_fill
- new: Sprite.update, Sprite.clean
- fix: Image#draw now respects alpha channel
- fix: Vanished sprites have no collision
- new: Image#slice
- new: Sprite.new, collision detection
- new: Input.mouse_pos_x, mouse_pos_y
- fix: Input.key_down? return true after key is released
- new: color constants
- new: Image.new, Image#circle, etc.
- new: console
- refactor: Split source file
- Moved demos to yhara/dxopal-game
- Now ruby is not mandatory to make games with DXOpal
- Gemified (not pushed to rubygems.org yet)