2008年01月17日 ピンボールを作りました
■[HotRuby]ピンボールを作りました
Colin Moock に日本の ActionScript を見せつける会で発表させて頂いた、ピンボールです。
Pinball - HotRuby - Ruby on JavaScript & Flash
その前の仕事のミーティングが早めに終わったので、アドビさんのオフィスに3時間前入りして、その場で作っていました(竹迫メソッド)。いや〜、だって、Box2DFlashAS3のサンプルそのままだったら芸がないもん。休憩室の自動販売機脇のコンセントを勝手にお借りしました。すいません。
ピンボールは、普通は何らかのキーを押して、フリップが動くんですが、Box2DFlashAS3を使っているので、あえて手動です(笑)。玉となる箱があるんですが、これも、あえて手動です。一番下の箱を、自分でドラッグして飛ばしてください。フリップを動かすのは、もう、大変です。必死に頑張ってください!
2008年01月15日 HotRubyでBox2DFlashAS3が動いたよ!
■[HotRuby]HotRubyでBox2DFlashAS3が動いたよ!
前の日記(HotRuby - Ruby on JavaScript - yukobaのブログ)の続編です。
明日の発表(Colin Moock に日本の ActionScript を見せつける会 - yukobaのブログ)に向けて、改良しました。Box2DFlashAS3という物理演算のライブラリを動くようにしました。下のリンク先をクリックしてください。ドミノ倒しは物理法則に基づいて動いています。マウスでドラッグすると、物を動かすことができます。左右のカーソルキーでサンプルを選ぶことができます。
Box2DFlashAS3 - HotRuby - Ruby on JavaScript & Flash
今回やったこと:
- ActionScript 3 (Flex)に対応しました。
- $nativeという変数を導入しました。ホスト(ブラウザやFlash)の変数やメソッドを呼び出せます。$nativeが長いので、下記では変数 $n に代入して使っています。
Google code の Subversion にはあがっていますが、皆様がちゃんと使えるように、使い方のドキュメント書かないといけないですね。
こんな重そうな(CPUパワーを使う)サンプルですが、重い部分はネイティブ(ActionScript3)でやっているので、それを呼び出す側は Ruby で作っても、全く問題ありません!
2007年12月31日 HotRuby - Ruby on JavaScript
■[HotRuby]HotRuby - Ruby on JavaScript
先日の木曜日、YLUGに参加しました。笹田耕一さんの YARV(Yet Another RubyVM) の講演会でした。なんか、会は、過去9年間の間で、1,2を争う盛り上がりだったそうで、すごく楽しかったです。参加者のレベルも高く、YARV の中の話を色々と聞かせていただきました。
その席で、ザイボウズ・ラボの竹迫さんに、「Ruby on JavaScript つくらないの?」とお誘いを受けたので、この週末、作ってみました♪
名づけて、HotRuby。ちゃんと動いているよ〜
基本的な文法は、大体、実装しました。ただし、組み込み関数や組み込みクラスは、大部分が実装されていません。文法面でも、例外は実装していません。
仕組みは、一度、サーバーの Ruby 1.9.0 の YARV でオペコード列にコンパイルさせて、それを JSON でクライアント側に渡し、JavaScript 上の RubyVM で実行しています。つまり、RubyVM on JavaScript です。JSON を JavaScript のソースコードで持っておくと速いのですが、どうしても<script type="text/ruby">を使いたかったので、毎回、サーバーにコンパイルさせています。でも、おかげでコードの最後の微調整は楽でした!
sum = "" 50000.times(|e| sum += e.to_str)
というベンチマークを動かしてみました。HotRuby@Opera9 で 6.767秒、Ruby 1.9.0 で 12.051秒と、Ruby(YARV)よりも 78% も速かったです!
でも、IE でベンチマークはとらないでね (^^;;;;
まぁ、GUIを操作するだけに、そんなにCPUパワーはいらなく、複雑な処理はサーバー側で処理すればいいだけなので、十分だと思います。
http://hotruby.accelart.jp/test-web/diy.html で自分で Ruby のソースを貼り付けて、実行させることができます。HotRuby 自体は "Ruby License" です。「これが動かないよ!」とか「このメソッド実装したよ!」とかソースでいただけたら、嬉しいです!
クライアント側は、Array, Hash, String, Time などがちゃんと実装されていれば、あとは、そんなに組み込みクラスはいらなく、それよりも、DOM や ExtJS などの GUI ライブラリの Ruby ラッパーの方が重要です。
では、よいお年を〜♪
- パラダイムシフトふぁくとりー資材置き場 - ParadigmShift Factory’...
- WEB開発日記 - HotRuby - Ruby on JavaScript -yukobaの日記
- Webアプリを作ろう - 1/1 scrap
- hellkite 日記と雑記とメモ。 - HotRubyなるものがあるそうで
- Leighのるび日記 - [コメント]Hot Ruby
- Javascript で実装した Ruby インタプリタ JSRuby 0.1 リリースしま...
- Gero2.0 - js ruby
- yukobaの日記 - Box2DFlashAS3が動いたよ!
- WEB開発日記 - HotRubyでBox2DFlashAS3が動いたよ! - yukobaの日記
- きみのハートを8ビットキャスト - HotRuby
- きみのハートを8ビットキャスト - HotRuby
- daily gimite - HotRuby (Ruby VM on JavaScript) をいろいろいじ...




as3 では include 構文が使えるので、
ファイル連結より、生成した as(js)ファイルを
ASHeader.as から include ’filename.as’
したほうがよりスッキリするかもです。