配置(はいち)位置(いち)について

A5if X <= 3 : end : else : stop」または「if X > 3 : stop等々(とうとう)
A6
	switch X
		case 1
			mes "1"
			swbreak
		case 2
			mes "2"
			swbreak
		default
			mes "1、2以外"
	swend
4ページ()からHSPウィンドウ(じょう)にテキストを表示(ひょうじ)している。 1つのスクリプトで複数のテキスト表示命令(ひょうじめいれい)使(つか)うと、 (おな)場所(ばしょ)(うえ)から()りつぶすようにはならなくて1行分下に表示されたよね? この表示(ひょうじ)させる位置(いち)のことをカレントポジション()って、 メモ(ちょう)などのエディターで(たと)えるならば、「文字(もじ)入力(にゅうりょく)するとココに(はい)るよ」と いう目印(めじるし)になる縦棒(たてぼう)の、(いま)までチカチカと()んでいたキャレットのことだ。 このカレントポジションは()には()えないけれど(はじ)めは(0,0)となっている。 …で表示(ひょうじ)させると、カレントポジションは表示文字(ひょうじもじ)(たか)(ぶん)(した)(さき)ほどのカレントポジション位置(いち)移動(いどう)する。 コレはHSPの機能(きのう)の1つで自動的(じどうてき)位置(いち)()えてくれるというものだ。 自動的(じどうてき)ではなく手動(しゅどう)表示位置(ひょうじいち)()えたい場合(ばあい)もあるはず。 (とく)左端(ひだりはし)や、上側(うえがわ)からだけではなく()(なか)(みぎ)のほうに表示(ひょうじ)したい そういった場合(ばあい)表示位置(ひょうじいち)変更(へんこう)する命令(めいれい)使(つか)うとよい。 命令名(めいれいめい)posで、指定(してい)するパラメーターは「pos X位置(いち),Y位置(いち)」と pos半角(はんかく)スペースで()けて座標(ざひょう)(ドット単位(たんい))をコンマで区切(くぎ)って指定(してい)する。 Xは横方向(よこほうこう)座標(ざひょう)(みぎ)()くほど(おお)きく、(ひだり)()くほど(ちい)さい。 コレは通常(つうじょう)数学(すうじ)でのグラフ座標(ざひょう)(おな)じだね。 Yの(ほう)(ちが)うのでキッチリ(おぼ)えておいてね。 どう(ちが)うかと()うと(うえ)()くほど(ちい)さく、(した)()くほど(おお)きいということだよ。 ウィンドウの初期(しょき)サイズは640×480ドットなので上記(じょうき)(かん)じだね。 プラスの(あたい)しか()てきてないけどマイナス()指定(してい)できるんだよ。 マイナスの(あたい)やウィンドウサイズよりも(おお)きな(あたい)指定(してい)すると、 当然(とうぜん)だけど文字(もじ)()れちゃったり()えなくなったりするからね。 さぁそれではpos命令(めいれい)使(つか)ってテキストを表示(ひょうじ)してみて。 …うまく表示(ひょうじ)できた? (なに)表示(ひょうじ)されないんだけど、とか()わないでね? パラメーターがウィンドウ(がい)位置(いち)表示(ひょうじ)されなかったというのはいいけど、 ウィンドウ(ない)のはずなのに(なに)()えても表示(ひょうじ)されないってパターン。 もう一度(いちど)()くけどpos命令(めいれい)は「カレントポジションを変更(へんこう)する命令(めいれい)」。 テキストを表示(ひょうじ)する命令(めいれい)ではないよ? mes,print命令(めいれい)使(つか)わなきゃ表示(ひょうじ)はされないんだよ。 講座(こうざ)としてサンプルを(しめ)さないわけにはいかないので()くことにする。
	pos 50,100 : mes "座標(50,100)を開始点かいしてんにして表示させてみるテスト"
	pos 400,20 : mes "右端がウィンドウ外に飛び出して切れてしまうもの"
	pos 320,416 : mes "下の方に表示させてみるテスト"
	stop
6ページ()いたマルチステートメントを使(つか)っているよ。 このmes命令(めいれい)はこの位置(いち)表示(ひょうじ)する というものを明示的(めいじてき)に分かりやすくしているんだ。 pos命令(めいれい)のパラメータを省略(しょうりゃく)したらどうなるのだろう? エラーとはならず、以前(いぜん)位置(いち)となるんだね。 X,Y両方(りょうほう)以前(いぜん)位置(いち)となるのではなく、 省略(しょうりゃく)したパラメータ(がわ)だけが以前(いぜん)位置(いち)となるんだよ。つまり、
	pos 123, : mes "abcdefg"
	pos ,50 : mes "xyz"
	stop
1つ()だとY(がわ)省略(しょうりゃく)されているので、以前(いぜん)位置(いち)となるのだが、 以前(いぜん)位置(いち)がないので、初期値(しょきち)の0が(はい)り「123,0」となる。 2つ()はX(がわ)だけ省略(しょうりゃく)されているので、Xには前回(ぜんかい)のXである「123」が(はい)る。 つまり位置(いち)としては「123,50」となる。 1つ()もそうなのだが、(あいだ)区切(くぎ)りコンマはあってもなくても(おな)じだ。 3つ()両方(りょうほう)ないので、そのままの「123,50」となるはずだが、 (すで)に1つ(まえ)mes命令(めいれい)があるので、1行下(ぎょうした)となる。 明示的(めいじてき)つながりで命令(めいれい)じゃないけどコレも()いておこう。 明示的(めいじてき)にスクリプト内容(ないよう)()くというものにコメントというものがある。 コメントとは、プログラムの内容(ないよう)自分(じぶん)なりに()かりやすく注釈(ちゅうしゃく)するためのもの。 いわゆるメモ()きってモノで(なに)()いても実行(じっこう)されない。 自分(じぶん)(プログラマー)にわかればいいので書式(しょしき)やルールといったものはないよ。 ただ、どこからどこまでがコメントなのかを(しめ)さなければならない。 (おお)きく()けて2つの()(かた)があるのだが、 1つはコメントの開始(かいし)ポイント以降(いこう)はその1(ぎょう)(すべ)てコメントとなるもの。 最大(さいだい)でも1行分(ぎょうぶん)しかコメントにならないのでコメントの終了(しゅうりょう)()かなくてよいのだ。 …というか終了(しゅうりょう)ポイントの()(かた)がないので()けないのだが…。 開始点(かいしてん)には「;(セミコロン)」(また)は「//(ダブルスラッシュ)」を()く。 もしmes命令(めいれい)表示(ひょうじ)させるテキストの(なか)にセミコロン(とう)()いた場合(ばあい)、 それ以降(いこう)はコメントになって表示(ひょうじ)されなくなっちゃうの? って疑問(ぎもん)()(かた)()っておくと、 ダブルクォーテーションで(かこ)まれた(なか)()くものはコメントとはならない。
	pos -4,111 : mes "ダブルクォーテーション内に;を書いてみる" ; ←「を書いてみる」は表示される
	// コレはコメント
	stop
//は、他言語(たげんご)でよく()かけるけど、HSPはバージョン2.6から使(つか)えるようになったものだ。 ;記述以外(きじゅついがい)(まった)(おな)じなので(すき)きな(ほう)使(つか)えばよいだろう。 さぁ、もう1つの()(かた)とは複数行(ふくすうぎょう)一気(いっき)にコメントに出来(でき)るもので、 開始(かいし)ポイントに「/*」に、終了(しゅうりょう)ポイントに「*/」を()くんだ。 コレも他言語(たげんご)()かける()(かた)でHSPでは2.6から使(つか)えるようになったものだ。 デバックの(ちゅう)はココからココまでは不必要(ふひつよう)だという(とき)活用(かつよう)しよう。
	abc=123
/*
	if abc=123 {
		pos 200,300 : mes "本番はこの処理を実行する"
	} else {
		pos 100,100 : mes "一瞬で終了"
		end
	}
*/
	stop
複数行(ふくすうぎょう)コメントの()かりやすい()(かた)として、 下記(かき)のような()(かた)をよく()かけるよ。
	/************************
	*              *
	*  コメントを書いておく  *
	*              *
	*************************/
全部(ぜんぶ)全部(ぜんぶ)こんな()(かた)では コメントを()くだけで時間(じかん)()かってしまい大変(たいへん)なのだが、 処理単位(しょりたんい)()(おお)きなコメントなどでこういう()(かた)をすれば効果的(こうかてき)だ。 ()れてしまった(はなし)(もと)(もど)そう。…といってももうおしまいなのだが。 現段階(げんだんかい)ではテキスト表示命令(ひょうじめいれい)でしか位置(いち)()えても意味(いみ)がないのだが、 pos命令(めいれい)はテキスト以外(いがい)でも画像(がぞう)やボタンや入力(にゅうりょく)ボックスなど ウィンドウ上に表示(ひょうじ)するあらゆるものの配置位置(はいちいち)決定(けってい)するものである。 (おぼ)えておこう。 はい、以上(いじょう)でこのページのレクチャーを()わろうと(おも)う。 (ぜん)ページまでと(くら)べて非常(ひじょう)(みじか)かったのだが、 もう1つの入門講座(にゅうもんこうざ)のように()()んだりということは出来(でき)るだけしない。 (つく)るのもしんどいだけだしね^^;
Q7どの位置(いち)表示(ひょうじ)されるかX,Y座標(ざひょう)(こた)えよ
	pos 100,50
	//pos 50,200
	pos 200 : pos
	mes "pos 98,40 : どのポジションでしょう?" : pos 50,30
	pos 303
	pos ,150
	stop
もくじへ戻る 6ページへ戻る