Non-Fiction(Remix Version)
音楽とプログラミングと武侠ものがメイン。
<<公とpublic | ホーム | RubyCocoaでアニメーション>>
RubyCocoaでアニメーション:最初のアニメーションプログラム
長いので、本文は続きを読むで RubyCocoaでアプリケーションを作る手順はチュートリアルを参照、これを一通りやってみて感触をつかんでおくとわかりやすい。
ここでは、チュートリアルとは違うところを書いておく。最初にAppController.rbのファイルを作るところまでは一緒ね。そして、その中身はこのようにしておく。
二行目の
というのが、CoreAnimationを使うための設定。そして
がこれから作るGUIとのインターフェースの部分だ。ここまで書いたら、いったんファイルを保存して、MainMenu.nibをダブルクリックしてインターフェースビルダーを起動する。AppControllerオブジェクトを作るところまでは一緒なのだが、その後はアニメーションを表示するためのCustomViewとアニメーションを実行するためのButtonを配置しよう。
配置し終わった画面はこんな感じになる。

配置が終わったら、AppControllerとCustomView、ButtonとAppControllerの間にコネクションをつなぐ。これで一通りGUIができたので、SaveしてXCodeに戻ろう。
こんどはAppController.rbに初期化のコードを書く。初期化はawakeFromNibというメソッドの中で行なう。
やってることは、こっちのCoreAnimationの解説記事と同じ。違うのはRubyCocoaの場合、Cocoaの機能を使用するときには先頭に'OSX::'というのを付けるのと、YESの代わりにtrueを使っていることくらいだ。
あと、画像ファイルは適当なものに変えている。
ここまで終わったら、今度はアニメーションを動かすコードを書く。ib_actionで宣言しておいた、doAnimationを作っていこう。
このコードもこちらと基本的には変わらない。Objective-Cに慣れていない人は、こっちの方がわかりやすいかもしれない。
ここまで書いたら、ビルドして実行してみよう。ボタンをクリックすれば、画像が右上に向かって動くはずだ。
ここでは、チュートリアルとは違うところを書いておく。最初にAppController.rbのファイルを作るところまでは一緒ね。そして、その中身はこのようにしておく。
require 'osx/cocoa'
OSX.require_framework 'QuartzCore'
class AppController < OSX::NSObjectib_outlet :viewend
ib_action :doAnimation
二行目の
OSX.require_framework 'QuartzCore'
というのが、CoreAnimationを使うための設定。そして
ib_outlet :view
ib_action :doAnimation
がこれから作るGUIとのインターフェースの部分だ。ここまで書いたら、いったんファイルを保存して、MainMenu.nibをダブルクリックしてインターフェースビルダーを起動する。AppControllerオブジェクトを作るところまでは一緒なのだが、その後はアニメーションを表示するためのCustomViewとアニメーションを実行するためのButtonを配置しよう。
配置し終わった画面はこんな感じになる。

配置が終わったら、AppControllerとCustomView、ButtonとAppControllerの間にコネクションをつなぐ。これで一通りGUIができたので、SaveしてXCodeに戻ろう。
こんどはAppController.rbに初期化のコードを書く。初期化はawakeFromNibというメソッドの中で行なう。
def awakeFromNibbitmapImage = OSX::NSBitmapImageRep.imageRepWithContentsOfFile_end
('/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)
やってることは、こっちのCoreAnimationの解説記事と同じ。違うのはRubyCocoaの場合、Cocoaの機能を使用するときには先頭に'OSX::'というのを付けるのと、YESの代わりにtrueを使っていることくらいだ。
あと、画像ファイルは適当なものに変えている。
ここまで終わったら、今度はアニメーションを動かすコードを書く。ib_actionで宣言しておいた、doAnimationを作っていこう。
def doAnimation(sender)layer = @view.layer.sublayers.objectAtIndex_(0)end
layer.position =OSX::CGPointMake(400,300)
このコードもこちらと基本的には変わらない。Objective-Cに慣れていない人は、こっちの方がわかりやすいかもしれない。
ここまで書いたら、ビルドして実行してみよう。ボタンをクリックすれば、画像が右上に向かって動くはずだ。
タグ : CoreAnimation RubyCocoa
<<公とpublic | HOME | RubyCocoaでアニメーション>>
コメント
コメントの投稿
トラックバック
| HOME |



