HSP3Dish サンプル②

更新:2022年5月16日   HSPトップへもどる

『 魔王 0 』  ◆ブラウザ上で動作するページ

★このスクリプトは WebDish素材のみ使用し、独自画像を使用していませんので、WebDishサービスにそのまま登録できます

魔王 0
#include "hsp3dish.as"

title "魔王 0.1"	//画面サイズは 480 * 800

	//《変数》
	
	px = 0	//主人公表示座標移動用

	//《画像読み込み》
	//いろいろ画像(マップチップ、村人女の子、魔王)
	buffer 1,512,512
	celload "hsptv_img.png",1,0		// picload と celload 異なるの注意
	celdiv	1,64,64,0,0

	//主人公キャラクター
	buffer 2,128,128
	celload "king_knight.png",2,0
	celdiv	2,64,128,0,0
	
	gsel 0
//==========================================
//メインループ
repeat
	stick key,15
	if key&128 : end

	redraw 0
	gmode 2					//透明色あり
	color 0,0,128 : boxf	//ぬりつぶし(なしでもよいか?)

	//背景マップ描画
	gosub *map_put

	//移動ボタン描画
	gosub *movebutton_put

	//主人公キャラ描画
	gosub *player_put


	//マウス座標表示
	pos 0,20 : mes "("+mousex+","+mousey+")"

	//メッセージウインドウ表示
	gosub *meswindow_put
	//------------------------------------------------
	//タッチ入力検出
	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
loop
stop
//================================================================
//主人公をうごかすアニメテスト(※まずは自動で移動するだけ)
*player_put

	//主人公キャラ
	pos 0+(px/2),300 : celput 2,1,1.0,1.0,0.0
	px++
	if px > 480*2 : px=0

return
stop
//================================================================
//マップを描く
*map_put
	
	x = 0	//マップ表示の一時的な座標
	y = 0
	h = 64	//マップチップの高さ
	
	gmode 0
	repeat 8	//たて
		pos x,y
		repeat 8	//よこ
			celput 1,16
		loop
		y += h
	loop
	gmode 2
	//城チップ
	pos 416,0 : celput 1,20,1.0,1.0,0.0
	//魔王
	pos 386,30 : celput 1,37,1.0,1.0,0.0

	//村チップ(女の子の村)
	pos 416,280 : celput 1,18,1.0,1.0,0.0
	//村人女の子
	pos 390, 310 : celput 1,24,1.0,1.0,0.0

	//村チップ(主人公の村)
	pos 0,280 : celput 1,18,1.0,1.0,0.0
	
return
stop
//================================================================
//セリフウインドウ表示 (あとで引数方式にする)
*meswindow_put

	color 1,1,1
	boxf 0,450,480,600			//黒下地

	color 255,255,255
	gmode 0
	font "",120,16,0
	pos 180,400 
	mes "▲"					//吹き出しとがり部分
	font "",24,16,1

	boxf 8,458,472,592			//白部分
	color 1,1,1
	pos 16,476 : mes "主人公\n魔王をたおすには まだ力がたりない!" 

return
stop
//================================================================
//移動ボタン表示
*movebutton_put

	font "",120,16,1 : color 128,128,128
	pos 180,600 : mes "◆"
	font "",100,16,1 : color 200,200,200
	pos 190,610 : mes "◆"
	font "",24,16,1

return
stop
//================================================================

開発初心者へのヒント:
なるべく単純な機能をすこしづつ作って、うまく実行できているかためして、一歩づつレベルをあげていくのが良いと思います。

まず一番さいしょ
・いちばん簡単なプログラムを作ってうごかしてみる
 (例・画面に一行だけ文字がでるプログラム)

・単純な画像がひとつだけ表示される

・背景と、キャラクターが表示される。透明色が使える

・背景チップを繰り返し命令をつかって画面いっぱいに敷き詰めて表示する

・ゲームのフィールド画面っぽいものができる

・キャラクターの表示位置が変わっていく(画像1種類アニメなし)

・タッチ入力検知を理解する

・タッチ入力によってキャラクターが左右にうごく。次は4方向。

・キャラクターがアニメ表示される(画像複数種類・アニメパターン)

・マップがスクロール表示できるようにする

・マップに当たり判定をつける

・メッセージ表示ウインドウをつくる
・マップにイベント処理をつける
・開始部分と、エンディング部分をつくる

自作ゲーム作りはあなたが 神様、王様です
つくっている最中に、どうしても作るのがむずかしかったり、めんどうな部分は「なし」にしてけずってしまってもOKです。
ゲームづくりにルールはありません。あなたが監督です。
自分がいちばん作りたい、おもしろい、「核(中心)」のところが作れていれば、それ以外のこまかい部分や演出は、どんどんカットしていきましょう。そのほうが遊ぶ人(ユーザー)にも良さが伝わりやすくなります。過去の商業ゲームの定番スタイルや流行のかたちにこだわる必要はありません。逆にそれが「かたやぶり」なモノが生まれる自作ゲーム開発の長所でもあります。
たとえば、「すべての内容が一画面内で完結するゲーム」とか。
(SPA(シングルページアプリケーション)と呼んだりします)


   HSPトップへもどる