HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
0508
高菜 (投稿者削除)2解決


高菜

リンク

2017/5/8(Mon) 23:36:12|NO.79615

この記事は投稿者により削除されました。
2017/5/14(Sun) 00:29:50



この記事に返信する


Agrif軍 クロノス

リンク

2017/5/9(Tue) 21:17:27|NO.79619

サンプル作ってみたよ

    //==================================================== // // 名前:格闘ゲーム.hsp // // ■操作方法 // ・左右のキーで移動 // ・[スペース]キーでジャンプ // ・[Enter]キーで攻撃 // ※自分に合った操作方法で試して下さい^^ //  上の操作方法は自分にとって合う操作です。 // // ・画像が無い場合は?が表示されます。 // ・当たり判定はまだ作っていません。すいません!!^^; // //==================================================== buffer 1 exist "char1.bmp" if strsize != -1 { picload "char1.bmp" } else { font "メイリオ",100,1 color 50,50,50 boxf 0,0,150,150 color 255,255,255 pos 23,10 : mes "?" } buffer 2 exist "char2.bmp" if strsize != -1 { picload "char2.bmp" } else { font "メイリオ",100,1 color 50,50,50 boxf 0,0,150,150 color 255,255,255 pos 23,10 : mes "?" } //==================================================== // 変数管理 //==================================================== randomize mx = 50 my = 300 ex = 800 ey = 300 //==================================================== // ウィンドウの初期化や設定 //==================================================== screen 0,1000,500,0,(ginfo(20)/2-1000/2),(ginfo(21)/2-500/2) title "格闘ゲーム" //==================================================== // 格闘ゲームのメインループ //==================================================== repeat 3 redraw 0 gosub *back_draw gosub *char_draw gosub *enemy_draw color 255,255,255 font "メイリオ",50,0 pos 500,100 : mes 3-cnt redraw 1 wait 100 loop redraw 0 gosub *back_draw gosub *char_draw gosub *enemy_draw color 255,255,255 font "メイリオ",50,0 pos 420,100 : mes "スタート" redraw 1 wait 100 //==================================================== // 格闘ゲームのメインループ //==================================================== repeat -1 redraw 0 color 255,255,255 : boxf gosub *back_draw gosub *char_move gosub *char_draw gosub *char_attack gosub *char_cheak gosub *enemy_draw gosub *enemy_move gosub *enemy_attack gosub *enemy_cheak gosub *message_draw redraw 1 await 16 loop //==================================================== // 背景を描画 //==================================================== *back_draw color 0,128,255 : boxf color 0,128,0 boxf 0,450,1000,460 color 128,0,0 boxf 0,460,1000,500 return //==================================================== // 自機を描画 //==================================================== *char_draw pos mx,my gcopy 1,0,0,150,150 return //==================================================== // 自機を操作 //==================================================== *char_move stick move, 5 if ( move & 1 ) : mx = mx - ( 5 + speed ) : m_muki = 0 if ( move & 4 ) : mx = mx + ( 5 + speed ) : m_muki = 1 getkey dash,16 if dash & 1 : speed = 3 : else : speed = 0 getkey mjump,32 if ( mjump & 1 ) & jump = 0 { mvy = -10.0 jump = 1 } if jump = 1 { mvy = mvy + 0.2 my = my + mvy } if mx < 0 : mx = 0 if mx > 850 : mx = 850 if my > 300 { jump = 0 my = 300 mvy = 0.0 } return //==================================================== // 自機の攻撃 //==================================================== *char_attack stick atk,32 if atk & 32 { color 255,255,0 if m_muki = 0 { boxf (mx-150),(my+30),(mx-150+149),(my+30+20) } else { boxf (mx+150),(my+30),(mx+150+150),(my+30+20) } } return //==================================================== // 自機の当たり判定 //==================================================== *char_cheak return //==================================================== // 敵を描画 //==================================================== *enemy_draw pos ex,ey gcopy 2,0,0,150,150 return //==================================================== // 敵を操作 //==================================================== *enemy_move ecnt = ecnt + 1 if mf1 = 0 or mf2 = 0 : mover = rnd(100) if rnd(100) <= 10 : espped = 3 : else : espeed = 0 if mover >= 90 or mf1 = 1 : ex = ex + ( 5 + espped ) { e_muki = 0 mf1 = 1 if ex >= mx { if ecnt \ ( 16 * rnd(10) + 1 ) = 0 { mf1 = 0 } } else { if ecnt \ ( 16 * rnd(30) + 1 ) = 0 { mf1 = 0 } } } if mover <= 10 or mf2 = 1 : ex = ex - ( 5 + espped ) { e_muki = 1 mf2 = 1 if ex <= mx { if ecnt \ ( 16 * rnd(10) + 1 ) = 0 { mf2 = 0 } } else { if ecnt \ ( 16 * rnd(30) + 1 ) = 0 { mf2 = 0 } } } if ( rnd(20) = 0 ) & ejump = 0 { evy = -10.0 ejump = 1 } if ejump = 1 { evy = evy + 0.2 ey = ey + evy } if ex < 0 : ex = 0 if ex > 850 : ex = 850 if ey > 300 { ejump = 0 ey = 300 evy = 0.0 } return //==================================================== // 敵の攻撃 //==================================================== *enemy_attack if rnd(25) = 0 or eatkf = 1 { eatkf = 1 if eatkf = 1 { if ecnt \ ( rnd(40) * 16 + 1 ) = 0 { eatkf = 0 } } color 255,255,0 if e_muki = 0 { boxf (ex-150),(ey+30),(ex-150+149),(ey+30+20) } else { boxf (ex+150),(ey+30),(ex+150+150),(ey+30+20) } } return //==================================================== // 敵の当たり判定 //==================================================== *enemy_cheak return //==================================================== // 文字を描画 //==================================================== *message_draw font "メイリオ",20,0 color 255,255,255 pos 10,10 : mes "HP:" + m_hp return
どう?



高菜

リンク

2017/5/10(Wed) 00:43:18|NO.79626

おお...ありがとうございます、助かります。
これを参考に作ってみます。



ONION software Copyright 1997-2023(c) All rights reserved.