~ ゲーム画面に背景(はいけい)を出そう ~
前回作ったゲーム土台の説明
学芸会や発表会の舞台(ぶたい)を思い出してください。役(やく)を演じる人や裏方(うらかた)さんが色々なことをして劇ができます。ゲームも劇を作るのににています。
1 2 | # この下にコードを入力しよう require 'gosu' |
Rubyでゲームを簡単に作ることができるようにあらかじめ用意された、 gosu (ゴス)という命令の集まりが必要なので、準備してください。
require (リクワイア)は日本語で「必要とします」という意味です。
「劇(ゲーム)作りが得意なgosuさんを連れてきてください」と、いうのに似ています。
1 | class MyGame < Gosu::Window |
あらかじめ用意された命令のあつまりgosuのなかのWindow(ウインドウ|画面にでる四角いゲーム画面)を使って、自分だけのゲームを作れるように準備してください。そのゲームはMyGame(マイゲーム|私のゲーム)という名前にしてください。
「gosuさん、一緒にMyGameという劇の準備をしましょうね」と、いうのに似ています。
1 2 3 | 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にしますよ。他に劇をやるのに必要なものは用意しておいてくださいね。」と、いうのに似ています。
1 2 | def update end |
次回以降説明します。
1 2 | def draw end |
後で説明します。
1 | end |
MyGameの end (終わり)です。
1 2 | window = MyGame. new window.show |
あらかじめMyGameという名前で準備しておいたゲーム画面を、windowという名前で作って、コンピューターの画面に出してください。
「gosuさんと準備した劇MyGameをwindowという名前でやりましょう。MyGame window公演 スタート!」と、いうのに似ています。
ゲームの背景(はいけい)をだしてみよう
あらかじめ、背景として出したい写真や絵をKidsRubyをインストールしたフォルダのgosuというフォルダに準備しておきます。ここでは、kesiki.pngとう写真がgosuフォルダいれてある場合を説明します。
def initializeとendの間に命令を追加します。
1 2 3 4 | def initialize super ( 400 , 500 , false ) @haikei = Gosu::Image. new ( self , "gosu/kesiki.png" , true ) end |
最初にやる def initializeで写真を準備します。
「gosuさん、舞台にいつでも出せるように、背景を持った背景係さんを用意しましょう。背景係さんは@haikeiという名前にしましょう」と、いうのに似ています。
そして、def drawとendの間に命令を追加します。
1 2 3 | 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)