更新:2022年7月29日 HSPトップへもどる
『 駅前のぼうけん 』 ◆ブラウザ上で動作するページ
★このスクリプトは 画像を使用していませんので、WebDishサービスにそのまま登録できます
#include "hsp3dish.as"
screen 0,480,800 //スマホやタブレットなどが前提の場合は自分で最適なサイズを設定する
title "じゅんノベル ver 0.1" //タイトルも自由に変更してください
bamensetumeimes = "自宅のまえに立っています" //開始時点のメッセージ
//-------------------------------------------
//ボタンオブジェクト(行動の選択肢)
objsize 200,40
pos 80,500 : button "選択肢 ① 用賀駅へ行く", *bamen1
pos 80,560 : button "選択肢 ② 二子玉川駅へ行く", *bamen2
pos 80,620 : button "選択肢 ③ 桜新町駅へ行く", *bamen3
//メインループ
*main_loop
redraw 0
gmode 2 //透明色あり
color 0,0,128 : boxf //ぬりつぶし
//場面説明メッセージ表示(毎回)
gosub *bamen_setumei_mesput
//------------------------------------------------
//入力検出
stick key,15 //パソコン物理キーボード入力検知
if key&128 : end // ESCキー 押されたらプログラム終了
//タッチ判定(※注意! 今回のプログラムではまだ使用していません。
// 今回はタッチ判定のかわりに「ボタンオブジェクト」を使っています
y=16
mtlist touchid
num=stat
repeat num
id = touchid(cnt)
mtinfo touch,id
//mes "T:"+id+"("+touch(1)+","+touch(2)+") "+touch(3)
y+=10
loop
//------------------------------------------------
redraw 1
await 1000/60
goto *main_loop
stop
//================================================================
//場面説明メッセージを表示(毎回)
*bamen_setumei_mesput
font "",28,16,1
color 255,255,255
pos 40,100 : mes bamensetumeimes
return
stop
//================================================================
//場面1
*bamen1
bamensetumeimes = "用賀駅の前にいます\n\nせたがや信用金庫がみえます"
goto *main_loop
stop
//================================================================
//場面2
*bamen2
bamensetumeimes = "二子玉川駅の前にいます\n\n北側に高島屋\n\n南側にライズがみえます"
goto *main_loop
stop
//================================================================
//場面3
*bamen3
bamensetumeimes = "桜新町駅の前にいます\n\n「サザエさん通り商店街」\n\nの入り口があります"
goto *main_loop
stop
//================================================================
・プログラム言語 HSP の世界では、 button 命令 などで画面に表示される部品のことをまとめて「オブジェクト」と呼んでいます。
・これは普通の画像とすこしちがって、mes 命令や boxf 命令、celput 命令で描かれたモノよりも常に「手前(上レイヤー)」に表示されています。
例えば、同じ座標(pos)に先に button 命令 で表示して、そのあとで mes 命令で文字を表示しても、その文字は button の上にはこないで、button の下にきます。(つまり隠れてしまって画面には見えない。)
・button などのオブジェクトを消去するには clrobj 命令や cls 命令
・button に表示されている文字列を変更するには objprm 命令
そのほか、 objmode objimage objsize などの命令もあります。
今回このサンプルではオブジェクトの button で行動の選択肢を表示していますが、わかりにくければ、自分の作りやすい方式に自由に改造していきましょう。
※今後、オブジェクトを使わない方式のサンプルも追加予定
初心者へのヒント:
このサンプルは「アドベンチャーゲーム」のいちばん簡単なもと(ひながた)です。
これをもとに自分でゲーム内容を考えて、シナリオを作っていけると思います。
このサンプルは好きなように加工、編集、利用してかまいません。
このサンプルをもとにして自分で作った作品は、「すべて自分が作ったもの」と言っても大丈夫です。著作権は作ったあなたのモノです。
HSPコンテストやその他のコンテストに応募しても問題ありません。
このサンプルは、画像ファイル(外部ファイル)を使用していないので、
WebDishサービス – SoupSeed に投稿するのにも向いています。
まず一番さいしょは、とても短いストーリーを考えて、謎はひとつだけいれるくらいのシナリオで、エンディングまで完成させられるとよいかもしれません。
もちろん なにをつくるのかは、あなたの自由です。
おもいっきりふざけたギャグマンガ風にしてもよいし、リアルなドラマ映画小説風、びっくりするような奇想天外なSF設定だろうと、あなたの想像力次第。
(さいしょは、お話のつじつまがあわなくても、でたらめでも、好きなように完成させてみましょう)
・スクリプトに書いてあるコメントも自由に書き換えてください
・変数名は説明のために長くなっていますが、自分で短い変数名に変更しても大丈夫です。ただし、変更する場合は全スクリプト中の変数名をおなじように変更してください。うっかりミスをするとバグのもとになるので要注意!
ラベル名も自由に変更してください。
・goto と gosub は 似ているけれど、ちがう命令です。落ち着いてうごきのちがいを理解しましょう。