子どもRubyプログラミング講座「ゲーム編」 第2回

~ ゲーム画面に背景(はいけい)を出そう ~

gameimage

前回作ったゲーム土台の説明

学芸会や発表会の舞台(ぶたい)を思い出してください。役(やく)を演じる人や裏方(うらかた)さんが色々なことをして劇ができます。ゲームも劇を作るのににています。

# この下にコードを入力しよう
require 'gosu'

Rubyでゲームを簡単に作ることができるようにあらかじめ用意された、 gosu (ゴス)という命令の集まりが必要なので、準備してください。

require (リクワイア)は日本語で「必要とします」という意味です。

「劇(ゲーム)作りが得意なgosuさんを連れてきてください」と、いうのに似ています。

class MyGame < Gosu::Window

あらかじめ用意された命令のあつまりgosuのなかのWindow(ウインドウ|画面にでる四角いゲーム画面)を使って、自分だけのゲームを作れるように準備してください。そのゲームはMyGame(マイゲーム|私のゲーム)という名前にしてください。

「gosuさん、一緒にMyGameという劇の準備をしましょうね」と、いうのに似ています。

def initialize
  super(400, 500, false)
end

def(デフ)はdefine(デファイン|はっきりと決める)を短くした命令です。 initialize(イニシャライズ)は「最初にやることをやる」という意味です。

def initialize で、最初によることをはっきり決めるという意味になります。def initializeからendの間に、最初にやることを書きます。

super(スーパー)は、gosuに「最初にやるべきことをやってください」と、命令をするときに使います。gosuが最初にやることはゲーム画面を出すことやゲームを動かすのに必要なことの準備と、あらかじめ決められています。

400,500は、画面の縦横の大きさです。単位はピクセルです。ピクセルはコンピューターの画面の小さな点の1つです。400ピクセルは小さな点400個分の大きさです。

false (フォルス)は、「正しくない」という意味です。ここにfalseを入れると、コンピューター全体の画面をひとりじめしないようにすることができます。

「gosuさん、舞台の大きさは縦400 横500にしますよ。他に劇をやるのに必要なものは用意しておいてくださいね。」と、いうのに似ています。

def update
end

次回以降説明します。

def draw
end

後で説明します。

end

MyGameの end (終わり)です。

window = MyGame.new
window.show

あらかじめMyGameという名前で準備しておいたゲーム画面を、windowという名前で作って、コンピューターの画面に出してください。

「gosuさんと準備した劇MyGameをwindowという名前でやりましょう。MyGame window公演 スタート!」と、いうのに似ています。

ゲームの背景(はいけい)をだしてみよう

あらかじめ、背景として出したい写真や絵をKidsRubyをインストールしたフォルダのgosuというフォルダに準備しておきます。ここでは、kesiki.pngとう写真がgosuフォルダいれてある場合を説明します。

def initializeとendの間に命令を追加します。

def initialize
 super(400, 500, false)
 @haikei = Gosu::Image.new(self, "gosu/kesiki.png", true)
end

最初にやる def initializeで写真を準備します。

「gosuさん、舞台にいつでも出せるように、背景を持った背景係さんを用意しましょう。背景係さんは@haikeiという名前にしましょう」と、いうのに似ています。

そして、def drawとendの間に命令を追加します。

def draw
 @haikei.draw(0,0,0)
end

def drawとendの間には、画面にゲームで使う絵をコンピューターの画面に描くためにgosuにする命令を書きます。

「gosuさん、背景係さんに画面に出てもらいましょう」と、いうのににています。

「動かす」ボタンをクリックしてみましょう。背景がゲーム画面に出ましたね。

呪文のようにむつかしい命令が出てきましたね。でもまずは、コンピューターの中にいるgosuさんと一緒に用意した背景係さんを想像しながら、いろいろな写真を背景で出してみてください。

おわり

Background image of the sample game: CC BY 2.0 By Perrimoon http://www.flickr.com/photos/18614695@N00/3759365910)