|
 |
|
2015/10/25(Sun) 20:20:41|NO.72501
説明が下手かもしれませんが回答お願いします。
体育館前から体育館前渡り廊下へ行った後、体育館へもう一度行こうとすると
体育館1にいってしまいます。改善方法を教えてください、
//--------//体育館前//----------------
*taiikukanmae ; 体育館前
gosub *taiikukanmae_map :gosub *taiikukanmae_hyouji
*taiikukanmae_drawloop ;体育館前繰り返し
redraw 0 :gosub *ryuuyou2 :gosub *map_moveme_ee :gosub *ryuuyou3 :gosub *taiikukanmae_background_character :redraw 1 :wait 7
goto *taiikukanmae_drawloop
//-------------//体育館前マップ//---------------------------------------
*taiikukanmae_map
dim MAP,32,18
//1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2
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
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
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
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
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
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
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
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,0,0
map(0,8) =0,1,1,1,1,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0
map(0,9) =1,0,0,0,0,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,4
map(0,10)=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,4
map(0,11)=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,4
map(0,12)=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,2,4
map(0,13)=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,4
map(0,14)=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,4
map(0,15)=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,4
map(0,16)=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,4
map(0,17)=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,1,1,1,1,1
//1(通行禁止),2(自分),3(体育館前渡り廊下),4(渡り廊下左),5(),6(),7(),8(),
return
//-------------------------------------------------------------------------//
*taiikukanmae_hyouji
repeat 32
cnta=cnt
repeat 18
cntb=cnt
if taiikukanmae_ue = 1 and MAP(cnta,cntb)=9 { ;自分を表示
MX=cnta*40 : MY=cntb*40
MAP (cnta,cntb)=0 }
if taiikukanmae_migi = 1 and MAP(cnta,cntb)=2 {
MX=cnta*40 : MY=cntb*40
MAP (cnta,cntb)=0 }
loop :loop :return
//---------------------------//マップ間の移動//----------------------------//
*map_moveme_ee
;判定作成
MPX0=(MX+MDX)/40 :MPY0=(MY+MDY)/40 :MPX1=(MX+MDX+39)/40 :MPY1=(MY+MDY+39)/40
if MAP(MPX0,MPY0)=1 or MAP(MPX1,MPY0)=1 or MAP(MPX0,MPY1)=1 or MAP(MPX1,MPY1)=1 { //1を通をらせない
MDX=0 :MDY=0 }
;マップ切り替え
if MAP(MPX0,MPY0)=3 or MAP(MPX1,MPY0)=3 or MAP(MPX0,MPY1)=3 or MAP(MPX1,MPY1)=3 { //3に入ったら体育館前渡り廊下へ
taiikukanmaewatarirouka_sita = taiikukanmaewatarirouka_sita + 1 :goto *taiikukanmae_kakuninn }
if MAP(MPX0,MPY0)=4 or MAP(MPX1,MPY0)=4 or MAP(MPX0,MPY1)=4 or MAP(MPX1,MPY1)=4 { //4に入ったら渡り廊下左へ
watariroukahidari_hidari = watariroukahidari_hidari + 1 :goto *taiikukanmae_kakuninn } :return
//-------------//体育館前とキャラクターの画像//---------------------------------------
*taiikukanmae_background_character
pos 0,0 : gcopy 19,0,0,1280,720 ;体育館前
pos MX,MY :celput 6,2 :return
//-----------------------------------------------------------------------------//
*taiikukanmae_kakuninn
taiikukanmae_hidari = 0 :taiikukanmae_migi = 0
if taiikukanmaewatarirouka_sita = 1 { goto *watarirouka2 }
if watariroukahidari_hidari = 1 { goto *watariroukahidari }
//--------//体育館前渡り廊下//----------------
*watarirouka2 ; 体育館前渡り廊下
gosub *watarirouka2_map :gosub *watarirouka2_hyouji
*watarirouka2_drawloop ;渡り廊下左繰り返し
redraw 0 :gosub *ryuuyou2 :gosub *map_moveme_ff :gosub *ryuuyou3 :gosub *watarirouka2_background_character :redraw 1 :wait 7
goto *watarirouka2_drawloop
//-------------//体育館前渡り廊下マップ//---------------------------------------
*watarirouka2_map
dim MAP,32,18
//1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2
Map(0,0) =0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,1,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,1,3,3,3,3,3,3,1,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,1,0,0,0,9,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
map(0,3) =0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
map(0,4) =0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
map(0,5) =0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
map(0,6) =0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
map(0,10)=0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
map(0,12)=0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
map(0,13)=0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,1,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,1,4,4,4,4,4,4,1,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,1,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0
//1(通行禁止),2(自分),3(体育館1),4(体育館前),5(),6(),7(),8(),
return
//----------------------------------------------------------------------------//
*watarirouka2_hyouji
repeat 32
cnta=cnt
repeat 18
cntb=cnt
if taiikukanmaewatarirouka_ue = 1 and MAP(cnta,cntb)=9 {
MX=cnta*40 : MY=cntb*40
MAP (cnta,cntb)=0 }
if taiikukanmaewatarirouka_sita = 1 and MAP(cnta,cntb)=7 {
MX=cnta*40 : MY=cntb*40
MAP (cnta,cntb)=0 }
loop :loop :return
//---------------------------//マップ間の移動//----------------------------//
*map_moveme_ff
;判定作成
MPX0=(MX+MDX)/40 :MPY0=(MY+MDY)/40 :MPX1=(MX+MDX+39)/40 :MPY1=(MY+MDY+39)/40
if MAP(MPX0,MPY0)=1 or MAP(MPX1,MPY0)=1 or MAP(MPX0,MPY1)=1 or MAP(MPX1,MPY1)=1 { MDX=0 :MDY=0 }
;マップ切り替え
if MAP(MPX0,MPY0)=3 or MAP(MPX1,MPY0)=3 or MAP(MPX0,MPY1)=3 or MAP(MPX1,MPY1)=3 { //3に入ったら体育館1へ
taiikukan1_sita = taiikukan1_sita + 1 :goto *watarirouka2_kakuninn }
if MAP(MPX0,MPY0)=4 or MAP(MPX1,MPY0)=4 or MAP(MPX0,MPY1)=4 or MAP(MPX1,MPY1)=4 { //4に入ったら体育館前へ
taiikukanmae_ue = taiikukanmae_ue + 1 :goto *watarirouka2_kakuninn } :return
//-------------//体育館前渡り廊下とキャラクターの画像//---------------------------------------
*watarirouka2_background_character
pos 0,0 : gcopy 18,0,0,1280,720 ;体育館前渡り廊下
pos MX,MY :celput 6,2 :return
//---------------------------------------------------------------------------------------------//
*watarirouka2_kakuninn
taiikukanmaewatarirouka_ue = 0 :taiikukanmaewatarirouka_sita = 0
if taiikukan1_sita = 1 { goto *taiikukann1 }
if taiikukanmae_ue = 1 { goto *taiikukanmae }
//--------//体育館1//----------------
*taiikukann1 ; 体育館1
gosub *taiikukan1_map :gosub *taiikukan1_hyouji
*taiikukan1_drawloop ;体育館1繰り返し
redraw 0 :gosub *ryuuyou2 :gosub *map_moveme_gg :gosub *ryuuyou3 :gosub *taiikukan1_background_character :redraw 1 :wait 7
goto *taiikukan1_drawloop
//-------------//体育館1//---------------------------------------
*taiikukan1_map
dim MAP,32,18
//1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2
Map(0,0) =1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1
map(0,1) =1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
map(0,2) =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,1
map(0,3) =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,1
map(0,4) =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,1
map(0,5) =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,1
map(0,6) =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,1
map(0,7) =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,1
map(0,8) =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,1
map(0,9) =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,1
map(0,10)=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,1
map(0,11)=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,1
map(0,12)=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,1
map(0,13)=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,1
map(0,14)=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,1
map(0,15)=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,1
map(0,16)=1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
map(0,17)=1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1
//1(通行禁止),2(自分),3(体育館1),4(体育館前),5(),6(),7(),8(),
return
//---------------------------------------------------------------------------//
*taiikukan1_hyouji
repeat 32
cnta=cnt
repeat 18
cntb=cnt
if taiikukan1_migi = 1 and MAP(cnta,cntb)=2 {
MX=cnta*40 : MY=cntb*40
MAP (cnta,cntb)=0 }
if taiikukan1_sita = 1 and MAP(cnta,cntb)=7 {
MX=cnta*40 : MY=cntb*40
MAP (cnta,cntb)=0 }
loop :loop :return
//---------------------------//マップ間の移動//----------------------------//
*map_moveme_gg
;判定作成
MPX0=(MX+MDX)/40 :MPY0=(MY+MDY)/40 :MPX1=(MX+MDX+39)/40 :MPY1=(MY+MDY+39)/40
if MAP(MPX0,MPY0)=1 or MAP(MPX1,MPY0)=1 or MAP(MPX0,MPY1)=1 or MAP(MPX1,MPY1)=1 { //1を通をらせない
MDX=0 :MDY=0 }
;マップ切り替え
//if MAP(MPX0,MPY0)=3 or MAP(MPX1,MPY0)=3 or MAP(MPX0,MPY1)=3 or MAP(MPX1,MPY1)=3 { //3に入ったら体育館2へ
//taiikukan2_sita = taiikukan2_sita + 1 : goto *taiikukann1_kakuninn }
if MAP(MPX0,MPY0)=4 or MAP(MPX1,MPY0)=4 or MAP(MPX0,MPY1)=4 or MAP(MPX1,MPY1)=4 { //4に入ったら体育館前渡り廊下へ
taiikukanmaewatarirouka_ue = taiikukanmaewatarirouka_ue + 1 :goto *taiikukan1_kakuninn } :return
//-------------//体育館1とキャラクターの画像//---------------------------------------
*taiikukan1_background_character
pos 0,0 : gcopy 16,0,0,1280,720 ;体育館1
pos MX,MY :celput 6,2 :return
//------------------------------------------------------------------//
*taiikukan1_kakuninn
taiikukan1_migi = 0 :taiikukan1_sita = 0
//if taiikukan2_sita = 1 { goto *taiikukan2 }
if taiikukanmaewatarirouka_ue = 1 { goto *watarirouka2 }
//--------------------------//移動時の塗りつぶしと強制停止//--------//
*ryuuyou2
color 255,255,255 : boxf
if MX\40 = 0 : MDX = 0
if MY\40 = 0 : MDY = 0
stick KY,15 ;カーソルキーをチェックして移動量を設定 移動ボタンの設定
if KY=1 :MDX=-10
if KY=4 :MDX=10
if KY=2 :MDY=-10
if KY=8 :MDY=10
return
//---------------------------//移動量の計算//----------------------------//
*ryuuyou3
MX=MX+MDX :MY=MY+MDY
if MX<0 : MX=0
if MX>1280 :MX=1279
if MY<0 : MY=0
if MY>720 : MY=719
return

| |
|
2015/10/25(Sun) 20:57:11|NO.72503
実行しようとしたら失敗しました。
上記はソースの一部なのでしょうか?
恐縮ですがソースだけでも実行できるようにして頂けるとありがたいです。
|
|
2015/10/25(Sun) 22:18:57|NO.72505
はい。マソ子さんと同じ失敗しました。
失敗の理由?:
・何かをインクルードしてない
・ソースコードのところが違う
|
|
2015/10/26(Mon) 17:02:19|NO.72516
実行してみたら
ラベルが存在しないエラーが出る
2ヶ所だけ全角スペースがあった。
以上2点です。
|
|
2015/10/26(Mon) 17:17:56|NO.72517
問題点
1.ラベル watariroukahidari が存在していない
2.文法を間違えている?(watariroukahidariを作成してみてから)
|
|
2015/10/26(Mon) 19:29:01|NO.72525
とりあえず動かしてみましたが、
おそらく聞いていることはマップ構造が私の解釈であっているのか分からないので合っているかどうかはわかりませんがラベル「*watarirouka2_kakuninn」の「goto *taiikukanmae 」の部分で座標を変えていないのが原因だと思います。
ただサブルーチンの中からGotoでジャンプしたり同じような処理をしていたり他にも座標指定をちゃんとしていないなど問題が多いです。(もしかしたら投稿されていないであろう部分でいろいろ処理しているのかもしれませんが)
解釈に間違いがあればすみません。
|
|
2015/10/26(Mon) 20:18:41|NO.72526
しろさんと一緒に作っている者です。
Noapさんの「座標を変えていないのが原因だと思います。」と教えていただきましたが
具体的にはどのようにすればよいのでしょうか?
|
|
2015/10/26(Mon) 20:31:04|NO.72527
移動前と移動先の座標が同じになっている、移動前と移動先でマップ上の出入り口の座標が異なるのに対し操作キャラクターの座標はそのままのため変な場所にいく、この場合は正確には体育館1ではなく体育館前の下のほうに行く、のが問題であるとわたしは考えます。
あくまでもわたしの解釈なので間違っているかもしれない気がします。
とりあえず先ほどのスクリプトを動くようにしたものを投稿していいのであれば投稿します。
ただとりあえず見栄えだけは動くように適当に書きかえたものなので汚いですし、gotoの問題などは直していませんし、わたしの勝手な解釈や手抜きがありますがそれでもよければ投稿します。
マップごとにラベルをつくるのはごちゃごちゃするのでやめたほうがいい気がします。
|
|
2015/10/26(Mon) 21:56:30|NO.72537
ここのスレ見て思ったんですけど
なんこかのMAPを一つにして表示IDつけるとかよさそうですね
01 01 02 02
01 01 02 02
03 03 04 04
03 03 04 04
みたいな
0は床で
1〜4はMAPIDみたいな
そうすると移動がMAP更新しなくていいから
問題が簡単になりますよね
|
|
2015/10/26(Mon) 21:57:51|NO.72538
わたしもそう思います
|
|
2015/10/27(Tue) 07:00:30|NO.72547
手間をかけさせて申し訳ないですが
Noapさんの作ったプログラムを見せてもらえたら嬉しいです
|
|
2015/10/27(Tue) 17:36:10|NO.72548
かなり適当な修正なので決して期待しないでください
//とりあえず動くようにした(手抜き)
//サブルーチンからgotoで外にジャンプして戻らないでいた(適当に修正)
//マップ間の座標切り替えが手抜き(切り替えのしかたや切り替え先の座標が)(自分の修正が)
//体育館2や廊下左はもとのスクリプト中にないので適当に処理(廊下左は渡り廊下に行くように、体育館2はコメントにして無効化)
//マップごとにラベルをつくっているのでイベントなどを追加していった場合どんどん同じような処理で長くなっていく(無駄が多くバグの元)
//マップの追加がしにくい(マップとマップ間のつながり(出入り口)はプログラム本体と分けて(別ファイルにして読みこむ)、イベントもなるべく分けたほうがいいと思う)
//配列のチェックはしていません(右端に行くと配列外になりエラー)
//などなどテキトウな直し方のためもあり問題が山積しています
//直したらマップ本体しか残らない気がします
//かなり適当に直したのでこれを基にするのではなく一から作り直したほうがカンタンかもしれません
#define MX chrpos.0
#define MY chrpos.1
#define MDX chrpos.2
#define MDY chrpos.3
#define KY chrpos.4
dim chrpos,5
//配列にしたほうがいいと思う
dim taiikukanmae_ue,1
dim taiikukanmae_hidari,1
dim taiikukan1_migi,1
dim taiikukan1_sita,1
dim taiikukan2_sita,1
dim taiikukanmaewatarirouka_sita,1
dim taiikukanmaewatarirouka_ue,1
dim watariroukahidari_hidari,1
//仮のスプライトを用意
//デバッグのためbufferではなくscreenでウィンドウにしています
screen 6,40*5,40*5,screen_tool,,,40*5,40*5
title "スプライト"
boxf 80,0,119,39 : color 255,255,255 : boxf 81,1,118,38 : color
pos 80,0
mes "自分"
celdiv 6,40,40
//おそらくマップの背景に使われていると思われるバッファーが存在しないので(後で元のスクリプトを流用して仮のマップ画像を作成しています)
//デバッグのためbufferではなくscreenでウィンドウにしています
//screen 19,32*40,18*40,,,,32*40.18*40
screen 19,1280,720,screen_tool,,,1280,720
screen 18,1280,720,screen_tool,,,1280,720
screen 16,1280,720,screen_tool,,,1280,720
screen 0,1280,720,,,,1280,720
//--------//体育館前//----------------
*taiikukanmae ; 体育館前
if taiikukanmae_ue{
MX=5*40 : MY=6*40 : MDX=0 : MDY=0
}
//フラグがごちゃごちゃしているので全部0にする
taiikukanmae_ue=0
taiikukanmae_hidari=0
taiikukan1_migi=0
taiikukan1_sita=0
taiikukan2_sita=0
taiikukanmaewatarirouka_sita=0
taiikukanmaewatarirouka_ue=0
watariroukahidari_hidari=0
gosub *taiikukanmae_map :gosub *taiikukanmae_hyouji
while;体育館前繰り返し
redraw 0
gosub *ryuuyou2
gosub *map_moveme_ee
//サブルーチンの中からgotoで脱出するのをてきとうに修正
if taiikukanmaewatarirouka_sita : goto *watarirouka2
if watariroukahidari_hidari : goto *watariroukahidari
gosub *ryuuyou3
gosub *taiikukanmae_background_character
redraw 1
title "体育館前: MX="+MX+":MY="+MY+" MDX="+MDX+" MDY="+MDY
await 70
wend
//-------------//体育館前マップ//---------------------------------------
*taiikukanmae_map
dim map,32,18
//1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2
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
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
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
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
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
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
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
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,0,0
map(0,8) =0,1,1,1,1,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0
map(0,9) =1,0,0,0,0,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,4
map(0,10)=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,4
map(0,11)=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,4
map(0,12)=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,2,4
map(0,13)=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,4
map(0,14)=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,4
map(0,15)=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,4
map(0,16)=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,4
map(0,17)=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,1,1,1,1,1
//1(通行禁止),2(自分),3(体育館前渡り廊下),4(渡り廊下左),5(),6(),7(),8(),
return
//-------------------------------------------------------------------------//
//おそらくマップの背景に使われていると思われるバッファーが存在しないのでとりあえずもとのスクリプトを流用して仮のマップ画面を作成
*taiikukanmae_hyouji
gsel 19
title "体育館前マップ"
color 255,255,255:boxf
color
repeat 32
cnta=cnt
repeat 18
pos cnta*40,cnt*40
if map.cnta.cnt==1 : mes "かべ"
if map.cnta.cnt==3 : mes "廊下"
if map.cnta.cnt==4 : mes "廊左"
/*if taiikukanmae_ue = 1 and map(cnta,cntb)=9 { ;自分を表示
MX=cnta*40 : MY=cntb*40
map(cnta,cntb)=0
}
if taiikukanmae_migi = 1 and map(cnta,cntb)=2 {
MX=cnta*40 : MY=cntb*40
map(cnta,cntb)=0
}*/
loop
loop
gsel 0
return
//---------------------------//マップ間の移動//----------------------------//
*map_moveme_ee
;判定作成
MPX0=(MX+MDX)/40 :MPY0=(MY+MDY)/40 :MPX1=(MX+MDX+39)/40 :MPY1=(MY+MDY+39)/40
if MAP(MPX0,MPY0)=1 or MAP(MPX1,MPY0)=1 or MAP(MPX0,MPY1)=1 or MAP(MPX1,MPY1)=1 {//1を通をらせない
MDX=0 :MDY=0
}
;マップ切り替え
if MAP(MPX0,MPY0)=3 or MAP(MPX1,MPY0)=3 or MAP(MPX0,MPY1)=3 or MAP(MPX1,MPY1)=3 { //3に入ったら体育館前渡り廊下へ
taiikukanmaewatarirouka_sita=1
//サブルーチンの中からgotoで脱出すべきではない
//goto *taiikukanmae_kakuninn
}
if MAP(MPX0,MPY0)=4 or MAP(MPX1,MPY0)=4 or MAP(MPX0,MPY1)=4 or MAP(MPX1,MPY1)=4 { //4に入ったら渡り廊下左へ
watariroukahidari_hidari=1
//goto *taiikukanmae_kakuninn
}
return
//-------------//体育館前とキャラクターの画像//---------------------------------------
*taiikukanmae_background_character
pos 0,0
gcopy 19,0,0,1280,720 ;体育館前
pos MX,MY
color
celput 6,2
return
//-----------------------------------------------------------------------------//
//とりあえずコメント化
/**taiikukanmae_kakuninn
taiikukanmae_hidari = 0 :taiikukanmae_migi = 0
if taiikukanmaewatarirouka_sita : goto *watarirouka2
if watariroukahidari_hidari : goto *watariroukahidari*/
*watariroukahidari
//どのような処理をするところなのか分からないので
watariroukahidari_hidari=0
//--------//体育館前渡り廊下//----------------
*watarirouka2 ; 体育館前渡り廊下
if taiikukanmaewatarirouka_sita{
MDX=0 : MDY=0 : MX= 13*40: MY=13*40
}
if taiikukanmaewatarirouka_ue{
MDX=0 : MDY=0 : MX= 15*40: MY=4*40
}
//フラグがごちゃごちゃしているので全部0にする
taiikukanmae_ue=0
taiikukanmae_hidari=0
taiikukan1_migi=0
taiikukan1_sita=0
taiikukan2_sita=0
taiikukanmaewatarirouka_sita=0
taiikukanmaewatarirouka_ue=0
watariroukahidari_hidari=0
gosub *watarirouka2_map
gosub *watarirouka2_hyouji
while;渡り廊下左繰り返し
redraw 0
gosub *ryuuyou2
gosub *map_moveme_ff
//サブルーチンの中からgotoで脱出するのをてきとうに修正
if taiikukan1_sita: goto *taiikukann1
if taiikukanmae_ue: goto *taiikukanmae
gosub *ryuuyou3
gosub *watarirouka2_background_character
redraw 1
title "渡り廊下: MX="+MX+":MY="+MY+" MDX="+MDX+" MDY="+MDY
await 70
wend
//-------------//体育館前渡り廊下マップ//---------------------------------------
*watarirouka2_map
dim MAP,32,18
//1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2
map(0,0) =0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,1,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,1,3,3,3,3,3,3,1,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,1,0,0,0,9,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
map(0,3) =0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
map(0,4) =0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
map(0,5) =0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
map(0,6) =0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
map(0,10)=0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
map(0,12)=0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
map(0,13)=0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,1,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,1,4,4,4,4,4,4,1,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,1,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0
//1(通行禁止),2(自分),3(体育館1),4(体育館前),5(),6(),7(),8(),
return
//----------------------------------------------------------------------------//
*watarirouka2_hyouji
gsel 18
title "渡り廊下マップ"
color 255,255,255:boxf
color
repeat 32
cnta=cnt
repeat 18
pos cnta*40,cnt*40
if map.cnta.cnt==1 : mes "かべ"
if map.cnta.cnt==3 : mes "体一"
if map.cnta.cnt==4 : mes "体前"
//cntb=cnt
//if taiikukanmaewatarirouka_ue == 1 and MAP(cnta,cntb)==9{
// MX=cnta*40 : MY=cntb*40
// MAP (cnta,cntb)=0
//}
//if taiikukanmaewatarirouka_sita == 1 and MAP(cnta,cntb)==7 {
// MX=cnta*40 : MY=cntb*40
// MAP (cnta,cntb)=0
//}
loop
loop
gsel 0
return
//---------------------------//マップ間の移動//----------------------------//
*map_moveme_ff
;判定作成
MPX0=(MX+MDX)/40 :MPY0=(MY+MDY)/40 :MPX1=(MX+MDX+39)/40 :MPY1=(MY+MDY+39)/40
//かべ
if MAP(MPX0,MPY0)==1 or MAP(MPX1,MPY0)==1 or MAP(MPX0,MPY1)==1 or MAP(MPX1,MPY1)==1{
MDX=0 :MDY=0
}
;マップ切り替え
if MAP(MPX0,MPY0)==3 or MAP(MPX1,MPY0)==3 or MAP(MPX0,MPY1)==3 or MAP(MPX1,MPY1)==3{ //3に入ったら体育館1へ
taiikukan1_sita=1
//goto *watarirouka2_kakuninn
}
if MAP(MPX0,MPY0)==4 or MAP(MPX1,MPY0)==4 or MAP(MPX0,MPY1)==4 or MAP(MPX1,MPY1)==4 { //4に入ったら体育館前へ
taiikukanmae_ue=1
//goto *watarirouka2_kakuninn
}
return
//-------------//体育館前渡り廊下とキャラクターの画像//---------------------------------------
*watarirouka2_background_character
pos 0,0
gcopy 18,0,0,1280,720 ;体育館前渡り廊下
pos MX,MY
celput 6,2
return
//---------------------------------------------------------------------------------------------//
/**watarirouka2_kakuninn
taiikukanmaewatarirouka_ue = 0 :taiikukanmaewatarirouka_sita = 0
if taiikukan1_sita: goto *taiikukann1
if taiikukanmae_ue: goto *taiikukanmae*/
//--------//体育館1//----------------
*taiikukann1 ; 体育館1
if taiikukan1_sita{
MDX=0 : MDY=0 : MX= 13*40: MY=13*40
}
//フラグがごちゃごちゃしているので全部0にする
taiikukanmae_ue=0
taiikukanmae_hidari=0
taiikukan1_migi=0
taiikukan1_sita=0
taiikukan2_sita=0
taiikukanmaewatarirouka_sita=0
taiikukanmaewatarirouka_ue=0
watariroukahidari_hidari=0
gosub *taiikukan1_map
gosub *taiikukan1_hyouji
while;体育館1繰り返し
redraw 0
gosub *ryuuyou2
gosub *map_moveme_gg
//他と同じ
if taiikukanmaewatarirouka_ue: goto *watarirouka2
gosub *ryuuyou3
gosub *taiikukan1_background_character
redraw 1
title "体育館1: MX="+MX+":MY="+MY+" MDX="+MDX+" MDY="+MDY
await 70
wend
//-------------//体育館1//---------------------------------------
*taiikukan1_map
dim MAP,32,18
//1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2
Map(0,0) =1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1
map(0,1) =1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
map(0,2) =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,1
map(0,3) =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,1
map(0,4) =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,1
map(0,5) =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,1
map(0,6) =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,1
map(0,7) =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,1
map(0,8) =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,1
map(0,9) =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,1
map(0,10)=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,1
map(0,11)=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,1
map(0,12)=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,1
map(0,13)=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,1
map(0,14)=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,1
map(0,15)=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,1
map(0,16)=1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
map(0,17)=1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1
//1(通行禁止),2(自分),3(体育館1),4(体育館前),5(),6(),7(),8(),
return
//---------------------------------------------------------------------------//
*taiikukan1_hyouji
gsel 16
title "体育館1マップ"
color 255,255,255:boxf
color
repeat 32
cnta=cnt
repeat 18
//cntb=cnt
//if taiikukan1_migi = 1 and MAP(cnta,cntb)=2 {
// MX=cnta*40 : MY=cntb*40
// MAP (cnta,cntb)=0
//}
//if taiikukan1_sita = 1 and MAP(cnta,cntb)=7 {
// MX=cnta*40 : MY=cntb*40
// MAP (cnta,cntb)=0
//}
pos cnta*40,cnt*40
if map.cnta.cnt==1 : mes "かべ"
if map.cnta.cnt==3 : mes "体一"
if map.cnta.cnt==4 : mes "体前"
loop
loop
gsel 0
return
//---------------------------//マップ間の移動//----------------------------//
*map_moveme_gg
;判定作成
MPX0=(MX+MDX)/40 :MPY0=(MY+MDY)/40 :MPX1=(MX+MDX+39)/40 :MPY1=(MY+MDY+39)/40
if MAP(MPX0,MPY0)=1 or MAP(MPX1,MPY0)=1 or MAP(MPX0,MPY1)=1 or MAP(MPX1,MPY1)=1 { //1を通をらせない
MDX=0 :MDY=0
}
;マップ切り替え
//if MAP(MPX0,MPY0)=3 or MAP(MPX1,MPY0)=3 or MAP(MPX0,MPY1)=3 or MAP(MPX1,MPY1)=3 { //3に入ったら体育館2へ
// taiikukan2_sita =1
// goto *taiikukan1_kakuninn
//}
if MAP(MPX0,MPY0)=4 or MAP(MPX1,MPY0)=4 or MAP(MPX0,MPY1)=4 or MAP(MPX1,MPY1)=4{ //4に入ったら体育館前渡り廊下へ
taiikukanmaewatarirouka_ue=1
//goto *taiikukan1_kakuninn
}
return
//-------------//体育館1とキャラクターの画像//---------------------------------------
*taiikukan1_background_character
pos 0,0 : gcopy 16,0,0,1280,720 ;体育館1
pos MX,MY
celput 6,2
return
//------------------------------------------------------------------//
/**taiikukan1_kakuninn
taiikukan1_migi = 0 :taiikukan1_sita = 0
//体育館2の部分がないので
//if taiikukan2_sita = 1 { goto *taiikukan2 }
if taiikukanmaewatarirouka_ue: goto *watarirouka2*/
//--------------------------//移動時の塗りつぶしと強制停止//--------//
*ryuuyou2
color 255,255,255 : boxf
if MX\40==0 : MDX=0
if MY\40==0 : MDY=0
stick KY,15 ;カーソルキーをチェックして移動量を設定 移動ボタンの設定
if KY=1 :MDX=-10
if KY=4 :MDX=10
if KY=2 :MDY=-10
if KY=8 :MDY=10
return
//---------------------------//移動量の計算//----------------------------//
*ryuuyou3
MX+=MDX :MY+=MDY
if MX<0 : MX=0
if MX>1280 :MX=1279
if MY<0 : MY=0
if MY>720 : MY=719
return

| |
|
2015/10/27(Tue) 18:01:21|NO.72549
スクリプトには書いていませんがフラグにも不具合があったので一応修正しています。
いろいろとコメントに書いてありますがあくまでもわたしの考えなのでいろいろとおかしいかもしれません。
あくまでもわたしの考えですがわたしの直したスクリプトより一から作り直したほうがいい気がします。あくまでも私の意見です。
|
|
2015/10/27(Tue) 21:59:56|NO.72568
Noapさんありがとうございます。
「マップとマップ間のつながり(出入り口)はプログラム本体と分けて
(別ファイルにして読みこむ)」というのはテキストファイルを使うということですか?
|
|
2015/10/27(Tue) 22:18:17|NO.72569
はいそういうことです
具体的な実装までする元気はありません
|
|
2015/10/27(Tue) 22:26:12|NO.72571
ありがとうございます。
「while」と「wend」は知りませんでした。
テキストファイルを使うほうは、自分で頑張ってみます。
また質問がありましたら回答をお願いします。
|
|
2015/10/27(Tue) 22:37:56|NO.72572
たびたびすいませんが
#define MX chrpos.0 #define MY chrpos.1 #define MDX chrpos.2
#define MDY chrpos.3 #define KY chrpos.4
これは、どういった意味があるのでしょうか?
|
|
2015/10/27(Tue) 23:22:50|NO.72574
#defineは知っていると思いますがただ大文字でしたので変数名ではなく定数なのかと思い、それなら座標関係の数値は配列で管理していてそれを分かりやすくするために定数を元のスクリプトで使っているのかと思って書きました(つまり構造体風に使っているのかと思いました)。
ようするに私の勝手な解釈による産物です。
元のスクリプトでは定数ではなく普通の変数として使っているのであれば、その部分は消すか結果レポート(スクリプトがHSPのコンパイラが解釈できなかった場合に表示される)(メニューのHSPからエラー表示を選んでも表示できる)で未初期化の変数と表示されるのがいやであれば
dim MX,1
dim MY,1
dim MDX,1
dim MDY,1
dim KY,1
としてください。つまり無視してくださってかまいません。
|
|
2015/10/28(Wed) 09:55:05|NO.72579
分かりました。
ありございます。
|
|
2015/10/28(Wed) 13:27:48|NO.72580
if taiikukanmaewatarirouka_sita : goto *watarirouka2
この部分なのですが
if taiikukanmaewatarirouka_sita = 1 : goto *watarirouka2
と書かなくていいようですがどうしてでしょうか?
|
|
2015/10/28(Wed) 13:48:59|NO.72581
詳しい説明は省きますが、条件分岐は多言語では、Boolean型とか呼ばれる値を指定します。
trueとfalseのどちらかです。
でも、条件式で指定することももちろんできます。
その時は、コンパイラが内部で変換してくれます。
さて、プログラミングでは、度々変数型の変換を伴います。
そこでBooleanをintに変換すると、trueは1、falseは0となります。
条件分岐では、この2つの数字のどちらかを条件式に指定してもいいことになっています。
そこで、変数の中身が1ならと調べるぐらいなら、変数をそのまま指定したんだと思います。
プログラミングでは結構使う省略です。
|
|
2015/10/28(Wed) 19:35:22|NO.72588
ありがとうございます。
次の質問なのですが、背景画像が1280、720の大きさで
すでにある場合は、repeat32〜loopまでは
書かなくてもいいのでしょうか?
|
|
2015/10/28(Wed) 21:22:06|NO.72590
背景を画像にする場合は、通れるところと通れないところを配列にでも入れとく必要があります。
そう考えると、マップは確か生成用プログラムが標準でついていたような…。
チップはプログラムが使う画像をすり替えれば問題ないし。
|
|
2015/10/28(Wed) 21:33:45|NO.72591
元のわたしがコメントアウトした処理がどういう処理なのか元のスクリプトからはわたしは判断できないので分かりませんが、
しろさんと相談して以下の部分がいらないのであれば消していいと思います。
if taiikukanmae_ue = 1 and map(cnta,cntb)=9 { ;自分を表示
MX=cnta*40 : MY=cntb*40
map(cnta,cntb)=0
}
if taiikukanmae_migi = 1 and map(cnta,cntb)=2 {
MX=cnta*40 : MY=cntb*40
map(cnta,cntb)=0
}
どちらにしてもマップ画像を用意できているのであればわたしがその場所に書き加えた部分は消していいです。
わたしならばマップ画像は用意せずもとのマップデータから画像を並べるなどします。
kanamaruさん、しろさんの元のスクリプトをですでに配列で通れるところと通れないところは入れています。
mapedit.hspのことではないかと思います。
|
|
2015/10/30(Fri) 22:52:27|NO.72638
ありがとうございました。
|
|