トップ «前の日記(2006-05-24) 最新 次の日記(2006-05-26)» 編集

日々の破片

Subscribe with livedoor Reader
著作一覧

2006-05-25

_ イルカと遊ぼう

なんとなくイルカと遊びたくなったと仮定する。

なら遊べばよい。

#!/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で書いてた名残がたくさんあってちょっと();

_ すごく大事らしい

後で本当に読む

_ QL

ここ2年間、QLって言葉を目立つところで見るような気がする。

本日のツッコミ(全4件) [ツッコミを入れる]
_ きしだ (2006-05-28 04:56)

いるかと遊ぶ→Java7(Dolphin)を試すことだと信じて疑わなかったぼくは、何かの病気ですか?

_ arton (2006-05-28 10:26)

極度のコーヒー依存症だと思います。宝石店に行ってみたり、窓を開けて空気を入れ換えたりすると良いのではないでしょうか。

_ きしだ (2006-05-28 13:23)

コーヒーの中に浮かんでる宝石で満足しそうなのですが、旅に出たほうがいいのでしょうか・・・

_ arton (2006-05-28 13:55)

その旅ってもしかして指輪を捨てに行く旅ですか?<br>僕は箪笥の奥への旅でいいかな。


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|

ジェズイットを見習え