メニューへ

「マップとカーソル移動」

形を効率よく描画できる

1.こんなときどうする

例えば、背景を描く時、RPGのように壁や扉などの画像をあらかじめ作っておいた上で、それらを使って1枚の大きな背景を作りたいとき、どうすればよいのでしょうか。これを考える前に、まず同じ形の画像を一面に敷きつめるときのことを考えます。画像はイルカを使います。あらかじめカメを作っておきます。

イルカをスタンプする

かめ1、いちは 「-240 240」 スタンプ

続けて横にスタンプする

かめ1、いちは 「-120 240」 スタンプ

2.くりかえすの利用

ここで、横に続けてスタンプをするには、よこのいちを画像の横幅(120)の分だけ移動させればよいので、続けて複数スタンプするには、次のようにするとよい。

続けて横にスタンプする

えだけけす ※一度元に戻して再スタートしましょう
かめ1、いちは 「-240 240」 

くりかえす 4 「スタンプ よこのいちは よこのいち + 120」

4回スタンプしたのに5つのイルカ

一番右のイルカは移動したかめで、実際スタンプしたのは4つです。「かくれる」を実行すると消えます。

2.縦の移動を追加

横に進んだら今度は縦も移動させる必要があります。同じ要領で次のようにします。

縦横にスタンプする

えだけけす ※一度元に戻して再スタートしましょう
かめ1、いちは 「-240 240」 

くりかえす 4 「くりかえす 4 「スタンプ よこのいちは よこのいち + 120」たてのいちは たてのいち - 120 よこのいちは -240」

縦、横の個数を変える

くりかえす数を変えるだけで横の個数、縦の個数を変えることができます。上の手順には「くりかえす 4」ということばが2つあります。最初の「くりかえす 4」は縦の個数を、2番目の「くりかえす 4」は横の個数を表しています。ここを例えば「くりかえす 7」などとすることで個数を変えることができます。

形をランダムに変化させる

えだけけす ※一度元に戻して再スタートしましょう
かめ1、いちは 「-240 240」 

くりかえす 4 「くりかえす 4 「かたちは 17 + 乱数 5 スタンプ よこのいちは よこのいち + 120」たてのいちは たてのいち - 120 よこのいちは -240」

3.任意の形で敷きつめる方法

あらかじめ決めておいた形を敷きつめるには、あらかじめテキストボックスや変数で形の番号を入力しておく必要があります。例えば、9マス×9マスに合計81個の形を入力する時は、81個の形の番号が必要となるわけです。描く順番は左上から横に9個描き、また下の行の左から、ということになるので、数字もそれに伴って入力しておきます。

汎用性のあるマップ描画

手順は マップ描画 :横幅 :縦幅
なまえは "描画個数 :横幅 * :縦幅
えだけけす
描画カメ、 いちは 「-350 60」 でてくる
なまえは "番号 1
くりかえす :縦幅 「
くりかえす :横幅 「
かたちは いくつめ :番号 リストにしたもの マップデータ
スタンプ よこのいちは よこのいち + 40
なまえは "番号 :番号 + 1

よこのいちは -350
たてのいちは たてのいち - 40

かくれる
おわり

いくつめとリストにしたもの

リストにしたものとは、数や文字をスペースで区切ったかたまりをひとつのものとみなそうという考え方です。つまり、「1 12 38 9」とあれば、いままでは「いくつめ 3」なら、左から数えて3文字目、つまり「2」を表すわけです。しかし、「リストにしたもの」を使うと、かたまりをひとつとみなすため、「いくつめ 3」は左から3つ目のかたまりである「38」を返すわけです。

4.サンプルデータ

マップ描画のサンプルデータです。町をイメージしたチップを用意しました。 左上のテキストが下の絵と対応しています。縦幅、横幅を変えたり、 テキストの内容をいろいろ変えて試してみてください。

ネット上で実行する
MAP_TEST(26KB)をダウンロードする

5.マウスカーソルとマップ

しかしこの方法だと、いちいち形の番号を参照しなければならず、エディタとして使うにはなかなか不便なのが実状です。実際、RPGツクールなどでは、形のパレットのようなところをクリックした後画面をクリックするとスタンプされる、というしくみをとっています。ここでは実際そのようなエディタを作ってみたいと思います。

かめとマウスカーソルを同時に移動させる

あらかじめ「マウスカメ」というカメを作ります。

むげんに 「マウスカメ、 いちは マウスのいち」

マウスカメ

「マウスカメ」という呼び方は私がつけたもので実際こうしなければいけないわけではありませんが、せっかくカメの名前が変えられるようになっているので、カメにはそのカメのする役割を説明するような名前をつけてやるとわかりやすいです。たとえば、マウスと一緒に動くので「マウスカメ」、ボタンの役割をするから「ボタンカメ」などです。

6.カメを40×40上を移動させる

このままだと、カメは1ドットずつ動いてしまい、マップをつなげていくのに不便です。カメは形に合わせて40ずつ動くと便利です。そのために、位置、ここではよこのいちを例にとって説明します。よこのいちが「325」のとき、これが「320」になれば、40の倍数となって都合がよいわけですので、まず「325」を40で割ってみます。すると「8.125」となります。これを四捨五入すると「8」ですね。なのでこれを40倍すると「320」になります。「339」でも、40で割ると「8.475」で四捨五入すると「8」、しかし「340」を越えると四捨五入した値は「9」になり、40倍すると「360」になります。これを利用したのが以下の手順です。

40ごとに動くカメ

むげんに 「マウスカメ、 なまえは "X軸 (四捨五入 (いくつめ 1 マウスのいち) / 40) * 40 なまえは "Y軸 (四捨五入 (いくつめ 2 マウスのいち) / 40) * 40 いちは リスト :X軸 :Y軸」
かくれる
おわり

「いくつめ 2 マウスのいち」

マウスのいちとは、「50 0」というようにいわゆる「リスト」であるので、そのまま計算できません。そこで1つ目の「50」と2つ目の「0」を分けるためにいくつめを使っています。あとは先ほど説明したように、40で割って四捨五入し、再び40をかけています。

7.マップエディタ

いきなりですが、このしくみを使ってマップエディタを作りました。右の画面で絵を選んでクリックしたあと左の画面をクリックすると選んだ絵がクリックされます。

ネット上で実行する
cursor(21KB)をダウンロードする
メニューへ