原文プログラムの一部が間違っていたので修正しておいた。それではもう少し先に進んで、四角形の大きさも変えてみることにします。賢いシステムなのに、単純な数値計算なんかはプログラマに実装させてきました。正直に言えば、この点は本チュートリアルで少々思慮に欠けていました。その点を補うため、前言を撤回して、どんな場合でもちゃんと結果の出せる実装を記述したC言語のちいさなヘッダを導入することにします。いう名前で作業フォルダに保存して下さい。ディレクティブでインクルードするよう追加してみて下さい。そのヘッダ・ファイルを使えば、2つの値の間を補間する数値計算処理を利用できるようになります。渡すだけで簡単に実現できると言うことです。(Zは0〜1の値です)。あわせて1.0と2.0との間で補間した値を返します。0.5以上ならば2.0から1.0の間を補間します。要するに、四角形の大きさが元のサイズの2倍になったら、今度は倍率を小さくしていくと言うことです。それにより大きくなったり小さくなったりのアニメーションが滑らかに表現できます。大きくなった後は四角形を最初から描画します)。ここまでのサンプル・プログラムをコンパイルして実行すると、四角形が回転しながら大きくなったり小さくなったりするアニメーションをみることができます。先に進んでみることにしましょう。四角形の大きさが変化せず回転もしていないのであれば「クリックした点が四角形の境界線より内側かどうか?」で判定する方法が簡単そうですが、このサンプル・プログラムの場合、オブジェクトを変化させる効果によりそれをとても難しくしています。いう新しい関数を関連づけます。タイムフレームを実現した時と同様に、この関数は特別な引数を受け取れるようになっているので、必要に応じてコピー&ペーストを行います。クリックした四角形を表示しないようにするclutter_actor_hide(clicked);}ここまで実装してきたサンプル・プログラムをコンパイルして実行すると、前回のサンプルと同じように四角形が回転しながら大きくなったり小さくなりますが、その中の四角形をクリックして消してしまうことができます。アルゴリズムでは、四角形をステージに追加した順番に並び替えるようになっているため、ある四角形と他の四角形とが交差して重なっている部分をクリックすると、一番上にある四角形がクリックされたと認識されます。使えば、オブジェクトを回転させながら大きさを変えることができるということが分かりました。万歳!」といったところでしょう。アニメーションに関連する全ての処理を1つの関数にまとめてしまっているので、複雑なアニメーションを実現するには少々厄介です。スコア付きで面倒をみてくれます。並列でも直列でも実行できるタイムラインのコレクションが用意されているので、必要に応じて使い分けできます。1つ目は四角形を回転する処理で、もう1つは四角形の大きさを変更する処理です。既存の関数を2つに分割しただけです。これで、まずスコアを新規に生成し、それを使って以前のアニメーションの動作を再構築し、それから2個のタイムラインをスコアに追加して並列で動作させる準備が整いました。スコアにループして貰いたいのです。いう関数の場合、タイムラインをそれぞれループさせるのではなく、スコア全体をループさせていることがわかると思います。ステージが破棄されてもスコアは自動的に破棄されません。以前と同じように四角形が回転しながら大きくなったり小さくなります。一度だけ呼び出されます。間実行させたたいということです。可能な時にそのタイムラインを実行させる」という意味になります)。timeline_scale);ここまでで、四角形の大きさを変更するタイムラインをスコアに追加し、そのスコアを四角形を回転させるタイムラインの親にしました。最初に四角形を回転させて、次に四角形の大きさを変更します。四角形が少しだけ回転すると、回転を停止してちょっとだけ大きくなります。それから再び停止して回転していきます。この動作を繰り返すわけです。(ここがすごいところなのですが)。色のついた四角形の代わりに用意した画像を使用します。NULL);他に変更することはありません。ここでプログラムをコンパイルして実行させると、前のサンプルのように四角形ではなく指定した画像が描画されるはずです。形式の画像を読み込んで、他の種類のアクター同様に扱うことができます。先ほど変更した行を次の行で置き換えてみて下さい。(回転したり大きさが変わるのは前と同じですが)。関数に渡す最初の引数は使用するフォントの名前とサイズです。2番目の引数は実際に表示する文字列で、3番目の引数はその文字列を描画する際の色になります。実際にはキーボードから入力した文字列だとか、改行文字を含む長い文章も同じように扱えます。このようなことを試してみるには2点ほど変更する必要があります。今回は、クリックしたアクターを消すのではなく、ユーザにキーボードのフォーカスを与えて何か文字を入力できるようにします。面倒な手続きなしで文字列を扱うことができます。有効にした方がもっと綺麗な結果になるでしょう。)最後に紹介するテクニック本チュートリアルを切り上げる前に、試してもらいたいことが3つほどあります。この表記をそろそろ捨てさってしまってもよい時期でしょう。これらのイベントは特定のアクションに関連づけることが可能になっています。ここで重要なポイントは、アクターなるオブジェクトを任意のイベントに反応するよう指定するということです。指示するできるということです。大部分のオブジェクトはイベントに反応しません。そのため、利用したいイベントを有効にて下さい。いう関数をコールバックとして四角形に関連づけています。関数の時と全く同じです。型のオブジェクトを第1引数として渡して関数の中でアクセスできるようにしています。そのアクターをコールバック関数の第1引数に格納してくれます。いろいろな四角形に同じコールバック関数を関連づけ、その中からクリックした四角形だけを見つけてくれるというわけです。変更して、四角形だけを検出するように設定してみて下さい。最後に、本チュートリアルではアニメーションの技法について大部分を割愛してきました。その説明は少々一筋縄にはいかないものであり、初心者向きのチュートリアルとしてはその範疇を超えているからです。アニメーションを作成するのが本当に簡単であることについてさえも言及していないのあれば、それはそれで筆者の怠慢と言えますが。いう魔法の関数がやってくれることを一言で表現すると、アニメーションに関する複雑な処理を全てラッピングして隠してくれる上に、面白そうな好奇心を抱かしてくれるもの、と言えます。タイムラインは複数個ありますが、実際はそんなに必要ありません。EXIT_SUCCESS;}このサンプル・プログラムをコンパイルして実行すると、6個の四角形が、まるで命を吹き込んでもらいたいのを待っているかのように、全て真ん中にじっとした状態で表示されるはずです。関数を使い、これらの四角形を回転させながらステージの別の場所へ飛ばすということです。なる関数は定義していませんが、生成した四角形を引数にして何回か呼び出すものだと推測することができます。ここで重要なポイントは、乱数として得られたランダムな値を整数値ではなく実数値として指定しなければならないと言うことです。ここでそのまま整数値を使ってしまうと、ほぼ確実にプログラムはクラッシュします。関数を別々に複数回呼び出すことになります。渡しますこのプログラムをコンパイルして実行し、ステージ上のどこかをクリックすると四角形が動き出します。変更し、もう一度コンパイルして実行してみて下さい。これは画像や文字列を使っても簡単に実現できます。入門書なる部分のみを対象していますが、これを執筆した数時間でいろいろと多岐にわたり充実した内容に仕上がったと思います。採用した理由は明白でしょう。賢く魅力的なユーザインタフェースを本当に素早く簡単に作成する手法を提供しています。「たぶん、私にも作れるかもしれない」。初心者向け(?)チュートリアルを日本語にしてみた。いうフリーソフトウェアに関する技術ニュースやチュートリアルなんかを執筆し公開しているウェブサイトのもの。原文は全体的に読みづらい印象あり。向けはこのチュートリアルが最初かも。使った本格的なチュートリアルを作成中とのこと。一気に読み上げてブログにまとめてしまおうとしたけど、かなりの長文になってしまい、ブログ形式で記述・修正するにはそれなりに手間がかかるため何回かに分割して掲載することにした。アニメーション作成までにする。ナンバー1の人気でしょう。(という遠回しの皮肉:訳注)。それは参考になるドキュメントがホントに少ないということです。使い方を学習したいと考えているハッカーは大勢いますが、今すぐ始めるにしてはウェブにも幾分情報が不足しています。習得するしたいと考えている人達のために、チュートリアル的なガイドを数時間を費やして作成してみました。寄付してくれるほど親切な企業です。(原文にあるフラッシュを使った広告のこと)。「捧げた」特集記事をご覧いただける予定です。向けのプログラミング・チュートリアルの連載を開始する予定です。ユーザインタフェースのようなフロント・エンド部で広く利用されています。理解しやすく、使いやすく、加えてまったく面白い技術です。試したことが無いという場合でも、ご安心下さい。使ったプログラミングを身につけるための簡単な方法を紹介します。広告をクリックしてみて下さい。そこには、ここで紹介したことの他にもいろいろな情報があります。ドキュメントで今現在不足している箇所を補うための「臨時措置」みたいなものだということです。チュートリアルを作成中ですが、それを完成するには2,3ヶ月必要であるとみています。使ったプログラミングを楽しんで欲しいと考えています。使ってみることにします。呼ばれるいくつかのオブジェクトをそのステージに追加することができます。使ってみることにしましょう。開発ができる準備が整っているかどうかを確認することができるでしょう。入力してサンプル・プログラムを起動できます。互換性は無いので注意して下さい。clutter-0.9)。起動すると、背景が黒くタイトルバーを持つウィンドウが表示されます。えっと、それだけです。記憶に残る程のものではありませんが、実はそれが重要なポイントです。アプリケーションとして準備が整った状態を表しているからです。使って開発できる環境になったことの証明でもあります。使ったプログラムを作成する際はこの関数を呼び出すことになります。コマンドラインのオプションがいくつか用意されており、このように引き渡すことでそれらを指定できるようになっています。解析を行って、それが完了した引数は自動的にその変数から削除されるようになっており、これ以降の処理ではそれらの「引数」は参照できなくなるということです。格納するための構造体にすぎません。16進数で指定することができます。中で最も重要なデータ型です。このサンプル・プログラムではデフォルトのステージを取得する目的でこの型を使っています。私達のために用意してくれるオブジェクトです。キャストされた型でしかなく、プログラムの中で必要に応じてキャストし直すことが可能になっています。関数を使って1個のアクターの大きさを指定します。第1引数として渡してから、横と縦の大きさをそれぞれ第2引数と第3引数で指定しています。お分かりかと思いますが、ステージの色をセットする関数です。アクターを表示する関数です。ウィンドウやその他のアクターを表示することができません。メイン・イベント・ループを生成する関数です。