RubyCocoaでアニメーション:最初のアニメーションプログラム

長いので、本文は続きを読むで RubyCocoaでアプリケーションを作る手順はチュートリアルを参照、これを一通りやってみて感触をつかんでおくとわかりやすい。
 ここでは、チュートリアルとは違うところを書いておく。最初にAppController.rbのファイルを作るところまでは一緒ね。そして、その中身はこのようにしておく。

require 'osx/cocoa'
OSX.require_framework 'QuartzCore'

class AppController < OSX::NSObject
ib_outlet :view
ib_action :doAnimation
end


二行目の
OSX.require_framework 'QuartzCore'

というのが、CoreAnimationを使うための設定。そして
ib_outlet :view
ib_action :doAnimation

がこれから作るGUIとのインターフェースの部分だ。ここまで書いたら、いったんファイルを保存して、MainMenu.nibをダブルクリックしてインターフェースビルダーを起動する。AppControllerオブジェクトを作るところまでは一緒なのだが、その後はアニメーションを表示するためのCustomViewとアニメーションを実行するためのButtonを配置しよう。
配置し終わった画面はこんな感じになる。

GUIの作成


配置が終わったら、AppControllerとCustomView、ButtonとAppControllerの間にコネクションをつなぐ。これで一通りGUIができたので、SaveしてXCodeに戻ろう。

こんどはAppController.rbに初期化のコードを書く。初期化はawakeFromNibというメソッドの中で行なう。
def awakeFromNib
bitmapImage = OSX::NSBitmapImageRep.imageRepWithContentsOfFile_
('/Users/takayukiu/Documents/P1000551.JPG')
image = bitmapImage.CGImage()

layer = OSX::CALayer.layer()
layer.contents = image
layer.frame = OSX::CGRectMake(0,0,256,160)

black=OSX::CGColorCreateGenericRGB(0,0, 0,1.0)
backgroundLayer=OSX::CALayer.layer()
backgroundLayer.backgroundColor=black

backgroundLayer.addSublayer_(layer)

@view.setLayer_(backgroundLayer)
@view.setWantsLayer_(true)
end

 やってることは、こっちCoreAnimationの解説記事と同じ。違うのはRubyCocoaの場合、Cocoaの機能を使用するときには先頭に'OSX::'というのを付けるのと、YESの代わりにtrueを使っていることくらいだ。
 あと、画像ファイルは適当なものに変えている。

ここまで終わったら、今度はアニメーションを動かすコードを書く。ib_actionで宣言しておいた、doAnimationを作っていこう。
def doAnimation(sender)
layer = @view.layer.sublayers.objectAtIndex_(0)
layer.position =OSX::CGPointMake(400,300)
end

 このコードもこちらと基本的には変わらない。Objective-Cに慣れていない人は、こっちの方がわかりやすいかもしれない。

 ここまで書いたら、ビルドして実行してみよう。ボタンをクリックすれば、画像が右上に向かって動くはずだ。

タグ : CoreAnimation RubyCocoa

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック


この記事にトラックバックする(FC2ブログユーザー)

プロフィール

Author:うちゃ
FC2ブログへようこそ!

最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
カレンダー
10 | 2008/11 | 12
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
FC2カウンター
ブロとも申請フォーム

この人とブロともになる

ユーザータグ

PSY・S 尋秦記 アップル 大旗英雄伝 碧血剣 武侠ヒロイン 笑傲江湖 Dashcode 種ともこ 射雕英雄伝 雪山飛狐 ウルトラマン 断仇谷 七剣下天山 仮面ライダー CoreData 遊佐未森 RubyCocoa CoreAnimation 坂本真綾 KOKIA ハチクロ かの香織 中森明菜 BARBEEBOYS スピッツ 神雕侠侶 QuartzComposer 蒼井優 PSY・S 土岐麻子 東周列国 ZABADAK SION 連城訣 Grapher 森口博子