HSP3掲示板

  • ここは、Hot Soup Processorについての話題を扱うボードです。
  • HSP3.x、HSP2.xについての情報、質問、ご意見などをお書きください。
  • 新しくオフィシャルサイトにHSP3掲示板が作成されていますので、通常はそちらをご利用ください。
  • 初めて書き込みされる方は、まず使い方をお読みください。
  • 掲示板オフラインリーダーmamimiについての情報は、こちらをどうぞ。
  • ふさわしくない話題や書き間違いは、管理人(おにたま)の判断で削除することがあります。

    [ツリー表示] [新着記事]
    一 括 講 読

    マップチップの作り方が分かりません!!  投稿者:坂上田村麻呂  (11/12/20(火) 19:18) s97.ghyogofl2.vectant.ne.jp
    color 102,51,0
    boxf 120,450,220,480
    boxf 350,450,390,480
    boxf 390,430,480,480
    boxf 510,430,580,480
    boxf 520,430,640,480
    boxf 550,400,640,430
    boxf 600,370,640,400
    boxf 400,300,610,310
    boxf 80,260,310,310
    boxf 80,130,120,200
    boxf 150,90,200,100
    boxf 250,100,360,80
    boxf 420,80,500,100
    boxf 560,90,640,100
    
    color 0,0,0
    circle 600,50,640,90
    boxf 600,70,640,90
    
    初心者なので、出来れば分かりやすく orz
    よろしくお願いしますm(_ _)m
    Re: マップチップの作り方が分かりません!!  投稿者:締め出された人  (11/12/21(水) 22:31) d74.gchibafl11.vectant.ne.jp
    マップチップを使ったマップの作り方?
    
    まず配列を覚える
    マップの場合縦横があるから2次元配列を理解する
    配列を効率的に利用するためにrepeat、loop、cntを理解する
    マップチップを扱うのに便利な命令がHSP3.3(?)からあるのでそれを使う
    (celdiv、celputなど)
    
    mapmax_x=10//マップデータ横の最大
    mapmax_y=8//マップデータ縦の最大
    dim map,mapmax_x,mapmax_y//マップデータ用配列確保
    
    map(0,0)=0,0,0,0,0,0,0,0,0,2//横一列分代入(使用チップナンバー0〜2)map(0,0)が左上
    map(0,1)=0,0,0,1,1,0,1,0,1,1
    map(0,2)=0,1,0,0,0,0,0,0,0,0
    map(0,3)=0,0,0,0,0,0,1,1,1,0
    map(0,4)=0,1,1,1,1,0,0,0,0,0
    map(0,5)=0,0,0,0,0,0,0,0,0,1
    map(0,6)=0,0,0,0,0,0,0,0,1,1
    map(0,7)=0,0,1,1,0,1,0,1,1,1
    
    screen 0,320,256,0,200,200//メインウィンドウを初期化
    
    map_id=1//マップチップ用のウィンドウID
    screen map_id,128,128,0,50,50//マップチップ用のウィンドウ確保(普通はbufferやcelloadで仮想画面を使うが今回は分かりやすいように)
    celdiv map_id,32,32//マップチップ用のウィンドウに1チップのサイズを設定
    
    //マップチップ画像をマップチップ用のウィンドウに描画
    gsel map_id//マップチップ用を選択(上で確保した時に選ばれてるが)
    color 102,51,0
    boxf 32,0,63,31//チップナンバー1
    color
    circle 64,0,96,64//チップナンバー2
    
    gsel 0,1//メインウィンドウを選択
    
    //マップデータからチップナンバーを読み出してマップチップを描画
    repeat mapmax_y//マップチップを縦に並べる数
    pos 0,cnt*32//二回目以降32ずつ下に移動
    map_cnty=cnt//マップデータ縦の読み込み位置を代入
    repeat mapmax_x//マップチップを横に並べる数
    celput map_id,map(cnt,map_cnty)//チップ描画後次の描画位置を右にチップサイズ分移動
    loop
    loop
    Re^2: マップチップの作り方が分かりません!!  投稿者:坂上田村麻呂  (11/12/22(木) 22:59) s97.ghyogofl2.vectant.ne.jp
    自分なりに『締め出された人』さんの例を元に作ってみたんですけど、マップに筋が入ったり、ドアの色が黒になったりしません(><)
    どこが間違っているのですか?
    教えてください orz
    
    //================//
    //     マップ     //
    //================//
    
    mapmax_x=640//マップデータ横の最大
    mapmax_y=480//マップデータ縦の最大
    dim map,mapmax_x,mapmax_y//マップデータ用配列確保
    
    map(0,0)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,2)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,0,0
    map(0,3)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,0
    map(0,4)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,5)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,6)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,7)= 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,8)= 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,9)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,10)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,11)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,12)=1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,13)=1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,14)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,15)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,16)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,17)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,18)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,19)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,20)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,21)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,22)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,23)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,24)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,25)=1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,26)=1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,27)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,28)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,29)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,30)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,31)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,32)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,33)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,34)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,35)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,36)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0
    map(0,37)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0
    map(0,38)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,39)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,40)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,41)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,42)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,43)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,44)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1
    map(0,45)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1
    map(0,46)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1
    map(0,47)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1
    map(0,48)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1
    map(0,49)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1
    map(0,50)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1
    map(0,51)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,52)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,53)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,54)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,55)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,56)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,57)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,58)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,59)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    
    screen 0,480,360,0,200,100//メインウィンドウを初期化
    
    map_id=1//マップチップ用のウィンドウID
    screen map_id,150,150,0,50,50//マップチップ用のウィンドウ確保
    celdiv map_id,6,6//マップチップ用のウィンドウに1チップのサイズを設定
    
    //マップチップ画像をマップチップ用のウィンドウに描画
    gsel map_id//マップチップ用を選択
    color 102,51,0
    boxf 10,0,15,6//チップナンバー1
    color 
    boxf 20,0,25,6//チップナンバー2
    
    gsel 0,1//メインウィンドウを選択
    
    //マップデータからチップナンバーを読み出してマップチップを描画
    repeat mapmax_y//マップチップを縦に並べる数
    pos 0,cnt*6//二回目以降6ずつ下に移動
    map_cnty=cnt//マップデータ縦の読み込み位置を代入
    repeat mapmax_x//マップチップを横に並べる数
    celput map_id,map(cnt,map_cnty)//チップ描画後次の描画位置を右にチップサイズ分移動
    loop
    loop
    Re^3: マップチップの作り方が分かりません!!  投稿者:締め出された人  (11/12/23(金) 00:58) d74.gchibafl11.vectant.ne.jp
    チップサイズが6×6でウィンドウサイズが480×360だと
    
    > mapmax_x=640//マップデータ横の最大
    > mapmax_y=480//マップデータ縦の最大
    > dim map,mapmax_x,mapmax_y//マップデータ用配列確保
    
    ここで確保してる配列はウィンドウ64個分・・・
    このウィンドウ一画面分なら横80、縦60で埋められる
    
    
    
    > マップに筋が入ったり、ドアの色が黒になったりしません(><)
    > どこが間違っているのですか?
    
    これはマップチップを作ってる
    
    > color 102,51,0
    > boxf 10,0,15,6//チップナンバー1
    > color 
    > boxf 20,0,25,6//チップナンバー2
    
    の所が違ってるんだけど
    > celdiv map_id,6,6//マップチップ用のウィンドウに1チップのサイズを設定
    ここで縦横6に設定してるからチップナンバー1は横7ドット目からになる
    boxf 10,0,15,6//チップナンバー1
    ↓
    boxf 6,0,11,5//チップナンバー1(0が1ドット目になるからこれで縦横6ドット)
    チップナンバー2は更に横に6ドットずらしてboxf描画
    
    
    で、自分がサンプル出したのはマップチップを使ったマップの作り方なんだけど
    マップチップの作り方が聞きたかった?
    それならペイントとか絵を描いて保存できるソフト使って
    保存したファイル読み込んでマップチップにするのが普通だよ
    Re^4: マップチップの作り方が分かりません!!  投稿者:坂上田村麻呂  (11/12/23(金) 23:25) s97.ghyogofl2.vectant.ne.jp
    いえ、本命は当たり判定です。
    教えていただけれるなら幸いです。
    
    ↓マップチップ作る前のHSPです↓
    x=0
    y=0
    ;繰り返し repeat〜loop
    repeat
    wait 1
    stick key,31
    
    ;右矢印
    if key&4:x=x+2
    
    ;左矢印
    if key&1:x=x-2
    
    ;上矢印
    if key&16{
    if jump=0:jump=1
    }
    if jump{
    jump++
    if jump>=60:jump=0:else:y-=cos(6.28/122*jump)*6
    }
    
    ;画面外防止
    if key&1:x=x-1:if 0+x<0:x=0
    if key&4:x=x+1:if 18+x>480:x=462
    
    redraw 0
    color 255,255,255:boxf
    color 0,66,0
    circle 0+x,342+y,18+x,360+y
    
    ;ステージ
    color 102,51,0
    boxf 96,330,192,360
    boxf 252,330,330,360
    boxf 300,306,330,360
    boxf 366,330,480,360
    boxf 408,306,480,330
    boxf 432,288,480,306
    boxf 456,264,480,288
    boxf 282,222,432,234
    boxf 66,186,228,234
    boxf 0,106,48,118
    boxf 0,190,48,202
    boxf 72,48,192,60
    boxf 222,78,330,90
    boxf 378,66,480,78
    
    color 0,0,0
    circle 438,18,480,54
    boxf 438,30,480,66
    redraw 1
    
    loop
    Re^5: マップチップの作り方が分かりません!!  投稿者:締め出された人  (11/12/24(土) 23:25) d74.gchibafl11.vectant.ne.jp
    > いえ、本命は当たり判定です。
    じゃぁ、ジャンプアクションだと判定だけの説明じゃ済まないから
    ドラクエみたいな見下ろし2Dマップの説明で
    
    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//マップチップ用のウィンドウ確保(普通はbufferやcelloadで仮想画面を使うが今回は分かりやすいように)
    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_no = map( map_x ,map_y ) //自分の位置にあるチップナンバー収得
    //これだけだと自分の左上角一点しか判定できないから
    //チップサイズ-1を足して最低でも四つ角全部見れる様にする
    
    if mchip_no > 0 {
     if mchip_no = 1 {
     //左移動でここに来たら当たったブロックの右側面につく座標に移動(map_x * mchip_size でウィンドウのx座標になる)
     //みたいな感じで判定後の処理を作る
    
     }
    }
    
    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_no)+"       データ位置 x="+map_x+" y="+map_y
    
    color 0,66,0
    circle x,y,mchip_size+x,mchip_size+y
    redraw 1
    
    loop
    
    これをブロックにめり込んだり
    擦りながら移動しても引っからないように出来たら
    ジャンプアクションにも簡単に応用が出来る
    Re^6: マップチップの作り方が分かりません!!  投稿者:坂上田村麻呂  (11/12/31(土) 20:35) s97.ghyogofl2.vectant.ne.jp
    > //当たり判定準備
    > map_x = x / mchip_size //マップデータ上の自分の位置
    > map_y = y / mchip_size //
    > mchip_no = map( map_x ,map_y ) //自分の位置にあるチップナンバー収得
    > //これだけだと自分の左上角一点しか判定できないから
    > //チップサイズ-1を足して最低でも四つ角全部見れる様にする
    > 
    > if mchip_no > 0 {
    >  if mchip_no = 1 {
    >  //左移動でここに来たら当たったブロックの右側面につく座標に移動(map_x * mchip_size でウィンドウのx座標になる)
    >  //みたいな感じで判定後の処理を作る
    > 
    >  }
    > }
    > 
    
    上の記述が特によく分からなかったため、当たり判定が全然出来ませんでした。
    
    出来れば、どこか一か所だけでも当たり判定をしてもらえたら、それを元に他の当たり判定をしたいと思いますm(_ _)m
    
    お願いします orz
    Re^7: マップチップの作り方が分かりません!!  投稿者:締め出された人  (12/01/01(日) 12:19) 36-2-114-131.chiba.ap.gmo-isp.jp
    座標と配列の関係は分かってる?
    下のが理解できないと次に進めない
    
    mapmax_x=5//マップデータ横の最大
    mapmax_y=5//マップデータ縦の最大
    dim map,mapmax_x,mapmax_y//マップデータ用配列確保
    
    map(0, 0)= 0, 1, 2, 3, 4
    map(0, 1)= 5, 6, 7, 8, 9
    map(0, 2)=10,11,12,13,14
    map(0, 3)=15,16,17,18,19
    map(0, 4)=20,21,22,23,24
    
    mchip_size=64
    screen 0,mchip_size*mapmax_x,mchip_size*mapmax_y
    font msgothic, 24,1
    repeat
    redraw 0
    color 255,255,255:boxf
    color
    repeat mapmax_x
    line 0,cnt*mchip_size,mapmax_x*mchip_size,cnt*mchip_size
    line cnt*mchip_size,0,cnt*mchip_size,mapmax_x*mchip_size
    loop
     
    x = limit(mousex,0,mapmax_x*mchip_size) //マウス座標をウィンドウ内に収める(そのまま使うと配列要素数を超えるから)
     y = limit(mousey,0,mapmax_y*mchip_size)
     map_x = x / mchip_size //マップデータ上の自分の位置(座標をチップサイズで割ると配列上の位置が出る)
     map_y = y / mchip_size 
     mchip_no = map( map_x ,map_y ) //自分の位置にあるチップナンバー収得
    
    color 200
    pos 0,0
    mes "座標x="+x+" 配列横="+map_x
    mes "座標y="+y+" 配列縦="+map_y
    mes "チップナンバー="+mchip_no+"\n"
    mes "チップ配置座標x="+map_x*mchip_size //配列上の位置にチップサイズを掛けるとチップ配置座標になる
    mes "チップ配置座標y="+map_y*mchip_size
    
    redraw 1
    await 16
    loop
    Re^8: マップチップの作り方が分かりません!!  投稿者:締め出された人  (12/01/01(日) 19:49) 36-2-114-131.chiba.ap.gmo-isp.jp
    あ、分かるとは思うけど
    ウィンドウ内にマウスカーソルを
    もっていって座標と配列の関係を見て
    Re^9: マップチップの作り方が分かりません!!  投稿者:坂上田村麻呂  (12/01/03(火) 23:48) s97.ghyogofl2.vectant.ne.jp
    理解はなんとなく出来たのですが、それをどうやってHSPで表したら当たり判定が出来るのですか?
    
    ちなみに、『if key&1:x=x-1:if x<0:x=0』みたいなものは分かります。
    Re^10: マップチップの作り方が分かりません!!  投稿者:締め出された人  (12/01/04(水) 00:38) 36-2-114-131.chiba.ap.gmo-isp.jp
    じゃぁ、自分と同じ座標に何番のマップチップがあるかを見る事が出来るんだから
    チップナンバー1を障害物として判定するとして
    
    http://www.onionsoft.net/hsp/beta/betabbs.cgi?no=8845&reno=8843&oya=8837&mode=msgview&list=
    ↑で書いたスクリプトの↓の部分で
    
    if mchip_no > 0 {
     if mchip_no = 1 {
    //ここに来たらチップナンバー1と重なってるって事(ここで最小限の当たり判定は終えてる)
    //↓当たり判定後の制御
    if key&4:x-2 //入力キーと逆方向に移動
    if key&1:x+2
    if key&2:y+2
    if key&8:y-2
    
     }
    }
    
    凄く手抜き
    自分の左上一点しか判定してない
    だから左からチップナンバー1と当たると殆ど重なるまで止まらない
    これを防ぐには最低自分の4角判定する必要がある
    
    この判定後の制御ではゲームとしては使い物にならない
    まず判定と判定後の制御は別物って事を分かってくれ
    Re^11: マップチップの作り方が分かりません!!  投稿者:坂上田村麻呂  (12/01/04(水) 13:21) s97.ghyogofl2.vectant.ne.jp
    ここまでいったのですが、ブロックとブロックの間を通る方法を教えてください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
    Re^12: マップチップの作り方が分かりません!!  投稿者:坂上田村麻呂  (12/01/04(水) 13:26) s97.ghyogofl2.vectant.ne.jp
    > 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 )
    
    書き忘れていました orz
    LUp = 左上
    LUn = 左下
    RUp = 右上
    RUn = 右下 を意味します。
    Re^13: マップチップの作り方が分かりません!!  投稿者:締め出された人  (12/01/06(金) 03:02) 36-2-114-131.chiba.ap.gmo-isp.jp
    ちょっと判定が不十分でしたので修正しました(これで完璧かは怪しい・・・)
    
    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,1,1,0,0,0
    map(0, 4)=0,0,0,0,0,1,0,0,0,1
    map(0, 5)=0,0,0,0,0,1,0,0,0,0
    map(0, 6)=0,0,0,1,0,1,0,0,0,2
    map(0, 7)=0,0,0,1,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 //チップサイズ
    
    mysize_x=32 //自分のxサイズ(チップサイズより大きくは出来ない判定の修正が必要)
    mysize_y=32 //自分のyサイズ
    
    
    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
    await 16
    redraw 0
    
    ;ステージ
    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
    
    stick key,31
    
    bak_x=x //移動前の座標を保存
    bak_y=y
    
    my_Speed=2
    ;右矢印
    if key&4:x+my_Speed
    ;左矢印
    if key&1:x-my_Speed
    ;上矢印
    if key&2:y-my_Speed
    ;下矢印
    if key&8:y+my_Speed
    
    ;画面外防止
    x=limit(x,0,320-mysize_x)
    y=limit(y,0,320-mysize_y)
    
    //当たり判定準備
    bak_Uy = bak_y/mchip_size //移動前の座標のマップデータ上の位置(上側y位置)
    bak_Dy = (bak_y+mysize_y-1)/mchip_size //(下側y位置)
    
    map_Lx = x / mchip_size //自分の左側マップデータ上のx位置
    map_Uy = y / mchip_size //上側y位置
    map_Rx = (x+mysize_x-1) / mchip_size //右側x位置
    map_Dy = (y+mysize_y-1) / mchip_size //下側y位置
    
    mchip_LUp = map( map_Lx , map_Uy ) //自分の左上位置にあるチップナンバー収得
    mchip_LUn = map( map_Lx , map_Dy ) //左下
    mchip_RUp = map( map_Rx , map_Uy ) //右上
    mchip_RUn = map( map_Rx , map_Dy ) //右下
    color
    pos 0,0
    
    mes ""+mchip_name(mchip_LUp)+" "+mchip_name(mchip_RUp)
    mes ""+mchip_name(mchip_LUn)+" "+mchip_name(mchip_RUn)
    
    if mchip_LUp > 0 {
     if mchip_LUp = 1 {
     
    // 移動前マップy位置が移動後のマップy位置と同じならブロックの横面に接触として処理(移動前と移動後で同じブロックの高さなら縦面には当たらない)
    // or
    // 移動後のx座標と移動前の下側y座標の位置にブロックがあったら横面に接触として処理(縦にブロックが繋がってるから横にはいけない)
    // or
    // 移動後のx座標と移動前の上側y座標の位置にブロックがあったら横面に接触として処理(縦にブロックが繋がってるから横にはいけない)
      if (bak_Uy=map_Uy) or (map( map_Lx , bak_Dy )=1) or (map( map_Lx , bak_Uy )=1) { //左上がブロック横面に接触
     
       if bak_x>x { x = map_Lx*mchip_size+mchip_size} //左に移動中に接触してるからブロックの右側に自分を移動
      }else{ //左上がブロック縦面に接触
       if bak_y>y { y = map_Uy*mchip_size+mchip_size} //上に移動中に接触してるからブロックの下側に自分を移動
      }
     }
    }
    
    if mchip_LUn > 0 {
     if mchip_LUn = 1 {
      if (bak_Dy=map_Dy) or (map( map_Lx , bak_Dy )=1) or (map( map_Lx , bak_Uy )=1) {
       if bak_x>x { x = map_Lx*mchip_size+mchip_size}
      }else{
       if bak_y<y { y = map_Dy*mchip_size-mysize_y}
      }
     }
    }
    
    if mchip_RUp > 0 {
     if mchip_RUp = 1 {
      if  (bak_Uy=map_Uy) or (map( map_Rx , bak_Uy )=1) or (map( map_Rx , bak_Dy )=1) {
       if bak_x<x { x = map_Rx*mchip_size-mysize_x}
      }else{
       if bak_y>y { y = map_Uy*mchip_size+mchip_size}
      }
     }
    }
    
    if mchip_RUn > 0 {
     if mchip_RUn = 1 {
      if (bak_Dy=map_Dy) or (map( map_Rx , bak_Dy )=1) or (map( map_Rx , bak_Uy )=1) {
       if bak_x<x { x = map_Rx*mchip_size-mysize_x}
      }else{
       if bak_y<y { y = map_Dy*mchip_size-mysize_y}
      }
     }
    }
    
    color 0,66,0
    boxf x,y,mysize_x+x-1,mysize_y+y-1
    redraw 1
    
    loop
    
    
    ジャンプアクションだとブロックの角に当たった時に落ちるより乗れた方が
    良いと思うので横面より縦面を優先させてます
    Re^14: マップチップの作り方が分かりません!!  投稿者:坂上田村麻呂  (12/01/11(水) 00:17) s97.ghyogofl2.vectant.ne.jp
    一応作ってみたのですが(ほとんど模写みたいなものだけど)…
    ・緑の■の動きがぎこちない
    ・横移動のときはブロック(茶色の■)をすり抜けてしまう
    ・重力がない
    
    これら3つはどうすればいいのですか?
    
    //================//
    // マップチップ //
    //================//
    
    mapmax_x=480 //マップデータ横の最大
    mapmax_y=360 //マップデータ縦の最大
    dim map,mapmax_x,mapmax_y //マップデータ用配列確保
    
    map(0,0)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,2)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,0,0
    map(0,3)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,0
    map(0,4)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,5)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,6)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,7)= 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,8)= 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,9)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,10)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,11)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,12)=1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,13)=1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,14)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,15)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,16)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,17)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,18)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,19)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,20)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,21)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,22)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,23)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,24)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,25)=1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,26)=1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,27)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,28)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,29)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,30)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,31)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,32)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,33)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,34)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,35)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,36)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0
    map(0,37)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0
    map(0,38)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,39)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,40)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,41)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,42)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,43)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,44)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1
    map(0,45)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1
    map(0,46)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1
    map(0,47)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1
    map(0,48)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1
    map(0,49)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1
    map(0,50)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1
    map(0,51)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,52)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,53)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,54)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,55)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,56)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,57)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,58)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,59)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    
    screen 0,480,360,0,200,100 //メインウィンドウを初期化
    
    mchip_size=6 //チップサイズ
    
    mysize_x=20 //自分のxサイズ(チップサイズより大きくは出来ない判定の修正が必要)
    mysize_y=20 //自分のyサイズ
    
    
    map_id=1 //マップチップ用のウィンドウID
    screen map_id,120,120,0,50,50 //マップチップ用のウィンドウ確保
    celdiv map_id,mchip_size,mchip_size //マップチップ用のウィンドウに1チップのサイズを設定
    
    //マップチップ画像をマップチップ用のウィンドウに描画
    gsel map_id //マップチップ用を選択
    color 102,51,0
    boxf 6,0,11,5 //チップナンバー1
    color 
    boxf 12,0,17,5 //チップナンバー2
    
    gsel 0,1 //メインウィンドウを選択
    
    mchip_name="無","ブ","扉"
    
    gsel 0,1
    x=0
    y=360
    //繰り返し
    repeat
    await 16
    redraw 0
    
    //================//
    //  ステージ  //
    //================//
    
    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
    
    stick key,31
    
    bak_x=x //移動前の座標を保存
    bak_y=y
    
    my_Speed=10
    //右矢印
    if key&4:x+my_Speed
    //左矢印
    if key&1:x-my_Speed
    //上矢印
    if key&16{
    	if jump=0:jump=1
    }
    if jump{
    	jump++
    	if jump>=60:jump=0:else:y-=cos(6.28/122*jump)*6
    }
    //下矢印
    if key&8:y+my_Speed
    
    //画面外防止
    x=limit(x,0,480-mysize_x)
    y=limit(y,0,360-mysize_y)
    
    //================//
    //  当たり判定  //
    //================//
    
    bak_Uy = bak_y/mchip_size //移動前の座標のマップデータ上の位置(上側y位置)
    bak_Dy = (bak_y+mysize_y-1)/mchip_size //(下側y位置)
    
    map_Lx = x / mchip_size //自分の左側マップデータ上のx位置
    map_Uy = y / mchip_size //上側y位置
    map_Rx = (x+mysize_x-1) / mchip_size //右側x位置
    map_Dy = (y+mysize_y-1) / mchip_size //下側y位置
    
    mchip_LUp = map( map_Lx , map_Uy ) //自分の左上位置にあるチップナンバー収得
    mchip_LUn = map( map_Lx , map_Dy ) //左下
    mchip_RUp = map( map_Rx , map_Uy ) //右上
    mchip_RUn = map( map_Rx , map_Dy ) //右下
    color
    pos 0,0
    
    mes ""+mchip_name(mchip_LUp)+" "+mchip_name(mchip_RUp)
    mes ""+mchip_name(mchip_LUn)+" "+mchip_name(mchip_RUn)
    
    if mchip_LUp > 0 {
     if mchip_LUp = 1 {
     
    // 移動前マップy位置が移動後のマップy位置と同じならブロックの横面に接触として処理(移動前と移動後で同じブロックの高さなら縦面には当たらない)
    // or
    // 移動後のx座標と移動前の下側y座標の位置にブロックがあったら横面に接触として処理(縦にブロックが繋がってるから横にはいけない)
    // or
    // 移動後のx座標と移動前の上側y座標の位置にブロックがあったら横面に接触として処理(縦にブロックが繋がってるから横にはいけない)
      if (bak_Uy=map_Uy) or (map( map_Lx , bak_Dy )=1) or (map( map_Lx , bak_Uy )=1) { //左上がブロック横面に接触
     
       if bak_x>x { x = map_Lx*mchip_size+mchip_size} //左に移動中に接触してるからブロックの右側に自分を移動
      }else{ //左上がブロック縦面に接触
       if bak_y>y { y = map_Uy*mchip_size+mchip_size} //上に移動中に接触してるからブロックの下側に自分を移動
      }
     }
    }
    
    if mchip_LUn > 0 {
     if mchip_LUn = 1 {
      if (bak_Dy=map_Dy) or (map( map_Lx , bak_Dy )=1) or (map( map_Lx , bak_Uy )=1) {
       if bak_x>x { x = map_Lx*mchip_size+mchip_size}
      }else{
       if bak_y<y { y = map_Dy*mchip_size-mysize_y}
      }
     }
    }
    
    if mchip_RUp > 0 {
     if mchip_RUp = 1 {
      if  (bak_Uy=map_Uy) or (map( map_Rx , bak_Uy )=1) or (map( map_Rx , bak_Dy )=1) {
       if bak_x<x { x = map_Rx*mchip_size-mysize_x}
      }else{
       if bak_y>y { y = map_Uy*mchip_size+mchip_size}
      }
     }
    }
    
    if mchip_RUn > 0 {
     if mchip_RUn = 1 {
      if (bak_Dy=map_Dy) or (map( map_Rx , bak_Dy )=1) or (map( map_Rx , bak_Uy )=1) {
       if bak_x<x { x = map_Rx*mchip_size-mysize_x}
      }else{
       if bak_y<y { y = map_Dy*mchip_size-mysize_y}
      }
     }
    }
    
    color 0,66,0
    boxf x,y,mysize_x+x-1,mysize_y+y-1
    redraw 1
    
    loop
    Re^15: マップチップの作り方が分かりません!!  投稿者:締め出された人  (12/01/11(水) 19:03) 36-2-114-131.chiba.ap.gmo-isp.jp
    > ・緑の■の動きがぎこちない
    PCの処理能力を超えてるからぎこちない動きになってる
    CPU使用率が50%や25%でもCPUコア一つを使い切ってたら処理落ちを起す
    
    重い原因はマップチップを並べる所で無駄にmapmax_x*mapmax_y回リピートしてる
    リピートは一画面分で良い
    
    まず↓ここで指摘した部分を直してない
    http://www.onionsoft.net/hsp/beta/betabbs.cgi?no=8841&reno=8840&oya=8837&mode=msgview&page=0
    
    > mapmax_x=480 //マップデータ横の最大
    > mapmax_y=360 //マップデータ縦の最大
    これは画面のサイズじゃ無くチップを並べるためのデータの数
    サンプルではマップデータ最大*チップサイズ=画面サイズだったから
    チップを並べる所でも同じ変数を利用してる
    
    > ・横移動のときはブロック(茶色の■)をすり抜けてしまう
    点で判定してるからチップサイズを超える速度は使えない(ブロックを飛び越すから)
    同じ理由でチップサイズを超える大きさを自分のサイズには使えない
    
    これを回避する方法はあるが、ゲームの方をこの制限以内に収まるように考えた方が良い
    それが出来た上でどうしても必要ならどうすれば良いか、まずは自分で考えてくれ
    
    > ・重力がない
    足場が無ければ落下処理をするようにすれば良い
    足場があるかどうかはサンプルの判定を応用すればできる
    Re^16: マップチップの作り方が分かりません!!  投稿者:坂上田村麻呂  (12/01/12(木) 00:34) s97.ghyogofl2.vectant.ne.jp
    > > ・重力がない
    > 足場が無ければ落下処理をするようにすれば良い
    > 足場があるかどうかはサンプルの判定を応用すればできる
    
    サンプルを探しているのですが、どれも#defineを使ったサンプルしかないため、理解が出来ず、応用することが出来ません(>_<)
    
    どうすればいいですか?m(_ _)m
    Re^17: マップチップの作り方が分かりません!!  投稿者:締め出された人  (12/01/12(木) 01:49) 36-2-114-131.chiba.ap.gmo-isp.jp
    > サンプルを探しているのですが、どれも#defineを使ったサンプルしかないため、理解が出来ず、応用することが出来ません(>_<)
    
    私が出した判定のサンプルの事
    自分の四隅の判定は出来てるんだから
    真下の判定もできるでしょ
    Re^18: マップチップの作り方が分かりません!!  投稿者:坂上田村麻呂  (12/01/13(金) 20:22) s97.ghyogofl2.vectant.ne.jp
    すみません orz
    全然分かりません orz
    どうすればいいですか? orz
    
    
    //================//
    // マップチップ //
    //================//
    
    mapmax_x=80 //マップデータ横の最大
    mapmax_y=60 //マップデータ縦の最大
    dim map,mapmax_x,mapmax_y //マップデータ用配列確保
    
    map(0,0)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,2)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,0,0
    map(0,3)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,0
    map(0,4)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,5)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,6)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,7)= 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,8)= 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,9)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,10)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,11)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,12)=1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,13)=1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,14)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,15)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,16)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,17)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,18)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,19)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,20)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,21)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,22)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,23)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,24)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,25)=1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,26)=1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,27)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,28)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,29)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,30)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,31)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,32)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,33)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,34)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,35)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,36)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0
    map(0,37)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0
    map(0,38)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,39)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,40)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,41)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,42)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,43)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,44)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1
    map(0,45)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1
    map(0,46)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1
    map(0,47)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1
    map(0,48)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1
    map(0,49)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1
    map(0,50)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1
    map(0,51)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,52)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,53)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,54)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,55)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,56)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,57)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,58)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,59)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    
    screen 0,480,360,0,200,100 //メインウィンドウを初期化
    
    mchip_size=6 //チップサイズ
    
    mysize_x=20 //自分のxサイズ(チップサイズより大きくは出来ない判定の修正が必要)
    mysize_y=20 //自分のyサイズ
    
    
    map_id=1 //マップチップ用のウィンドウID
    screen map_id,120,120,0,50,50 //マップチップ用のウィンドウ確保
    celdiv map_id,mchip_size,mchip_size //マップチップ用のウィンドウに1チップのサイズを設定
    
    //マップチップ画像をマップチップ用のウィンドウに描画
    gsel map_id //マップチップ用を選択
    color 102,51,0
    boxf 6,0,11,5 //チップナンバー1
    color 
    boxf 12,0,17,5 //チップナンバー2
    
    gsel 0,1 //メインウィンドウを選択
    
    mchip_name="無","ブ","扉"
    
    gsel 0,1
    x=0
    y=360
    //繰り返し
    repeat
    await 16
    redraw 0
    
    //================//
    //  ステージ  //
    //================//
    
    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
    
    stick key,31
    
    bak_x=x //移動前の座標を保存
    bak_y=y
    
    my_Speed=3
    //右矢印
    if key&4:x+my_Speed
    //左矢印
    if key&1:x-my_Speed
    //上矢印
    if key&16{
    	if jump=0:jump=1
    }
    if jump{
    	jump++
    	if jump>=60:jump=0:else:y-=cos(6.28/122*jump)*6
    }
    //下矢印
    if key&8:y+my_Speed
    
    //画面外防止
    x=limit(x,0,480-mysize_x)
    y=limit(y,0,360-mysize_y)
    
    //================//
    //  当たり判定  //
    //================//
    
    bak_Uy = bak_y/mchip_size //移動前の座標のマップデータ上の位置(上側y位置)
    bak_Dy = (bak_y+mysize_y-1)/mchip_size //(下側y位置)
    
    map_Lx = x / mchip_size //自分の左側マップデータ上のx位置
    map_Uy = y / mchip_size //上側y位置
    map_Rx = (x+mysize_x-1) / mchip_size //右側x位置
    map_Dy = (y+mysize_y-1) / mchip_size //下側y位置
    
    mchip_LUp = map( map_Lx , map_Uy ) //自分の左上位置にあるチップナンバー収得
    mchip_LUn = map( map_Lx , map_Dy ) //左下
    mchip_RUp = map( map_Rx , map_Uy ) //右上
    mchip_RUn = map( map_Rx , map_Dy ) //右下
    color
    pos 0,0
    
    mes ""+mchip_name(mchip_LUp)+" "+mchip_name(mchip_RUp)
    mes ""+mchip_name(mchip_LUn)+" "+mchip_name(mchip_RUn)
    
    if mchip_LUp > 0 {
     if mchip_LUp = 1 {
     
    // 移動前マップy位置が移動後のマップy位置と同じならブロックの横面に接触として処理(移動前と移動後で同じブロックの高さなら縦面には当たらない)
    // or
    // 移動後のx座標と移動前の下側y座標の位置にブロックがあったら横面に接触として処理(縦にブロックが繋がってるから横にはいけない)
    // or
    // 移動後のx座標と移動前の上側y座標の位置にブロックがあったら横面に接触として処理(縦にブロックが繋がってるから横にはいけない)
      if (bak_Uy=map_Uy) or (map( map_Lx , bak_Dy )=1) or (map( map_Lx , bak_Uy )=1) { //左上がブロック横面に接触
     
       if bak_x>x { x = map_Lx*mchip_size+mchip_size} //左に移動中に接触してるからブロックの右側に自分を移動
      }else{ //左上がブロック縦面に接触
       if bak_y>y { y = map_Uy*mchip_size+mchip_size} //上に移動中に接触してるからブロックの下側に自分を移動
      }
     }
    }
    
    if mchip_LUn > 0 {
     if mchip_LUn = 1 {
      if (bak_Dy=map_Dy) or (map( map_Lx , bak_Dy )=1) or (map( map_Lx , bak_Uy )=1) {
       if bak_x>x { x = map_Lx*mchip_size+mchip_size}
      }else{
       if bak_y<y { y = map_Dy*mchip_size-mysize_y}
      }
     }
    }
    
    if mchip_RUp > 0 {
     if mchip_RUp = 1 {
      if  (bak_Uy=map_Uy) or (map( map_Rx , bak_Uy )=1) or (map( map_Rx , bak_Dy )=1) {
       if bak_x<x { x = map_Rx*mchip_size-mysize_x}
      }else{
       if bak_y>y { y = map_Uy*mchip_size+mchip_size}
      }
     }
    }
    
    if mchip_RUn > 0 {
     if mchip_RUn = 1 {
      if (bak_Dy=map_Dy) or (map( map_Rx , bak_Dy )=1) or (map( map_Rx , bak_Uy )=1) {
       if bak_x<x { x = map_Rx*mchip_size-mysize_x}
      }else{
       if bak_y<y { y = map_Dy*mchip_size-mysize_y}
      }
     }
    }
    
    color 0,66,0
    circle x,y,mysize_x+x-1,mysize_y+y-1
    redraw 1
    
    loop
    Re^19: マップチップの作り方が分かりません!!  投稿者:締め出された人  (12/01/13(金) 21:24) 36-2-114-131.chiba.ap.gmo-isp.jp
    何が分からないのか・・・
    
    map_Lx = x / mchip_size //自分の左側マップデータ上のx位置
    map_Uy = y / mchip_size //上側y位置
    map_Rx = (x+mysize_x-1) / mchip_size //右側x位置
    map_Dy = (y+mysize_y-1) / mchip_size //下側y位置
    
    mchip_LUp = map( map_Lx , map_Uy ) //自分の左上位置にあるチップナンバー収得
    mchip_LUn = map( map_Lx , map_Dy ) //左下
    mchip_RUp = map( map_Rx , map_Uy ) //右上
    mchip_RUn = map( map_Rx , map_Dy ) //右下
    
    自分の四隅にどのチップか重なってるは上ので分かるでしょ?
    左下右下のマップデータ収得してるのを1ドット下を収得するようにすれば
    自分の足元に何のチップが使われてるか分かるでしょ?
    
    分からないなら
    http://www.onionsoft.net/hsp/beta/betabbs.cgi?no=8853&reno=8852&oya=8837&mode=msgview&list=
    URL先に書いたのも理解出来てないって事だから
    もう一回ちゃんとスクリプトを読んで配列と座標の関係を
    完全に理解して
    
    後
    mchip_size=6 //チップサイズ
    
    mysize_x=20 //自分のxサイズ(チップサイズより大きくは出来ない判定の修正が必要)
    mysize_y=20 //自分のyサイズ
    
    チップサイズを超える大きさは判定の修正が必要って書いてるんだが・・・
    Re^20: マップチップの作り方が分かりません!!  投稿者:坂上田村麻呂  (12/01/14(土) 12:48) s97.ghyogofl2.vectant.ne.jp
    ジャンプ自体を変えてみたのですが、ブロックの上からジャンプをすることが出来なくなってしまいました。(ジャンプはhttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1474517719を元に作りました)
    どこがおかしいのですか?m(_ _)m
    
    //================//
    // マップチップ //
    //================//
    
    mapmax_x=80 //マップデータ横の最大
    mapmax_y=60 //マップデータ縦の最大
    dim map,mapmax_x,mapmax_y //マップデータ用配列確保
    
    map(0,0)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,2)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,0,0
    map(0,3)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,0
    map(0,4)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,5)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,6)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,7)= 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,8)= 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,9)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,10)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,11)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,12)=1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,13)=1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,14)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,15)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,16)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,17)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,18)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,19)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,20)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,21)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,22)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,23)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,24)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,25)=1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,26)=1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,27)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,28)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,29)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,30)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,31)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,32)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,33)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,34)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,35)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,36)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0
    map(0,37)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0
    map(0,38)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,39)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,40)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,41)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,42)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,43)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,44)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1
    map(0,45)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1
    map(0,46)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1
    map(0,47)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1
    map(0,48)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1
    map(0,49)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1
    map(0,50)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1
    map(0,51)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,52)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,53)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,54)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,55)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,56)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,57)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,58)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,59)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    
    screen 0,480,360,0,200,100 //メインウィンドウを初期化
    
    mchip_size=6 //チップサイズ
    
    mysize_x=15 //自分のxサイズ(チップサイズより大きくは出来ない判定の修正が必要)
    mysize_y=15 //自分のyサイズ
    
    
    map_id=1 //マップチップ用のウィンドウID
    screen map_id,120,120,0,50,50 //マップチップ用のウィンドウ確保
    celdiv map_id,mchip_size,mchip_size //マップチップ用のウィンドウに1チップのサイズを設定
    
    //マップチップ画像をマップチップ用のウィンドウに描画
    gsel map_id //マップチップ用を選択
    color 102,51,0
    boxf 6,0,11,5 //チップナンバー1
    color 
    boxf 12,0,17,5 //チップナンバー2
    
    gsel 0,1 //メインウィンドウを選択
    
    mchip_name="無","ブ","扉"
    
    gsel 0,1
    x=0
    y=360
    vy=0.0
    jump=0
    //繰り返し
    repeat
    await 16
    redraw 0
    
    //================//
    //  ステージ  //
    //================//
    
    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
    
    stick key,31
    
    bak_x=x //移動前の座標を保存
    bak_y=y
    
    my_Speed=2
    //右矢印
    if key&4:x+my_Speed
    //左矢印
    if key&1:x-my_Speed
    //スペースキー
    getkey key,32
    if key=1 & jump=0{
     jump=1
     vy=-4.5
    }
    
    //ジャンプ中、落下中、共通する点は、地面に付いていない事。
    if jump=1{
     vy+=0.15
     y+=vy
    }
    
    //着地
    if 360<mysize_y+y-1{
     jump=0:vy=0.0
    }
    
    //下矢印
    if key&8:y+my_Speed
    
    //画面外防止
    x=limit(x,0,480-mysize_x)
    y=limit(y,0,360-mysize_y)
    
    //================//
    //  当たり判定  //
    //================//
    
    bak_Uy = bak_y/mchip_size //移動前の座標のマップデータ上の位置(上側y位置)
    bak_Dy = (bak_y+mysize_y-1)/mchip_size //(下側y位置)
    
    map_Lx = x / mchip_size //自分の左側マップデータ上のx位置
    map_Uy = y / mchip_size //上側y位置
    map_Rx = (x+mysize_x-1) / mchip_size //右側x位置
    map_Dy = (y+mysize_y-1) / mchip_size //下側y位置
    
    mchip_LUp = map( map_Lx , map_Uy ) //自分の左上位置にあるチップナンバー収得
    mchip_LUn = map( map_Lx , map_Dy ) //左下
    mchip_RUp = map( map_Rx , map_Uy ) //右上
    mchip_RUn = map( map_Rx , map_Dy ) //右下
    color
    pos 0,0
    
    mes ""+mchip_name(mchip_LUp)+" "+mchip_name(mchip_RUp)
    mes ""+mchip_name(mchip_LUn)+" "+mchip_name(mchip_RUn)
    
    if mchip_LUn < 1 {
     if mchip_LUn = 0 {
      
     }
    }
    
    if mchip_LUp > 0 {
     if mchip_LUp = 1 {
     
    // 移動前マップy位置が移動後のマップy位置と同じならブロックの横面に接触として処理(移動前と移動後で同じブロックの高さなら縦面には当たらない)
    // or
    // 移動後のx座標と移動前の下側y座標の位置にブロックがあったら横面に接触として処理(縦にブロックが繋がってるから横にはいけない)
    // or
    // 移動後のx座標と移動前の上側y座標の位置にブロックがあったら横面に接触として処理(縦にブロックが繋がってるから横にはいけない)
      if (bak_Uy=map_Uy) or (map( map_Lx , bak_Dy )=1) or (map( map_Lx , bak_Uy )=1) { //左上がブロック横面に接触
     
       if bak_x>x { x = map_Lx*mchip_size+mchip_size} //左に移動中に接触してるからブロックの右側に自分を移動
      }else{ //左上がブロック縦面に接触
       if bak_y>y { y = map_Uy*mchip_size+mchip_size} //上に移動中に接触してるからブロックの下側に自分を移動
      }
     }
    }
    
    if mchip_LUn > 0 {
     if mchip_LUn = 1 {
      if (bak_Dy=map_Dy) or (map( map_Lx , bak_Dy )=1) or (map( map_Lx , bak_Uy )=1) {
       if bak_x>x { x = map_Lx*mchip_size+mchip_size}
      }else{
       if bak_y<y { y = map_Dy*mchip_size-mysize_y}
      }
     }
    }
    
    if mchip_RUp > 0 {
     if mchip_RUp = 1 {
      if  (bak_Uy=map_Uy) or (map( map_Rx , bak_Uy )=1) or (map( map_Rx , bak_Dy )=1) {
       if bak_x<x { x = map_Rx*mchip_size-mysize_x}
      }else{
       if bak_y>y { y = map_Uy*mchip_size+mchip_size}
      }
     }
    }
    
    if mchip_RUn > 0 {
     if mchip_RUn = 1 {
      if (bak_Dy=map_Dy) or (map( map_Rx , bak_Dy )=1) or (map( map_Rx , bak_Uy )=1) {
       if bak_x<x { x = map_Rx*mchip_size-mysize_x}
      }else{
       if bak_y<y { y = map_Dy*mchip_size-mysize_y}
      }
     }
    }
    
    color 0,66,0
    circle x,y,mysize_x+x-1,mysize_y+y-1
    redraw 1
    
    loop
    Re^21: マップチップの作り方が分かりません!!  投稿者:締め出された人  (12/01/14(土) 14:58) 36-2-114-131.chiba.ap.gmo-isp.jp
    ウィンドウ一番下の座標にならないと着地と判断してないから
    ブロックの上に乗る処理は既にあるんだから利用できるでしょ
    Re^22: マップチップの作り方が分かりません!!  投稿者:坂上田村麻呂  (12/01/15(日) 21:50) s97.ghyogofl2.vectant.ne.jp
    すみません orz
    また問題が発生しました orz
    @●がブロックの上から下りることが出来ない
    A●がジャンプ中にブロックに近づくと、スパイダーマンのように張り付いてしまう
    
    どうすればいいですか?
    お願いしますm(_ _)m
    
    *Aがなる原因はなんとなく理解していますが、どう直せばいいか分かりません(>_<)
    
    //================//
    // マップチップ //
    //================//
    
    mapmax_x=80 //マップデータ横の最大
    mapmax_y=60 //マップデータ縦の最大
    dim map,mapmax_x,mapmax_y //マップデータ用配列確保
    
    map(0,0)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,2)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,0,0
    map(0,3)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,0
    map(0,4)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,5)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,6)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,7)= 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,8)= 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,9)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2
    map(0,10)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,11)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,12)=1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,13)=1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,14)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,15)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,16)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,17)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,18)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,19)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,20)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,21)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,22)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,23)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,24)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,25)=1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,26)=1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,27)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,28)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,29)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,30)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,31)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,32)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,33)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,34)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,35)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,36)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0
    map(0,37)=0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0
    map(0,38)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,39)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,40)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,41)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,42)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,43)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,44)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1
    map(0,45)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1
    map(0,46)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1
    map(0,47)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1
    map(0,48)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1
    map(0,49)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1
    map(0,50)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1
    map(0,51)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,52)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,53)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,54)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,55)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,56)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,57)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,58)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    map(0,59)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    
    screen 0,480,360,0,200,100 //メインウィンドウを初期化
    
    mchip_size=6 //チップサイズ
    
    mysize_x=15 //自分のxサイズ(チップサイズより大きくは出来ない判定の修正が必要)
    mysize_y=15 //自分のyサイズ
    
    
    map_id=1 //マップチップ用のウィンドウID
    screen map_id,120,120,0,50,50 //マップチップ用のウィンドウ確保
    celdiv map_id,mchip_size,mchip_size //マップチップ用のウィンドウに1チップのサイズを設定
    
    //マップチップ画像をマップチップ用のウィンドウに描画
    gsel map_id //マップチップ用を選択
    color 102,51,0
    boxf 6,0,11,5 //チップナンバー1
    color 
    boxf 12,0,17,5 //チップナンバー2
    
    gsel 0,1 //メインウィンドウを選択
    
    mchip_name="無","ブ","扉"
    
    gsel 0,1
    x=0
    y=360
    vy=0.0
    jump=0
    //繰り返し
    repeat
    await 16
    redraw 0
    
    //================//
    //  ステージ  //
    //================//
    
    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
    
    stick key,31
    
    bak_x=x //移動前の座標を保存
    bak_y=y
    
    my_Speed=2
    //右矢印
    if key&4:x+my_Speed
    //左矢印
    if key&1:x-my_Speed
    //スペースキー
    getkey key,32
    if key=1 & jump=0{
     jump=1
     vy=-4.5
    }
    
    //ジャンプ中、落下中、共通する点は、地面に付いていない事。
    if jump=1 {
     vy+=0.15
     y+=vy
    }
    
    //着地
    if (mchip_LUn=1) or (mchip_RUn=1) or (mysize_y+y-1>360) {
     jump=0:vy=0.0
    }
    
    //下矢印
    if key&8:y+my_Speed
    
    //画面外防止
    x=limit(x,0,480-mysize_x)
    y=limit(y,0,360-mysize_y)
    
    //================//
    //  当たり判定  //
    //================//
    
    bak_Uy = bak_y/mchip_size //移動前の座標のマップデータ上の位置(上側y位置)
    bak_Dy = (bak_y+mysize_y-1)/mchip_size //(下側y位置)
    
    map_Lx = x / mchip_size //自分の左側マップデータ上のx位置
    map_Uy = y / mchip_size //上側y位置
    map_Rx = (x+mysize_x-1) / mchip_size //右側x位置
    map_Dy = (y+mysize_y-1) / mchip_size //下側y位置
    
    mchip_LUp = map( map_Lx , map_Uy ) //自分の左上位置にあるチップナンバー収得
    mchip_LUn = map( map_Lx , map_Dy ) //左下
    mchip_RUp = map( map_Rx , map_Uy ) //右上
    mchip_RUn = map( map_Rx , map_Dy ) //右下
    color
    pos 0,0
    
    mes ""+mchip_name(mchip_LUp)+" "+mchip_name(mchip_RUp)
    mes ""+mchip_name(mchip_LUn)+" "+mchip_name(mchip_RUn)
    
    if mchip_LUn < 1 {
     if mchip_LUn = 0 {
      
     }
    }
    
    if mchip_LUp > 0 {
     if mchip_LUp = 1 {
     
    // 移動前マップy位置が移動後のマップy位置と同じならブロックの横面に接触として処理(移動前と移動後で同じブロックの高さなら縦面には当たらない)
    // or
    // 移動後のx座標と移動前の下側y座標の位置にブロックがあったら横面に接触として処理(縦にブロックが繋がってるから横にはいけない)
    // or
    // 移動後のx座標と移動前の上側y座標の位置にブロックがあったら横面に接触として処理(縦にブロックが繋がってるから横にはいけない)
      if (bak_Uy=map_Uy) or (map( map_Lx , bak_Dy )=1) or (map( map_Lx , bak_Uy )=1) { //左上がブロック横面に接触
     
       if bak_x>x { x = map_Lx*mchip_size+mchip_size} //左に移動中に接触してるからブロックの右側に自分を移動
      }else{ //左上がブロック縦面に接触
       if bak_y>y { y = map_Uy*mchip_size+mchip_size} //上に移動中に接触してるからブロックの下側に自分を移動
      }
     }
    }
    
    if mchip_LUn > 0 {
     if mchip_LUn = 1 {
      if (bak_Dy=map_Dy) or (map( map_Lx , bak_Dy )=1) or (map( map_Lx , bak_Uy )=1) {
       if bak_x>x { x = map_Lx*mchip_size+mchip_size}
      }else{
       if bak_y<y { y = map_Dy*mchip_size-mysize_y}
      }
     }
    }
    
    if mchip_RUp > 0 {
     if mchip_RUp = 1 {
      if  (bak_Uy=map_Uy) or (map( map_Rx , bak_Uy )=1) or (map( map_Rx , bak_Dy )=1) {
       if bak_x<x { x = map_Rx*mchip_size-mysize_x}
      }else{
       if bak_y>y { y = map_Uy*mchip_size+mchip_size}
      }
     }
    }
    
    if mchip_RUn > 0 {
     if mchip_RUn = 1 {
      if (bak_Dy=map_Dy) or (map( map_Rx , bak_Dy )=1) or (map( map_Rx , bak_Uy )=1) {
       if bak_x<x { x = map_Rx*mchip_size-mysize_x}
      }else{
       if bak_y<y { y = map_Dy*mchip_size-mysize_y}
      }
     }
    }
    
    color 0,66,0
    circle x,y,mysize_x+x-1,mysize_y+y-1
    redraw 1
    
    loop
    Re^23: マップチップの作り方が分かりません!!  投稿者:締め出された人  (12/01/22(日) 17:10) 36-2-114-131.chiba.ap.gmo-isp.jp
    ゲームの方を制限に合うように変えて
    とりあえず目立つバグを修正
    
    
    mapmax_x=30 //マップデータ横の最大
    mapmax_y=23 //マップデータ縦の最大
    dim map,mapmax_x,mapmax_y //マップデータ用配列確保
    
    map(0,0)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0
    map(0,2)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2
    map(0,3)= 0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2
    map(0,4)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1
    map(0,5)= 1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0
    map(0,6)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,7)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,8)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,9)= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,10)=1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,11)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,12)=0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,13)=0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,14)=0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0
    map(0,15)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,16)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    map(0,17)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
    map(0,18)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1
    map(0,19)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1
    map(0,20)=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1
    map(0,21)=0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1
    map(0,22)=0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1
    
    winsize_x=480
    winsize_y=368
    screen 0,winsize_x,winsize_y,0,200,100 //メインウィンドウを初期化
    
    mchip_size=16 //チップサイズ
    
    mysize_x=16 //自分のxサイズ(チップサイズより大きくは出来ない判定の修正が必要)
    mysize_y=16 //自分のyサイズ
    
    map_id=1 //マップチップ用のウィンドウID
    screen map_id,120,120,0,50,50 //マップチップ用のウィンドウ確保
    celdiv map_id,mchip_size,mchip_size //マップチップ用のウィンドウに1チップのサイズを設定
    
    //マップチップ画像をマップチップ用のウィンドウに描画
    gsel map_id //マップチップ用を選択
    color 102,51,0
    boxf mchip_size,0,mchip_size*2-1,mchip_size-1 //チップナンバー1
    color 
    boxf mchip_size*2,0,mchip_size*3-1,mchip_size-1 //チップナンバー2
    
    
    
    gsel 0,1 //メインウィンドウを選択
    
    mchip_name="無","ブ","扉"
    
    x=0
    y=winsize_y-mysize_y-1
    vy=0.0
    jump=0
    //繰り返し
    repeat
    await 16
    redraw 0
    
    //================//
    //  ステージ  //
    //================//
    
    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
    
    stick key,31
    
    bak_x=x //移動前の座標を保存
    bak_y=y
    
    my_Speed=2
    //右矢印
    if key&4:x+my_Speed
    //左矢印
    if key&1:x-my_Speed
    
    //スペースキー
    getkey key,32
    if key=1 & jump=0{
     jump=1
     vy=-4.5
    }
    
    //ジャンプ中、落下中、共通する点は、地面に付いていない事。
    if jump=1 {
     vy+=0.15
     y+=vy
    }
    
    if (mysize_y+y)>=winsize_y {//下側がウィンドウ外に出た
     jump=0:vy=0.0
    }
    
    //画面外防止
    
    x=limit(x,0,winsize_x-mysize_x)
    y=limit(y,0,winsize_y-mysize_y)
    
    //================//
    //  当たり判定  //
    //================//
    
    bak_Uy = bak_y/mchip_size //移動前の座標のマップデータ上の位置(上側y位置)
    bak_Dy = (bak_y+mysize_y-1)/mchip_size //(下側y位置)
    
    map_Lx = x / mchip_size //自分の左側マップデータ上のx位置
    map_Uy = y / mchip_size //上側y位置
    map_Rx = (x+mysize_x-1) / mchip_size //右側x位置
    map_Dy = (y+mysize_y-1) / mchip_size //下側y位置
    
    mchip_LUp = map( map_Lx , map_Uy ) //自分の左上位置にあるチップナンバー収得
    mchip_LUn = map( map_Lx , map_Dy ) //左下
    mchip_RUp = map( map_Rx , map_Uy ) //右上
    mchip_RUn = map( map_Rx , map_Dy ) //右下
    color
    pos 0,0
    
    mes ""+mchip_name(mchip_LUp)+" "+mchip_name(mchip_RUp)
    mes ""+mchip_name(mchip_LUn)+" "+mchip_name(mchip_RUn)
    
    if mchip_LUp > 0 {
     if mchip_LUp = 1 {
    // 移動前マップy位置が移動後のマップy位置と同じならブロックの横面に接触として処理(移動前と移動後で同じブロックの高さなら縦面には当たらない)
    // or
    // 移動後のx座標と移動前の下側y座標の位置にブロックがあったら横面に接触として処理(縦にブロックが繋がってるから横にはいけない)
    // or
    // 移動後のx座標と移動前の上側y座標の位置にブロックがあったら横面に接触として処理(縦にブロックが繋がってるから横にはいけない)
      if (bak_Uy=map_Uy) or (map( map_Lx , bak_Dy )=1) or (map( map_Lx , bak_Uy )=1) { //左上がブロック横面に接触
       if bak_x>x { x = map_Lx*mchip_size+mchip_size} //左に移動中に接触してるからブロックの右側に自分を移動
      }else{ //左上がブロック縦面に接触
       if bak_y>y { y = map_Uy*mchip_size+mchip_size} //上に移動中に接触してるからブロックの下側に自分を移動
      }
     }
    }
    
    if mchip_LUn > 0 {
     if mchip_LUn = 1 {
      if (bak_Dy=map_Dy) or (map( map_Lx , bak_Dy )=1) or (map( map_Lx , bak_Uy )=1) {
       if bak_x>x { x = map_Lx*mchip_size+mchip_size}
      }else{
       if bak_y<y {  //落下中にブロックの上に左下が接触
     jump=0:vy=0.0
       y = map_Dy*mchip_size-mysize_y}
      }
     }
    }
    
    if mchip_RUp > 0 {
     if mchip_RUp = 1 {
      if  (bak_Uy=map_Uy) or (map( map_Rx , bak_Uy )=1) or (map( map_Rx , bak_Dy )=1) {
       if bak_x<x { x = map_Rx*mchip_size-mysize_x}
      }else{
       if bak_y>y { y = map_Uy*mchip_size+mchip_size}
      }
     }
    }
    
    if mchip_RUn > 0 {
     if mchip_RUn = 1 {
      if (bak_Dy=map_Dy) or (map( map_Rx , bak_Dy )=1) or (map( map_Rx , bak_Uy )=1) {
       if bak_x<x { x = map_Rx*mchip_size-mysize_x}
      }else{
       if bak_y<y { //落下中にブロックの上に右下が接触
     jump=0:vy=0.0
       y = map_Dy*mchip_size-mysize_y}
      }
     }
    }
    
    //足場判定
    if (winsize_y-mysize_y)>y {
    map_Dy = (y+mysize_y) / mchip_size //自分の1ドット下
    
    if jump=0  {//上昇落下中ではない
    if (map( map_Lx , map_Dy ) ! 1) and (map( map_Rx , map_Dy ) ! 1) {//足場無し
      jump=1:vy=1.0
    }
    }
    
    }
    
    color 0,66,0
    circle x,y,mysize_x+x-1,mysize_y+y-1
    redraw 1
    
    loop
    
    
    これでも本当は判定が不十分だが
    ゲームによっては気付かない
    Re^23: マップチップの作り方が分かりません!!  投稿者:締め出された人  (12/01/15(日) 23:08) 36-2-114-131.chiba.ap.gmo-isp.jp
    > ●がブロックの上から下りることが出来ない
    
    http://www.onionsoft.net/hsp/beta/betabbs.cgi?no=8873&reno=8872&oya=8837&mode=msgview&page=0
    
    ↑で言われた事をやってないから
    
    > ●がジャンプ中にブロックに近づくと、スパイダーマンのように張り付いてしまう
    
    > if (mchip_LUn=1) or (mchip_RUn=1) or (mysize_y+y-1>360) {
    これじゃ横から当たってても関係なく着地判定してる
    
    >    if bak_x>x { x = map_Lx*mchip_size+mchip_size} //左に移動中に接触してるからブロックの右側に自分を移動
    >   }else{ //左上がブロック縦面に接触
    >    if bak_y>y { y = map_Uy*mchip_size+mchip_size} //上に移動中に接触してるからブロックの下側に自分を移動
    
    上に移動中に接触してたらブロックの下側に移動とは逆に
    下に移動中に接触してたらブロックの上側に移動って部分がある
    コメントは入れてないから自分で探して
    
    
    後修正追加が少ないんだから一々全部書き込む必要は無い
    部分的に修正前修正後を抜き出して貼れば良い
    Re^13: マップチップの作り方が分かりません!!  投稿者:締め出された人  (12/01/05(木) 23:28) 36-2-114-131.chiba.ap.gmo-isp.jp
    > ブロックとブロックの間を通る方法を教えてくださいm(_ _)m
    > 画面の端に行くとエラーが出てしまう
    
    > 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 )
    
    惜しい
    これだと隣の配列要素を見てしまう(だから1ブロック分の間が通れなし、範囲外の配列を見てエラーになる)
    見たいのは自分のサイズ内の配列要素
    x / mchip_size これで左端を見れるんだから
    (x+mchip_size-1) / mchip_size で右端の位置になる(mchip_sizeには本来自分のサイズを使うが今回は同じサイズを使ってるから)
    -1にしてるのはmchip_size分足してしまうとmchip_size/mchip_sizeで1なのでmap_x+1と同じになってしまう
    
    //当たり判定準備
    map_Lx = x / mchip_size //自分の左側マップデータ上のx位置
    map_Uy = y / mchip_size //上側y位置
    map_Rx = (x+mchip_size-1) / mchip_size //右側x位置
    map_Dy = (y+mchip_size-1) / mchip_size //下側y位置
    
    mchip_LUp = map( map_Lx , map_Uy ) //自分の左上位置にあるチップナンバー収得
    mchip_LUn = map( map_Lx , map_Dy ) //左下
    mchip_RUp = map( map_Rx , map_Uy ) //右上
    mchip_RUn = map( map_Rx , map_Dy ) //右下
    
    こんな感じになる
    
    
    > ↓を押しているときにブロックに当たると●が揺れて
    左下が当たって上に移動
    更に右下も判定され当たってると上に移動
    これによりブロックより距離が離れるから
    ↓を押し続けてると揺れてるようになる
    
    これは元々の制御方法に問題があるので改善の方法は示しませんが
    複数回判定した時には色々問題が出ることを知っておいてください
    
    
    これで自分の四隅にブロックが触れてるかは分かるようになったと思う
    でも、これだけでは判定後の制御に必要な情報が不足している
    
    必要なのは(色々やり方の中の一つの方法だから最終的に作りたいゲームには向かない可能性もある)
    ・移動前の座標
    ・ブロックのどの面に当たったか
    ・当たったブロックの座標
    
    
    
    出来たら後でサンプル出すかも・・・


    - Web Forum -