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


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
0722
やまぎHSPdish アプリが起動できない6解決


やまぎ

リンク

2013/7/22(Mon) 16:02:20|NO.55820


#include "hsp3dish.as" randomize #const global CHIP_SIZE 80 #const global WIN_W CHIP_SIZE*4 #const global WIN_H CHIP_SIZE*4 /**/ title "15peace" /**/ flag=0 t=0 hazime_flg=0 objsize 320,55 pos 0,320 button "end",*ends button gosub "shuffle",*syahhuru dim map,6,6 repeat 6 cny=cnt repeat 6 if (cny=0)||(cny=5) : map.cny.cnt=50 : continue if (cnt=0)||(cnt=5) : map.cny.cnt=50 : continue map.cny.cnt=(cnt-1)+(cny-1)*4 loop loop celload "gazou.png",2//画像のおおきさ320*320 /**/ #module #deffunc draw_g array map color 0,0,0:boxf gmode 0,CHIP_SIZE,CHIP_SIZE flag=0 repeat 4,1 cny=cnt repeat 4,1 if map.cny.cnt=50 : continue if map.cny.cnt=99 : continue x=map.cny.cnt\4 y=map.cny.cnt/4 pos (cnt - 1)*CHIP_SIZE,(cny - 1)*CHIP_SIZE gcopy 2,x*CHIP_SIZE,y*CHIP_SIZE if map.cny.cnt=(cnt - 1)+(cny - 1)*4 : flg++ loop loop if flag=16 : return repeat 4,1 color 0,0,0 line CHIP_SIZE*cnt-1,0,CHIP_SIZE*cnt-1,CHIP_SIZE*4 line 0,CHIP_SIZE*cnt - 1,CHIP_SIZE*4,CHIP_SIZE*cnt - 1 loop repeat 4 color 255,255,255 line CHIP_SIZE*cnt,0,CHIP_SIZE*cnt,CHIP_SIZE*4 line 0,CHIP_SIZE*cnt,CHIP_SIZE*4,CHIP_SIZE*cnt loop pset 0,0 return #global #module #defcfunc move_p array map, int x, int y, int x2, int y2 t=map.y.x map.y.x=map.y2.x2 map.y2.x2=t return map #global #module #defcfunc click_p array map, int x,int y if map.y.(x + 1)=99 : map=move_p(map,x,y,x + 1,y) : return map if map.y.(x - 1)=99 : map=move_p(map,x,y,x - 1,y) : return map if map.(y + 1).x=99 : map=move_p(map,x,y,x,y + 1) : return map if map.(y - 1).x=99 : map=move_p(map,x,y,x,y - 1) : return map return map #global #module #defcfunc random array map repeat 4,1 cny=cnt repeat 4,1 if map.cny.cnt=15 : map.cny.cnt=99 x=cnt y=cny loop loop repeat 10000 map=click_p(map,rnd(4)+1,rnd(4)+1) loop return map #global repeat redraw 0 gosub *check_key gosub *check_clear if flag=16 : break draw_g map pos 80,447 mes "arranged number :"+flag+"" redraw 1 await 16 loop goto *clear *check_key x=mousex/CHIP_SIZE + 1 y=mousey/CHIP_SIZE + 1 stick t if mousey<=320 & t = 256 : map=click_p(map,x,y) if hazime_flg=0 : map=random(map) : hazime_flg=1 return *check_clear flag=0 repeat 4,1 cny=cnt repeat 4,1 if map.cny.cnt=(cnt - 1) + (cny - 1)*4 : flag++ loop loop if flag=15 : map.4.4=15 return *syahhuru hazime_flg=0 return *ends end stop *clear redraw 0 cls 4 color : boxf:color 255,255,255 gcopy 2,0,0,320,320 pos 120,340 mes "all complete" redraw 1 button "end",*clear dialog "finish!" : end
15ピースのプログラムなんですけどPCではちゃんと

起動するのですがスマホの方に移して起動すると

一瞬ついて消えるのですがどうすればよいでしょうか?

このプログラムの中に何か使えないものがあるのでしょうか

DPMファイルはちゃんと作成されています



この記事に返信する


FunnyMaker

リンク

2013/7/22(Mon) 18:38:48|NO.55822

アドバイスではありませんが...、

結構そういうことってあるんですよね。
Windows版dishでは動くのにAndroid版とかに移すと落ちるということが。
ちゃんと対応命令しか使わずに、スマホ版のことを考えて組んでも。

私もそんな経験がたくさんあります。

経験で言いますが、repeat〜loop をハードに使ったり、計算式を複雑にすると落ちやすいようです。

たとえば、


Q = sqrt(powf(r+sin(α),2)+powf(r*cos(α),2))

という式で落ちる場合、


k1 = r*sin(α) : k2 = k1*k1 k3 = r*cos(α) : k4 = k3*k3 k5 = k2 + k4 Q = sqrt(k5)

とすると落ちなくなったりします。
(あくまで一例で、この式で確実に落ちるというわけではありません。他の要素も絡んでいる
可能性が十分に考えられます。)

ただ、こんなことをしようと思うと、大変な労力になるのは確かです。(特にWindows向けに作っていた
もの(それも結構コード量のあるもの)を移植する場合はツラいです...。)


"gazou.png"がこちらに無いので、提示されたスクリプトを試してはいませんが、
「ここが匂うな...」と思ったところにstopでも入れてみて、どこで落ちるか地道に探ると何か
分かるのかもしれません。
(どうやらスマホ版でもデバッグ結果が見れるらしいですが、私は自信が無いので助言できません。)


参考になることを願います。



FunnyMaker

リンク

2013/7/22(Mon) 18:40:22|NO.55823

すみません、


Q = sqrt(powf(r+sin(α),2)+powf(r*cos(α),2))

↑ミスってました。


Q = sqrt(powf(r*sin(α),2)+powf(r*cos(α),2))

です。



やまぎ

リンク

2013/7/22(Mon) 18:46:51|NO.55824

>>FunnyMaker

ありがとうございます

参考にさせていただきます


それともう一つ質問なんですがスマホ版(HSPdish)ではモジュールが使えないのですか?



FunnyMaker

リンク

2013/7/22(Mon) 19:25:36|NO.55826

いえ、使えます。
付属ドキュメントに書いてありました。



ZAP

リンク

2013/7/22(Mon) 20:07:59|NO.55828

モジュールは使えますが、
外部DLLを使用するタイプのプラグインは使えません。
DLLはあくまでWindowsのプログラムなので。



やまぎ

リンク

2013/7/22(Mon) 20:55:17|NO.55829

>>FunnyMaker
>>ZAP

二人とも回答ありがとうございました。
参考にして頑張って完成させたいと思います。



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