それはあいつがへたれだからだぁ!

【Since 11/22_2011】へたれでヒッキーな筆者が日々の出来事や思い等を綴っていく個人運営ブログです。

マリオ風アクションゲームのマップ作成例

★スプリクト★

↑エディタにコピペすればすぐ実行できます

Yahoo知恵袋でとある質問に答えるために作った
大雑把なマリオ風アクションゲーム。

その名も『まり子』!w

雑に作ったので挙動がおかしかったりしますが、
用途がわかればそれでいいのです!


キーになってる命令は
【noteget】
【strmid】
の二つ。


追加の質問があればお答えしますので
気軽にコメント残してくださいなー
  1. 2011/11/23(水) 17:51:06|
  2. HSP
  3. | トラックバック:1
  4. | コメント:11
<<見た目がゲームになりました! | ホーム | 敵弾に角度をつけて発射する!>>

コメント

ジャンプアクションについて

前横スクロールアクションのことでダッシュで通常の移動スピード、ダッシュ時の移動スピードを変えたいのですがどうやったら帰ることができるのかわかりません。
返答待っています。お願いします。
  1. 2011/11/26(土) 12:27:02 |
  2. URL |
  3. kingozi28 #-
  4. [ 編集 ]

まちがえた

上の題名を間違えてしまいました。
ほんとは移動量の変え方です。
  1. 2011/11/26(土) 12:28:26 |
  2. URL |
  3. kingozi28 #-
  4. [ 編集 ]

移動量の変え方がわからない

前横スクロールアクションのことでダッシュで通常の移動スピード、ダッシュ時の移動スピードを変えたいのですがどうやったら帰ることができるのかわかりません。
返答待っています。お願いします。
下はURLです。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1075779885
  1. 2011/11/26(土) 12:31:37 |
  2. URL |
  3. kingozi28 #-
  4. [ 編集 ]

訪問ありです&質問の回答

kingozi28さん、こんにちは!
訪問ありがとうございますヽ(´∀`*)ノ
あのスプリクト内では変数 speed の二倍動くよう設定してます。
7行目~の変数初期化の中に speed=10 という記述があると思うのですが、その数値をいじってみてください。単純に20にするとスピードは二倍になります。
ただこのプログラムは無理やり組み込んだ感MAXなので、20でプレイした場合は普通の歩きでも氷の上にいるみたいに滑っちゃいますので、編集が必要ですね。
ダッシュの速度だけあげたい場合は40行~の speedpoint=speed*2(speedpoint=-speed*2) の数値を speed*3 や speed*4、speed+10 などとしてください。
  1. 2011/11/26(土) 13:19:51 |
  2. URL |
  3. 杉村 祐介 #biqNINaQ
  4. [ 編集 ]

改造したがわからなくなった・・・。

マップ表示で前の自分で作った横スクロールシューティングの表示方法を少し変えて貼り付けてやってみたのですがなんかのエラーかわかりませんができません。
返答待ってます。
下が貼り付けたものを加えたやつです。
randomize
buffer 1
picload "chara.bmp" ;キャラ画像の読み込み
buffer 2
picload "tikei.bmp" ;地形画像の読み込み
mmload "じゃんぐる.mp3",0
chgdisp 1,640,480 ;画面解像度を640×480に切り替え
if stat!0 :end ;切り替え失敗なら終了
bgscr 0,640,480,0,0,0 ;枠無しウィンドウを作成
gsel 0,2 ;ウィンドウを最前面に表示
mmplay 0
jump=12 ;ジャンプ力
jumptime=0 ;ジャンプしてからの時間
grab=2 ;重力(高いほど重力低い)
gcount=grab ;重力カウンター
fallmax=15 ;最高落下速度
speed=15 ;横移動スピード
MX=80 :MY=160
omx=0 ;左右移動量
omy=0 ;上下移動量
gos=0 ;地上にいるか空中にいるか
speedpoint=0 ;横移動スピード2

gosub *SETMAP
WORLDX=-480 ;スクロール座標
*DRAWLOOP ;メインループ
redraw 0
redraw 0
MPSHIFT=WORLDX\16
MPSTART=WORLDX/16
color 0,0,0 :boxf 0,0,639,479
gosub *DRAWMAP ;地形描画呼びだし

pos MX,MY ;自キャラ表示
gcopy 1,0,0,32,32
gosub *ZIBUNNSYORI
;スクロール
WORLDX=WORLDX+4
goto *DRAWLOOP
*ZIBUNNSYORI;自分の処理
stick key,5
if key&1
speedpoint=-speed
}
if key&4
speedpoint=speed
}
;if key&4
; speedpoint=speed*10
;}
if speedpoint>0:omx+speedpoint/10:speedpoint-1
if speedpoint<0:omx+speedpoint/10:speedpoint+1
if MY=(scy-osize-1)
if key&16
if key&16
getkey key,32
if key=1
if jumptime!0:jumptime-1
gcount--
if gos
if gcount=0 {
omy++ ;下方向移動量+1
gcount=grab ;カウンターを元に戻す
}
if omy>fallmax
MX+omx
omx=0 ;横移動量を0に戻す
;/■/■/■マップ読み込み/■/■/■
*SETMAP
MAPLENG=512
sdim MAPS,MAPLENG*30
bload "yokomap.txt",MAPS,MAPLENG*30
return
;/■/■/■マップ表示/■/■/■
*DRAWMAP
repeat 20
RCNT=cnt
repeat 41
if MPSTART-40+cnt<0 :continue
C=peek(MAPS,RCNT*MAPLENG+MPSTART-40+cnt)
if (C>'0') and (C<'A'){
pos cnt*16-MPSHIFT,RCNT*16
gcopy 2,(C-'1')*16,0,16,16
}
loop
loop
return
  1. 2011/11/26(土) 15:44:08 |
  2. URL |
  3. kingozi28 #-
  4. [ 編集 ]

考え方は伝わってますね!

とりあえずYahoo知恵袋でも言ったと思いますが、スプリクト全載せは良くないです。せめてコピペしたらすぐ実行できる状態が望ましいと思います。
で、読み込みエラーが出るところをコメントアウトして実行してみたのですが、yokomap.txtを自分が持っていないのでなんともいえない状態でした。
とりあえず言える事は、
・メインループの中にawaitを入れましょう――PCが固まってびっくりしました。
・エラーログを確認しましょう――ネットがあればすぐ確認できるし、HSPスプリクトエディタのメニュー⇒マニュアル目次からも確認できます。
・screenで初期化しましょう――フルスクリーンで実行されるのでエラー表示が確認できないです。スプリクトを完成させてから最後に全画面表示に設定するほうがデバッグも楽だと思います。
とりあえずテキストとしてマップを保存⇒それを一文字ずつ読み込んで表示という考え方が伝わっていてほっとしました。後は自力でがんばってください!
  1. 2011/11/26(土) 16:15:26 |
  2. URL |
  3. 杉村 祐介 #biqNINaQ
  4. [ 編集 ]

ありがとうございます

いろいろ改善してみてやってみたのですが起動画面が真っ白になりましいた。エラーは出てないようです。
少しでもわかったらなぜか教えてもらえるとうれしいです。自力で解決できるよう頑張ってみます。本当にありがとうございました。
  1. 2011/11/26(土) 18:09:11 |
  2. URL |
  3. kingozi28 #-
  4. [ 編集 ]

引き続きF5連打で!w

HSPはホントにデバッグしやすいですから、めげずにお互いがんばりましょーヽ(´∀`*)ノ
かくいう自分も一文変えたらF5キー!ですからw
  1. 2011/11/26(土) 20:48:39 |
  2. URL |
  3. 杉村 祐介 #-
  4. [ 編集 ]

少し改造してゴールを作成したいのですが...

お初ですw
えーと、ゴールを作成したいのですが、
notesel map
map=" \n"
map+"00000 \n"
map+"00 0 \n"
map+"0 0 0 \n"
map+"000000 0 0 \n"
map+"0 \n"
map+"00 0000000000 \n"
map+"0 0 0 \n"
map+"000000000 0000 000 \n"
map+"0000000000000000 000 \n"
map+"0000000000000000 00 \n"
map+"0 00000000000000 00 \n"
map+"0 00000\n"
map+"0000000000000000 00000\n"
;
screen 0,700,470
;
;
;
x=0; 自分x値
y=0; 自分y値
*main
repeat
color 0,100,0:boxf; 背景塗りつぶし
;
noteget gyou,(y+20)/32; 自分の上のマスを取得
masu=strmid(gyou,(x+10)/32,1); ↑のつづき
title "ゲーム"
;
stick key,15
gosub,*mapwrite
gosub,*jiki
;
redraw 1:await 25:redraw 0
loop
;
;
;
*jiki
color 255,0,0
boxf x,y,x+20,y+32; 自分表示
;
if key&1:{;横移動
noteget gyou,y/32; 自分の左隣のますを取得
masu=strmid(gyou,(x+16-1)/32,1); ↑のつづき
if masu=" ":x-5
}
if key&4:{;横移動
noteget gyou,y/32; 自分の右隣のますを取得
masu=strmid(gyou,(x+16+1)/32,1); ↑のつづき
if masu=" ":x+5
}
;
;
if rakka<1:rakka+10;落下速度
noteget gyou,(y+32)/32; 自分のしたのマスを取得
masu=strmid(gyou,(x+16)/32,1); ↑のつづき
if masu="0":yuka=1:y=y/32*32:rakka=0:else:yuka=0; もしマスが床なら落下しないよう設定
if yuka=0:y+rakka;実際の落下
;
if key&16:if yuka=1:jump=20
if jump>0:{
noteget gyou,(y-20)/32; 自分の上のマスを取得
masu=strmid(gyou,(x+10)/32,1); ↑のつづき
if masu!" ":y=y/32*32:jump=1
jump-1
y-jump
}
;
if x<0:x=0
if y<0:y=0
if x>640:x=640
;
;
;埋まってしまった場合の救済
noteget gyou,y/32; 自分のマスを取得
masu=strmid(gyou,(x+16)/32,1); ↑のつづき
if masu="0":{
if (x+16)/32*32>x+16:x-1
if (x+16)/32*32<x+16:x+1
}
;
;
;
if y>470:dialog "MISS!" ,1, "GAME":end
;
;
if y>370:dialog "クリア!":end
return
*mapwrite
repeat 15;高さの回数ループ
noteget gyou,cnt
takasa=cnt
repeat 22;幅の回数ループ
masu=strmid(gyou,cnt,1)
color 255,10,0
if masu="0":color 240,110,0
if masu=" ":color
boxf cnt*32,takasa*32,cnt*32+32,takasa*32+32
loop
loop
return
で、ゴールを作成したのですが、高さ、幅どちらかしか認識してくれませんOrz
どうしたら高さ、幅どちらも設定できますか?
  1. 2013/05/21(火) 21:11:21 |
  2. URL |
  3. Cydia.hatena #-
  4. [ 編集 ]

訪問ありがとうございます(*´ω`*)
長くなるので新規記事にて回答いたします。
HSPから若干離れている点、
過去の記事のスクリプトなのでおかしなことを言い出すかもしれませんが
ご容赦くださいな(;´∀`)
  1. 2013/05/21(火) 21:21:42 |
  2. URL |
  3. 杉村祐介 #biqNINaQ
  4. [ 編集 ]

ういww
  1. 2013/05/21(火) 21:35:26 |
  2. URL |
  3. Cydia.hatena #-
  4. [ 編集 ]

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://hgfactory2011.blog.fc2.com/tb.php/5-d9306d34
この記事にトラックバックする(FC2ブログユーザー)

マリオ風アクションゲームの続き

過去記事「マリオ風アクションゲームのマップ作成例」へのコメントに対する補足回答記事になります。いや久しぶりにHSPやるわぁ(;´∀`)大丈夫かな?w
  1. 2013/05/21(火) 21:50:43 |
  2. それはあいつがへたれだからだぁ!

ブログ内検索

カレンダー

03 | 2024/04 | 05
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 - - - -

カテゴリ

【Infomation】 (2)
日記 (758)
感想 (10)
ゲーム (144)
模型 (180)
Adobe (3)
HSP (25)
創作 (53)
遊戯王 (125)
RGSS3 (9)
過去の作品 (9)

最新記事

総記事数:

プロフィール

杉村 祐介

Author:杉村 祐介