エラーが発生しています。

マウス移動、方向キー移動

by ふんすけ@来年から頑張る, at 2019年11月19日 17:11:19

powered by hsp3dish.js / OpenHSP

コメント
説明

検証用

ランタイムバージョンの違いによる動作
>デフォルト
  color 255,255,255 以外の mes が動作しない
  入力系( getkey, stick )を受けつけない<-嘘、stickは受けつける
>3.5b1
  getkeyを受けつけない
>3.5b5
  getkeyを受けつける

設定
ステップ数の上限:5000
実行解像度:640x480
ランタイムバージョン:3.5b1

#include "hsp3dish.as"

//******************************
//******************************
#module
	//==============================
	// (カーソル)四角を描画
	//==============================
	#deffunc drawBox int _px, int _py
		if _px >= 0 and _px < 14 and _py >= 0 and _py < 10 {
			color ,192,192
			x1 = 40*_px+40
			y1 = 40*_py+40
			x2 = x1+2
			y2 = y1+39
			boxf x1,y1,x2,y2
			x2 = x1+39
			y2 = y1+2
			boxf x1,y1,x2,y2
			x1 = x1+38
			x2 = x1+2
			y2 = y1+40
			boxf x1,y1,x2,y2
			x1 = 40*_px+40
			y1 = 40*_py+78
			boxf x1,y1,x2,y2
		}
	return
	//==============================
	// (マップセル)円を描画
	//==============================
	#deffunc drawCircles
		for y,0,10
			for x,0,14
				x1 = 40*x+40
				y1 = 40*y+40
				x2 = x1+40
				y2 = y1+40
				circle x1,y1,x2,y2
			next
		next
	return
#global

//==============================
// 初期処理
//==============================
	// 初期化
	screen 0, 640, 480

	; 
	px = 0 : py = 0
	// 前のマウスカーソル位置
	pmx = mousex : pmy = mousey
	
//==============================
// メインループ
//==============================
*main

	//------------------------------
	// 入力
	//------------------------------
	stick key, 15
	if key {
		// カーソルキー左
		if key & 1 {
			px = (px+13) \ 14
			py = (py+10) \ 10
		}
		// カーソルキー上
		if key & 2 {
			px = (px+14) \ 14
			py = (py+9) \ 10
		}
		// カーソルキー右
		if key & 4 {
			px = (px+15) \ 14
			py = (py+10) \ 10
		}
		// カーソルキー下
		if key & 8 {
			px = (px+14) \ 14
			py = (py+11) \ 10
		}
	} else : if mousex != pmx or mousey != pmy {
		if mousex < 40 {
			px = -1
		} else {
			px = (mousex-40)/40
		}
		if mousey < 40 {
			py = -1
		} else {
			py = (mousey-40)/40
		}
		pmx = mousex
		pmy = mousey
	}
	getkey key2, 1	; 左クリック 3.5b5だと大丈夫

	//------------------------------
	// 描画
	//------------------------------
	// ランタイムバージョンで動作が違う?
	// デフォルトだと白文字しか表示できない
	// 画面の書き換えを止める
	redraw 0

	// 黒クリア
	color : boxf

	// 円表示
	color 64,64,64
	drawCircles
	
	// キー表示
	color 255,128,128
	pos 30, 30
	mes "key:"+key
	mes "key2:"+key2
	
	// カーソルの位置
;	mes strf("mx:%3d,  my:%3d",mousex,mousey)	; 後半ちぎれる
	color 192,192
	mes "mx:"+mousex+", my:"+mousey
	
	// 四角表示
	color ,192
	mes "px:"+px+", py:"+py
	drawBox px, py
	
	// 画面の書き換えを反映
	redraw 1
	
	// 33ミリ秒待つ
	await 33

	// *mainまで戻る
	goto *main

作成者
icon

ふんすけ@来年から頑張る

ここはユーザの紹介文

詳しく...


関連プログラム