Javaプログラミング/サーバサイド&ケータイJava

スプライトでキャラクタを操作しよう(2ページ目)

iアプリでゲームのキャラクタなどを操作するのに必須な「スプライト」を使ってみましょう。

執筆者:掌田 津耶乃

表示された2つのキャラクタ。片方は、上下左右のキーで動かせる。

SpriteとSpriteSet


これは、char.gifを読み込んで、2つのスプライトを作成し表示するサンプルです。1つは、上下左右のキーを押すことで、10ドットずつ動かすことができます。

スプライト機能は、「Sprite」と「SpriteSet」という2つのクラスによって実現されます。これらは、それぞれ以下のような働きがあります。

Sprite――これが、キャラクタを表示するスプライトに相当するものです。表示するイメージや位置に関する情報を保持しており、また位置や大きさに関する設定などのメソッドがあります。
SpriteSet――複数のSpriteインスタンスを管理するクラスです。ここで利用するSpriteをまとめておくことで、それらを一括して画面に描画したりするのに利用できます。また、衝突判定などに関するメソッドが用意されており、Sprite同士の衝突処理を簡単に行えます。

では、スプライト関係の機能がどのように利用されているか、見てみましょう。まず最初に、表示用のイメージの準備を行います。

MediaImage mi = MediaManager.getImage("resource:///char.gif");
mi.use();
charImg = mi.getImage();

まぁ、このあたりは既に学習済みですからわかりますね。リソースからMediaManagerを使ってMediaImageを読み込み、そこからImageインスタンスとしてイメージを取得します。

続いて、Spriteインスタンスの作成です。今回は2つのSpriteインスタンスを作成していますが、重要なのは「使用するSpriteは、すべて配列としてまとめる必要がある」という点です。これは、この後で登場するSpriteSetでSpriteを利用するために必要な措置です。

sprites = new Sprite[2];
sprites[0] = new Sprite(charImg);
sprites[1] = new Sprite(charImg);

これが、インスタンスを準備しているところです。まず、Sprite配列を用意し、配列の各要素にnew Spriteして作成したインスタンスを設定します。newする際には、表示に使用するImageインスタンスを引数に指定します。これで、そのイメージを表示するSpriteが作成されます。

sprites[0].setLocation(50,50);
sprites[1].setLocation(100,100);

続いて行っているのは、各Spriteの表示場所の設定です。作成したSpriteは、初期状態では位置は設定されておらず、すべて0,0の場所に表示されてしまいます。ですので、作成後に「setLocation」で表示場所を設定してやる必要があります。

set = new SpriteSet(sprites);

Sprite配列の準備が整ったら、SpriteSetインスタンスを作成します。これは、引数にSprite配列を渡して作成します。

こうして作成したスプライトを画面に描画するのは、実に簡単です。paintメソッドを見てください。

g.drawSpriteSet(set);

たったこれだけ。「drawSpriteSet」というメソッドを使ってSpriteSetを描画すると、そこに設定されているすべてのSpriteが描かれます。実にすっきりと表示をまとめることができるでしょう?
  • 前のページへ
  • 1
  • 2
  • 3
  • 4
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます