HSP3掲示板
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿時間:12/01/04(水) 13:21
投稿者名:坂上田村麻呂
Eメール:
URL :
HOST:s97.ghyogofl2.vectant.ne.jp
タイトル:Re^11: マップチップの作り方が分かりません!!

ここまでいったのですが、ブロックとブロックの間を通る方法を教えてくださいm(_ _)m
また、↓を押しているときにブロックに当たると●が揺れて、画面の端に行くとエラーが出てしまうのですが、それはなぜですか?教えてくださいm(_ _)m
*ブロックはチップナンバー1のことです

mapmax_x=10//マップデータ横の最大
mapmax_y=10//マップデータ縦の最大
dim map,mapmax_x,mapmax_y//マップデータ用配列確保

map(0, 0)=0,0,0,0,0,0,0,0,0,0
map(0, 1)=0,0,0,0,0,0,0,0,0,0
map(0, 2)=0,0,0,0,0,0,0,0,0,0
map(0, 3)=0,0,0,0,0,0,0,0,0,0
map(0, 4)=0,0,0,0,0,0,0,0,0,0
map(0, 5)=0,0,0,0,0,0,0,0,0,0
map(0, 6)=0,0,0,0,0,0,0,0,0,2
map(0, 7)=0,0,0,0,1,1,0,0,0,1
map(0, 8)=0,0,0,0,0,0,0,0,1,1
map(0, 9)=0,0,1,1,1,0,0,1,1,1


mchip_size=32
map_id=1//マップチップ用のウィンドウID
screen map_id,128,128,0,50,50//マップチップ用のウィンドウ確保
celdiv map_id,mchip_size,mchip_size//マップチップ用のウィンドウに1チップのサイズを設定

//マップチップ画像をマップチップ用のウィンドウに描画
gsel map_id//マップチップ用を選択
color 102,51,0
boxf 32,0,63,31//チップナンバー1
color
circle 64,0,96,64//チップナンバー2

mchip_name="無","ブロック","扉"

gsel 0,1
x=100
y=100
;繰り返し repeat〜loop
repeat
wait 1
stick key,31
;右矢印
if key&4:x+2
;左矢印
if key&1:x-2
;上矢印
if key&2:y-2
;下矢印
if key&8:y+2

;画面外防止
x=limit(x,0,288)
y=limit(y,0,288)

//当たり判定準備
map_x = x / mchip_size //マップデータ上の自分の位置
map_y = y / mchip_size //
mchip_LUp = map( map_x , map_y ) //自分の位置にあるチップナンバー収得
mchip_LUn = map( map_x , map_y+1 )
mchip_RUp = map( map_x+1 , map_y )
mchip_RUn = map( map_x+1 , map_y+1 )

if mchip_LUp > 0 {
 if mchip_LUp = 1 {
	 if key&4:x-2
	 if key&1:x+2
	 if key&2:y+2
	 if key&8:y-2
	 }
}

if mchip_LUn > 0 {
 if mchip_LUn = 1 {
	 if key&4:x-2
	 if key&1:x+2
	 if key&2:y+2
	 if key&8:y-2
	 }
}

if mchip_RUp > 0 {
 if mchip_RUp = 1 {
	 if key&4:x-2
	 if key&1:x+2
	 if key&2:y+2
	 if key&8:y-2
	 }
}

if mchip_RUn > 0 {
 if mchip_RUn = 1 {
	 if key&4:x-2
	 if key&1:x+2
	 if key&2:y+2
	 if key&8:y-2
	 }
}

redraw 0
color 255,255,255:boxf


;ステージ
repeat mapmax_y//マップチップを縦に並べる数
 pos 0,cnt*mchip_size//二回目以降mchip_sizeずつ下に移動
 map_cnty=cnt//マップデータ縦の読み込み位置を代入
 repeat mapmax_x//マップチップを横に並べる数
  celput map_id,map(cnt,map_cnty)//チップ描画後次の描画位置を右にチップサイズ分移動
 loop
loop

title "チップネーム="+mchip_name(mchip_LUp)+"       データ位置 x="+map_x+" y="+map_y

color 0,66,0
circle x,y,mchip_size+x,mchip_size+y
redraw 1

loop


- 以下は関連一覧ツリーです -
- マップチップの作り方が分かりま... - 坂上田村麻呂 11/12/20(火) 19:18 No.8837

このメッセージに返信する場合は下記フォームから投稿して下さい

おなまえ
Eメール (現在この項目の入力は無効です)
題   名
メッセージ    手動改行 強制改行
URL
削除キー (記事削除時に使用。英数字で8文字以内)
プレビュー

以下のフォームから自分の投稿した記事を削除できます
■記事No ■削除キー



- Web Forum -