dishでゲームを作りたいのですが、どうしても起動時に落ちてしまいます(>_<)
おかしな書き方をしているのかなぁと思ってはいるのですが、どこがおかしいのか検討もつかず困っています。
自分の未熟なソースを添付するのは少し恥ずかしいのですが、お時間の都合の良い方がいらっしゃれば、ご教授をお願いできないでしょうか。
内容はニンジンの画像を表示して、その画像一つの4つに分けられた範囲の何番目をタップしているかを表示するだけのものです(・_・;)
至らない内容は追記したいと思います。
よろしくお願いしますm(_ _)m
(exe)
https://drive.google.com/file/d/0B5krbYD9_wBFSVJlVFJyVTBOY2c/edit?usp=sharing
(apk)
https://drive.google.com/file/d/0B5krbYD9_wBFbEJPMHdObHkzQUE/edit?usp=sharing
(ソース.zip)
https://drive.google.com/file/d/0B5krbYD9_wBFUU5OeWxYUFJYT3M/edit?usp=sharing
以下が(ソース.zip)の中に入っているソースです。
////////////////////////////////////////////////////////////////////////////////
//mainのソースで provisional を定義してください。
#ifndef provisional
#pack "Vegetables_00.png"
#include "hsp3dish.as"
#include "mod_smart.as"
smart_init
val = Game_Vegetables()
#endif
//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//ゲームのソースを関数として管理します。
//通常は1が返るようにします。
#module GameParts_Vegetables
////////////////////////////////////////////////////////////////////////////////
//メインの関数になります。
//通常は1が返るようにします。
#defcfunc Game_Vegetables
val = Game_Vegetables_Preparation() //ゲームを実行するための各種準備を行います。
repeat
redraw 0
switch number
case 0
repeat remaining
i(0) = remaining_xy(cnt,0) //x座標
i(1) = remaining_xy(cnt,1) //y座標
i(2) = cnt //描写対象の番号
val = Carrot(i(0) ,i(1)) //描写
val = cut(i(0) ,i(1) ,i(2)) //切断対象の識別
loop
swbreak
default
swbreak
swend
getkey key, 1
cutstart = 0 //切り始めを戻します。
redraw 1
wait 16
loop
return 1
//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//ゲームを実行するための各種準備を行います。
//通常は1が返るようにします。
#defcfunc Game_Vegetables_Preparation
buffer 2 ,2000 ,2000 ,0
picload "Vegetables_00.png"
gsel 0
mode_number = 0 //モードです。大きな野菜への切り替えなどに使用するといいかと思います。
remaining = 4 //野菜の個数です。実際は乱数を使ってください。
dim remaining_xy ,remaining ,2 //座標を用意します。
remaining_xy(0,0) = 0 :remaining_xy(0,1) = 0
remaining_xy(1,0) = 250 :remaining_xy(1,1) = 0
remaining_xy(2,0) = 0 :remaining_xy(2,1) = 250
remaining_xy(3,0) = 250 :remaining_xy(3,1) = 250
dim cutstart ,remaining ,4 //切り始めの判断に使用します。[対象の野菜番号 ,切り始めブロック番号]
return 1
//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//
//通常は1が返るようにします。
#defcfunc Carrot int p1 ,int p2
pos p1 ,p2
gmode 2
gcopy 2 ,0 ,0 ,200 ,200
return 1
//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//
//p1 = x座標
//p2 = y座標
//p3 = 対象の番号
//通常は1が返るようにします。
#defcfunc cut int p1 ,int p2 ,int p3 ,int p4
dim xy, 4, 2
px = p1
py = p2
repeat 4
xy(cnt,0) = px
xy(cnt,1) = py
px+100
if cnt = 1 { px = p1 :py + 100 }
loop
repeat 4
if (mousex > xy(cnt,0))&(mousex < xy(cnt,0)+100)&(mousey > xy(cnt,1))&(mousey < xy(cnt,1)+100)&(key = 1) {
pos 0,0
mes ""+p3+"の"+cnt+"です"
mes ""+xy(cnt,0)+""
mes ""+xy(cnt,1)+""
}
loop
return 1
//
////////////////////////////////////////////////////////////////////////////////
#global
//
////////////////////////////////////////////////////////////////////////////////