著作一覧 |
なんとなくイルカと遊びたくなったと仮定する。
なら遊べばよい。
#!/usr/local/bin/ruby -Ks require 'win32ole' KYLE = "C:\\Program Files\\Microsoft Office\\OFFICE11\\DOLPHIN.ACS" agent = WIN32OLE.new("Agent.Control") agent.connected = true r = agent.Characters.load("dol", KYLE) while r.status != 0 && r.status != 1 puts 'loading...' end dol = agent.Characters.Character("dol") dol.Activate(2); dol.show(); [ [300, 300, 1000, "think", "ここはどこ?", "IDLE(1)",], [50, 50, 2000, "think", "魚はいないかな?", "GESTURELEFT",], [500, 50, 2000, "think", "魚はいないかな?", "GESTUREDOWN"], [500, 500, 2000, "think", "魚はいないかな?", "GESTUREUP"], [400, 50, 2000, "think", "魚はいないかな?", "GESTURERIGHT"], [50, 100, 2000, "speak", "腹減ったー", "ALERT" ], [200, 200, 1000, "speak", "腹減ったー", "ALERT" ], [300, 300, 1000, "speak", "腹減ったー", "ALERT" ], [500, 500, 1000, "speak", "腹減ったー", "ALERT" ], ].each do |a| dol.moveTo a[0], a[1], a[2] dol.send a[3], a[4] dol.play a[5] end dol.moveTo(500, 30, 3000); (1..9).each do |i| dol.think("魚くれないかな?"); dol.play("IDLE(#{i})"); end dol.speak("もうこねーよ、ぷんぷん"); dol.play("IDLE(7)") dol.hide(); gets
Office2000以上なら動くはず。DOLPHIN.ACSは実際のパスを指定する
補足:Office2000だとATLのバグに会うかも。その場合は、"Agent.Control"の箇所を"Agent.Control.2"に変えてみる
追記:Office2003以降デフォルトでインストールされなくなったもんで、DOLPHIN.ACSが入ってない環境が多いみたい。Wordとか開いてHelpメニューの「Officeアシスタントを表示する」をクリックするとインストーラが走るのでそこからカイル君を選んでやってください。あとbowezさんによると冴子先生でも動くそうです(playメソッドの引数に与えるジェスチャ名がそれ以外のエージェントでは違う名前なんだと思う)。
さらに追記:るびこさん効果はすごい。でも、問題は、上のコードがいまいちなこと。[[],[]].each のブロック変数には内側の配列を展開して与えることができるので、それを使ったほうが良い。ので、上のコードは今更なので直さないけど、下記の書き方を参照してください。このほうが(内側の要素を展開したほうが)良いですよね?
].each do |x, y, speed, action, msg, gesture| dol.moveTo x, y, speed dol.send action, msg dol.play gesture end
っていうか、最初JScriptで書いてた名残がたくさんあってちょっと();
ここ2年間、QLって言葉を目立つところで見るような気がする。
ジェズイットを見習え |
いるかと遊ぶ→Java7(Dolphin)を試すことだと信じて疑わなかったぼくは、何かの病気ですか?
極度のコーヒー依存症だと思います。宝石店に行ってみたり、窓を開けて空気を入れ換えたりすると良いのではないでしょうか。
コーヒーの中に浮かんでる宝石で満足しそうなのですが、旅に出たほうがいいのでしょうか・・・
その旅ってもしかして指輪を捨てに行く旅ですか?<br>僕は箪笥の奥への旅でいいかな。