|
 |
|
2016/7/10(Sun) 23:50:11|NO.76140
まずこんな関数を作りました、グラフィックロード関数です
//グラフィックロード/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*FuncLoadGraph
celload "./image/player/face0.png" , hPLAYER_FACE(0)
celload "./image/player/face.png" , hPLAYER_FACE(1)
celload "./image/player/body0.png" , hPLAYER_BODY(0)
celload "./image/player/body.png" , hPLAYER_BODY(1)
celload "./image/player/0hp.png" , hCHARA_MAKING(0)
celload "./image/player/1str.png" , hCHARA_MAKING(1)
celload "./image/player/2mstr.png" , hCHARA_MAKING(2)
celload "./image/player/3def.png" , hCHARA_MAKING(3)
celload "./image/player/4mdef.png" , hCHARA_MAKING(4)
l_str = "./image/enemy/enemyx.png"
repeat g_max_enemy, 0 : l_str = strf("./image/enemy/enemy%d.png", cnt): celload l_str, hENEMY(cnt) : loop
return
これをメインループの前に呼び出しています
//初期化/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
title "計算KING" //タイトル
//gosub *FuncLoadGraph //グラフィックロード ←ロード関数をコメントアウト
gosub *FuncInitPlayer //プレイヤー初期化
gosub *FuncInitEnemy //敵初期化
/*メインループ**************************************************************************************************************************************/
/***************************************************************************************************************************************************/
*GameMainLoop
redraw 0 //描画モード0
//分岐
if g_scene == BATTLE : gosub *FuncBattle // : else goto *my_jump //戦闘
if g_scene == CHARA_MAKING : gosub *FuncCharaMaking // : else goto *my_jump //キャラクタメイキング
if g_scene == ADV : gosub *FuncADV // : else goto *my_jump //ADVパート
if g_scene == TTITLE : gosub *FuncTitle // : else goto *my_jump //タイトル
if g_scene == ENDING : gosub *FuncEnding // : else goto *my_jump //エンディング
if g_scene == GAME_OVER : gosub *FuncGameOver // : else goto *my_jump //ゲームオーバー
if g_scene == END_GAME : end //ゲーム終了
if g_scene ! BATTLE && g_scene ! CHARA_MAKING && g_scene ! ADV && g_scene ! TTITLE && g_scene != ENDING && g_scene ! GAME_OVER && g_scene ! ENDGAME : pos 0, 0 : print "例外処理です"
redraw 1 //描画モード1
await 16 //一定時間待つ
goto *GameMainLoop
「gosub *FuncLoadGraph //グラフィックロード」
これをコメントアウトするとウインドウは閉じませんが、コメントアウトしなかったら
何故かメインループがループせず?一瞬でウインドウが閉じられてしまいます。その理由が
解りません。ご教示お願いします。
一応、DXライブラリでゲーム作ってた時期があるんですが、勝手が違って本当に解らないのです。
よろしくお願いします。ほかに理由がありそうなら、後ほどソースを全部載せますが。やめた方がいいかな。

| |
|
2016/7/11(Mon) 07:48:34|NO.76143
関数でもない単なる gosub で呼び出されるだけです。
それに gosub する前に実行されています。
サブルーチンコールは end や stop の後ろなど、スクリプトの最後に
まとめて記載するのが一般的です。
|
|
2016/7/13(Wed) 00:11:04|NO.76169
アドバイスを聞いて色々試しましたがやっぱり解りません
HSPの文法そのものが参考書を読んでも理解できてない?
あと自分はもう随分オッサンなので適応力が…
何故、returnが弾かれるかが解らないです。
あとreturnをコメントアウトしてもオーバーフローと弾かれるのも
本当に解りません。どなたか詳しい方、ご教示頂けないでしょうか?
以下はソース全部です。分割コンパイルしてません。
//プリプロセッサ命令/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//実行ファイル
#packopt name "CalculateKING"
//グラフィック
#pack "./image/player/face0.png"
#pack "./image/player/face.png"
#pack "./image/player/body0.png"
#pack "./image/player/body.png"
#pack "./image/player/0hp.png"
#pack "./image/player/1str.png"
#pack "./image/player/2mstr.png"
#pack "./image/player/3def.png"
#pack "./image/player/4mdef.png"
#pack "./image/enemy/enemy0.png"
#pack "./image/enemy/enemy1.png"
#pack "./image/enemy/enemy2.png"
#pack "./image/enemy/enemy3.png"
#pack "./image/enemy/enemy4.png"
//シーン
#enum TTITLE = 0 //タイトル画面
#enum BATTLE //戦闘
#enum ENDING //エンディング
#enum GAME_OVER //ゲームオーバー
#enum END_GAME //ゲーム終了
//パラメータ
#enum SEED = 0 //シード
#enum MAX_HP //最大HP
#enum HP //HP
#enum HP0 //基本HP
#enum HPP //HP補正
#enum SSTR //攻撃力
#enum STR0 //基本攻撃力
#enum STRP //攻撃力補正
#enum MSTR //"カウンター攻撃力" 及び "敵魔法攻撃力"
#enum MSTR0 //"基本カウンター攻撃力" 及び "敵基本カウンター攻撃力"
#enum MSTRP //"カウンター攻撃力補正" 及び "敵魔法攻撃力補正"
#enum DEF //防御力
#enum DEF0 //基本防御力
#enum DEFP //防御力補正
#enum MDEF //魔法防御力
#enum MDEF0 //基本魔法防御力
#enum MDEFP //魔法防御力補正
//大域変数///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//グラフィックハンドル
dim hPLAYER_FACE, 2 //顔
dim hPLAYER_BODY, 2 //身体
dim hCHARA_MAKING, 5 //キャラクタメイキング
g_max_emnemy = 5 //敵の数最大値
dim hENEMY, g_max_emnemy //敵グラフィック
//シーン
g_scene = TTITLE //最初はタイトル画面
//プレイヤーパラメータ
dim g_player, 17
//敵パラメータ
dim g_enemy, g_max_emnemy, 17
//グラフィックロード/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*FuncLoadGraph
celload "./image/player/face0.png" , hPLAYER_FACE(0)
celload "./image/player/face.png" , hPLAYER_FACE(1)
celload "./image/player/body0.png" , hPLAYER_BODY(0)
celload "./image/player/body.png" , hPLAYER_BODY(1)
celload "./image/player/0hp.png" , hCHARA_MAKING(0)
celload "./image/player/1str.png" , hCHARA_MAKING(1)
celload "./image/player/2mstr.png" , hCHARA_MAKING(2)
celload "./image/player/3def.png" , hCHARA_MAKING(3)
celload "./image/player/4mdef.png" , hCHARA_MAKING(4)
l_str = "./image/enemy/enemyx.png"
repeat g_max_enemy, 0 : l_str = strf("./image/enemy/enemy%d.png", cnt): celload l_str, hENEMY(cnt) : loop
return
//プレイヤー初期化///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*FuncInitPlayer
//基本
g_player(SEED) = 100
g_player(MAX_HP) = 20
g_player(HP0) = g_player(MAX_HP)
g_player(STR0) = 20
g_player(MSTR0) = 20
g_player(DEF0) = 20
g_player(MDEF0) = 20
//補正
g_player(HPP) = 0
g_player(STRP) = 0
g_player(MSTRP) = 0
g_player(DEFP) = 0
g_player(MDEFP) = 0
//値
g_player(HP) = g_player(HP0) + g_player(HPP)
g_player(SSTR) = g_player(STR0) + g_player(STRP)
g_player(MSTR) = g_player(MSTR0) + g_player(MSTRP)
g_player(DEF) = g_player(DEF0) + g_player(DEFP)
g_player(MDEF) = g_player(MDEF0) + g_player(MDEFP)
return
//敵初期化///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*FuncInitEnemy
return
//タイトル///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*FuncTitle
pos 0, 0 : celput hPLAYER_BODY(1)
pos 0, 0 : print "Title"
pos 0, 20 : gmode 2 : celput hPLAYER_FACE(1)
return
//戦闘///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*FuncBattle
pos 0, 0 : celput hPLAYER_BODY(1)
pos 0, 0 : print "Battle"
pos 0, 20 : gmode 2 : celput hPLAYER_FACE(1)
return
//エンディング///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*FuncEnding
pos 0, 0 : celput hPLAYER_BODY(1)
pos 0, 0 : print "Ending"
pos 0, 20 : gmode 2 : celput hPLAYER_FACE(1)
return
//ゲームオーバー/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*FuncGameOver
pos 0, 0 : celput hPLAYER_BODY(1)
pos 0, 0 : print "GameOver"
pos 0, 20 : gmode 2 : celput hPLAYER_FACE(1)
return
/*メインループ**************************************************************************************************************************************/
/***************************************************************************************************************************************************/
*GameMainLoop
//繰り返し
while
redraw 0 //描画モード0
//分岐
switch g_scene
case BATTLE //戦闘
gosub *FuncBattle
swbreak
case TTITLE //タイトル
gosub *FuncTitle
swbreak
case ENDING //エンディング
gosub *FuncEnding
swbreak
case GAME_OVER //ゲームオーバー
gosub *FuncGameOver
swbreak
case END_GAME //ゲーム終了
end
swbreak
default //例外処理
pos 0, 0 : print "例外処理です"
swbreak
swend
redraw 1 //描画モード1
await 16 //一定時間待つ
wend
return
/***************************************************************************************************************************************************/
/***************************************************************************************************************************************************/
stop
//初期化/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
title "計算KING" //タイトル
gosub *FuncLoadGraph //グラフィックロード
gosub *FuncInitPlayer //プレイヤー初期化
gosub *FuncInitEnemy //敵初期化
//メインループ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
gosub *GameMainLoop //メインループ

| |
|
2016/7/13(Wed) 00:14:12|NO.76171
質問には関係ないですが、スクリプトは説明4に書いてあるタグで挟んだほうがいいですよ
|
|
2016/7/13(Wed) 00:57:59|NO.76172
>HSP初心者 さん
HSPの振る舞いが分かっていなくて五里霧中なのでしょう。
HSPにおける「ラベル」はCやFortanにおける「関数,サブルーチン」とはちょっと違います。
HSPはランタイム起動後にコードの1行目から順に実行していきます(若干間違いがあるけど説明において致命的ではないのでこれでいく)。
インタプリタは「ラベル」に出会っても迂回したりせず、そのまま突っ込んで実行していきますから、C言語の要領でサブルーチンを冒頭に置いてしまうとお分かりの通りえらいことになります。
それと、HSPはモジュールを使わない限り全部グローバル空間になってしまいますので、サブルーチン内での変数操作には注意が必要です。
メインルーチンとサブルーチンで役割が違うくせに名前が同じの変数など作ろうものなら、これまたお分かりの通りえらいことになります。
初心者とか言いながら変数名がまともだったりするあたり、それなりのセンスと他言語経験をお持ちのようで。
オッサンとか適応力とかの問題ではなく、単にHSPの、言ってしまえばくだらんルールにハマっているだけです。
|
|
2016/7/13(Wed) 06:41:29|NO.76173
お返事ありがとうございます。出直してきます。
|
|
2016/7/13(Wed) 07:06:02|NO.76174
書き方がわるかったです。
サブルーチンコール部分では無くて、される部分でした。
>>HSPの文法そのものが参考書を読んでも理解できてない?
参考書でも同様に書いているはずです。
固定観念で「こうじゃろう」と決めつけるとハマりますよ。
そういう部分がいくつかあります。
サンプルやヘルプ、F1での説明にざっと目を通しましょう。
|
|
2016/7/13(Wed) 22:41:30|NO.76186
試行錯誤の末、何とか解決しました。ありがとうございましたm(_ _)m
//プリプロセッサ命令/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//実行ファイル
#packopt name "CalculateKING"
//グラフィック
#pack "./image/player/fighter.bmp"
#pack "./image/player/fighter00.bmp"
#pack "./image/player/fighter01.bmp"
#pack "./image/player/fighter02.bmp"
#pack "./image/player/fighter03.bmp"
#pack "./image/player/fighter04.bmp"
#pack "./image/player/fighter05.bmp"
#pack "./image/player/fighter06.bmp"
#pack "./image/player/fighter07.bmp"
#pack "./image/enemy/enemy00.bmp"
#pack "./image/enemy/enemy01.bmp"
#pack "./image/enemy/enemy02.bmp"
#pack "./image/enemy/enemy03.bmp"
#pack "./image/enemy/enemy04.bmp"/*
#pack "./image/enemy/enemy05.bmp"
#pack "./image/enemy/enemy06.bmp"
#pack "./image/enemy/enemy07.bmp"
#pack "./image/enemy/enemy08.bmp"
#pack "./image/enemy/enemy09.bmp"
#pack "./image/enemy/enemy10.bmp"
#pack "./image/enemy/enemy11.bmp"
#pack "./image/enemy/enemy12.bmp"
#pack "./image/enemy/enemy13.bmp"
#pack "./image/enemy/enemy14.bmp"
#pack "./image/enemy/enemy15.bmp"
#pack "./image/enemy/enemy16.bmp"
#pack "./image/enemy/enemy17.bmp"
#pack "./image/enemy/enemy18.bmp"
#pack "./image/enemy/enemy19.bmp"
#pack "./image/enemy/enemy20.bmp"
#pack "./image/enemy/enemy21.bmp"
#pack "./image/enemy/enemy22.bmp"
#pack "./image/enemy/enemy23.bmp"
#pack "./image/enemy/enemy24.bmp"*/
//シーン
#enum TTITLE = 0 //タイトル画面
#enum BATTLE //戦闘
#enum ENDING //エンディング
#enum GAME_OVER //ゲームオーバー
#enum END_GAME //ゲーム終了
//パラメータ
#enum SEED = 0 //シード
#enum MAX_HP //最大HP
#enum HP //HP
#enum HP0 //基本HP
#enum HPP //HP補正
#enum SSTR //攻撃力
#enum STR0 //基本攻撃力
#enum STRP //攻撃力補正
#enum MSTR //"カウンター攻撃力" 及び "敵魔法攻撃力"
#enum MSTR0 //"基本カウンター攻撃力" 及び "敵基本カウンター攻撃力"
#enum MSTRP //"カウンター攻撃力補正" 及び "敵魔法攻撃力補正"
#enum DEF //防御力
#enum DEF0 //基本防御力
#enum DEFP //防御力補正
#enum MDEF //魔法防御力
#enum MDEF0 //基本魔法防御力
#enum MDEFP //魔法防御力補正
//大域変数///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//シーン
g_scene = TTITLE //最初はタイトル画面
//プレイヤーパラメータ
dim g_player, 17
//敵パラメータ
dim g_enemy, g_max_emnemy, 17
//初期化/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
title "計算KING" //タイトル
gosub *FuncLoadGraph //グラフィックロード
gosub *FuncInitPlayer //プレイヤー初期化
gosub *FuncInitEnemy //敵初期化
/*メインループ**************************************************************************************************************************************/
/***************************************************************************************************************************************************/
*GameMainLoop
redraw 0 //描画モード0
//分岐
switch g_scene
case BATTLE //戦闘
gosub *FuncBattle
swbreak
case TTITLE //タイトル
gosub *FuncTitle
swbreak
case ENDING //エンディング
gosub *FuncEnding
swbreak
case GAME_OVER //ゲームオーバー
gosub *FuncGameOver
swbreak
case END_GAME //ゲーム終了
end
swbreak
default //例外処理
pos 0, 0 : print "例外処理です"
swbreak
swend
redraw 1 //描画モード1
await 16 //一定時間待つ
goto *GameMainLoop
/***************************************************************************************************************************************************/
/***************************************************************************************************************************************************/
//グラフィックロード/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*FuncLoadGraph
celload "./graph/player/fighter.bmp", 1 : celdiv 1, 32, 48
celload "./graph/player/fighter00.bmp", 2 : celdiv 2, 144, 96
celload "./graph/player/fighter01.bmp", 3 : celdiv 3, 144, 96
celload "./graph/player/fighter02.bmp", 4 : celdiv 4, 144, 96
celload "./graph/player/fighter03.bmp", 5 : celdiv 5, 144, 96
celload "./graph/player/fighter04.bmp", 6 : celdiv 6, 144, 96
celload "./graph/player/fighter05.bmp", 7 : celdiv 7, 144, 96
celload "./graph/player/fighter06.bmp", 8 : celdiv 8, 144, 96
celload "./graph/player/fighter07.bmp", 9 : celdiv 9, 144, 96
dim hFIGHTER, 9 //グラフィックハンドル
repeat 9, 0 : hFIGHTER(cnt) = cnt + 1 :loop
celload "./graph/enemy/enemy00.bmp", 10
celload "./graph/enemy/enemy01.bmp", 11
celload "./graph/enemy/enemy02.bmp", 12
celload "./graph/enemy/enemy03.bmp", 13
celload "./graph/enemy/enemy04.bmp", 14
/* celload "./graph/enemy/enemy05.bmp", 15
celload "./graph/enemy/enemy06.bmp", 16
celload "./graph/enemy/enemy07.bmp", 17
celload "./graph/enemy/enemy08.bmp", 18
celload "./graph/enemy/enemy09.bmp", 19
celload "./graph/enemy/enemy10.bmp", 20
celload "./graph/enemy/enemy11.bmp", 21
celload "./graph/enemy/enemy12.bmp", 22
celload "./graph/enemy/enemy13.bmp", 23
celload "./graph/enemy/enemy14.bmp", 24
celload "./graph/enemy/enemy15.bmp", 25
celload "./graph/enemy/enemy16.bmp", 26
celload "./graph/enemy/enemy17.bmp", 27
celload "./graph/enemy/enemy18.bmp", 28
celload "./graph/enemy/enemy19.bmp", 29
celload "./graph/enemy/enemy20.bmp", 30
celload "./graph/enemy/enemy21.bmp", 31
celload "./graph/enemy/enemy22.bmp", 32
celload "./graph/enemy/enemy23.bmp", 33
celload "./graph/enemy/enemy24.bmp", 34*/
dim hENEMY, 5 //グラフィックハンドル
repeat 5, 0 : hENEMY(cnt) = cnt + 10 :loop
return
//プレイヤー初期化///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*FuncInitPlayer
//基本
g_player(SEED) = 100
g_player(MAX_HP) = 20
g_player(HP0) = g_player(MAX_HP)
g_player(STR0) = 20
g_player(MSTR0) = 20
g_player(DEF0) = 20
g_player(MDEF0) = 20
//補正
g_player(HPP) = 0
g_player(STRP) = 0
g_player(MSTRP) = 0
g_player(DEFP) = 0
g_player(MDEFP) = 0
//値
g_player(HP) = g_player(HP0) + g_player(HPP)
g_player(SSTR) = g_player(STR0) + g_player(STRP)
g_player(MSTR) = g_player(MSTR0) + g_player(MSTRP)
g_player(DEF) = g_player(DEF0) + g_player(DEFP)
g_player(MDEF) = g_player(MDEF0) + g_player(MDEFP)
return
//敵初期化///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*FuncInitEnemy
return
//タイトル///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*FuncTitle
pos 0, 0 : print "Title"
celput hFIGHTER(0), 0
return
//戦闘///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*FuncBattle
pos 0, 0 : print "Battle"
return
//エンディング///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*FuncEnding
pos 0, 0 : print "Ending"
return
//ゲームオーバー/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*FuncGameOver
pos 0, 0 : print "GameOver"
return

| |
|
2016/7/13(Wed) 22:53:10|NO.76187
celloadはバッファIDを-1にした場合statに使用したバッファIDが返る
それと、ラベルには印としての意味しかないので
ラベル以下も普通に実行される
なのでstop以降等通常通らない場所に置く必要がある
修正してみた(実行はしてない)
//プリプロセッサ命令/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//実行ファイル
#packopt name "CalculateKING"
//グラフィック
#pack "./image/player/face0.png"
#pack "./image/player/face.png"
#pack "./image/player/body0.png"
#pack "./image/player/body.png"
#pack "./image/player/0hp.png"
#pack "./image/player/1str.png"
#pack "./image/player/2mstr.png"
#pack "./image/player/3def.png"
#pack "./image/player/4mdef.png"
#pack "./image/enemy/enemy0.png"
#pack "./image/enemy/enemy1.png"
#pack "./image/enemy/enemy2.png"
#pack "./image/enemy/enemy3.png"
#pack "./image/enemy/enemy4.png"
//シーン
#enum TTITLE = 0 //タイトル画面
#enum BATTLE //戦闘
#enum ENDING //エンディング
#enum GAME_OVER //ゲームオーバー
#enum END_GAME //ゲーム終了
//パラメータ
#enum SEED = 0 //シード
#enum MAX_HP //最大HP
#enum HP //HP
#enum HP0 //基本HP
#enum HPP //HP補正
#enum SSTR //攻撃力
#enum STR0 //基本攻撃力
#enum STRP //攻撃力補正
#enum MSTR //"カウンター攻撃力" 及び "敵魔法攻撃力"
#enum MSTR0 //"基本カウンター攻撃力" 及び "敵基本カウンター攻撃力"
#enum MSTRP //"カウンター攻撃力補正" 及び "敵魔法攻撃力補正"
#enum DEF //防御力
#enum DEF0 //基本防御力
#enum DEFP //防御力補正
#enum MDEF //魔法防御力
#enum MDEF0 //基本魔法防御力
#enum MDEFP //魔法防御力補正
//大域変数///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//グラフィックハンドル
dim hPLAYER_FACE, 2 //顔
dim hPLAYER_BODY, 2 //身体
dim hCHARA_MAKING, 5 //キャラクタメイキング
g_max_emnemy = 5 //敵の数最大値
dim hENEMY, g_max_emnemy //敵グラフィック
//シーン
g_scene = TTITLE //最初はタイトル画面
//プレイヤーパラメータ
dim g_player, 17
//敵パラメータ
dim g_enemy, g_max_emnemy, 17
//初期化/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
title "計算KING" //タイトル
gosub *FuncLoadGraph //グラフィックロード
gosub *FuncInitPlayer //プレイヤー初期化
gosub *FuncInitEnemy //敵初期化
//メインループ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
gosub *GameMainLoop //メインループ
stop
//グラフィックロード/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*FuncLoadGraph
celload "./image/player/face0.png" ,-1 : hPLAYER_FACE(0)=stat
celload "./image/player/face.png" ,-1 : hPLAYER_FACE(1)=stat
celload "./image/player/body0.png" ,-1 : hPLAYER_BODY(0)=stat
celload "./image/player/body.png" ,-1 : hPLAYER_BODY(1)=stat
celload "./image/player/0hp.png" ,-1 : hCHARA_MAKING(0)=stat
celload "./image/player/1str.png" ,-1 : hCHARA_MAKING(1)=stat
celload "./image/player/2mstr.png" ,-1 : hCHARA_MAKING(2)=stat
celload "./image/player/3def.png" ,-1 : hCHARA_MAKING(3)=stat
celload "./image/player/4mdef.png" ,-1 : hCHARA_MAKING(4)=stat
l_str = "./image/enemy/enemyx.png"
repeat g_max_enemy, 0 : l_str = strf("./image/enemy/enemy%d.png", cnt): celload l_str,-1 : hENEMY(cnt)=stat : loop
return
//プレイヤー初期化///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*FuncInitPlayer
//基本
g_player(SEED) = 100
g_player(MAX_HP) = 20
g_player(HP0) = g_player(MAX_HP)
g_player(STR0) = 20
g_player(MSTR0) = 20
g_player(DEF0) = 20
g_player(MDEF0) = 20
//補正
g_player(HPP) = 0
g_player(STRP) = 0
g_player(MSTRP) = 0
g_player(DEFP) = 0
g_player(MDEFP) = 0
//値
g_player(HP) = g_player(HP0) + g_player(HPP)
g_player(SSTR) = g_player(STR0) + g_player(STRP)
g_player(MSTR) = g_player(MSTR0) + g_player(MSTRP)
g_player(DEF) = g_player(DEF0) + g_player(DEFP)
g_player(MDEF) = g_player(MDEF0) + g_player(MDEFP)
return
//敵初期化///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*FuncInitEnemy
return
//タイトル///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*FuncTitle
pos 0, 0 : celput hPLAYER_BODY(1)
pos 0, 0 : print "Title"
pos 0, 20 : gmode 2 : celput hPLAYER_FACE(1)
return
//戦闘///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*FuncBattle
pos 0, 0 : celput hPLAYER_BODY(1)
pos 0, 0 : print "Battle"
pos 0, 20 : gmode 2 : celput hPLAYER_FACE(1)
return
//エンディング///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*FuncEnding
pos 0, 0 : celput hPLAYER_BODY(1)
pos 0, 0 : print "Ending"
pos 0, 20 : gmode 2 : celput hPLAYER_FACE(1)
return
//ゲームオーバー/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*FuncGameOver
pos 0, 0 : celput hPLAYER_BODY(1)
pos 0, 0 : print "GameOver"
pos 0, 20 : gmode 2 : celput hPLAYER_FACE(1)
return
/*メインループ**************************************************************************************************************************************/
/***************************************************************************************************************************************************/
*GameMainLoop
//繰り返し
while
redraw 0 //描画モード0
//分岐
switch g_scene
case BATTLE //戦闘
gosub *FuncBattle
swbreak
case TTITLE //タイトル
gosub *FuncTitle
swbreak
case ENDING //エンディング
gosub *FuncEnding
swbreak
case GAME_OVER //ゲームオーバー
gosub *FuncGameOver
swbreak
case END_GAME //ゲーム終了
end
swbreak
default //例外処理
pos 0, 0 : print "例外処理です"
swbreak
swend
redraw 1 //描画モード1
await 16 //一定時間待つ
wend
return

| |
|
2016/7/13(Wed) 22:54:29|NO.76188
あら
書き込んでる間に・・・
|
|
2016/7/14(Thu) 08:00:52|NO.76192
おお!ありがとうございます!助かります!
|
|