2016年7月23日土曜日

HSPの落とし穴(市松模様)

おはようございます、セルディアです。

まだあった! HSP3Dishの落とし穴!


前回にいろいろとHSP3Dishのこいつぁヤバイ仕様を挙げていましたが、今回新たな仕様を発見したのでご連絡いたします。

・関数にldimで定義したラベル配列変数の要素を渡せない

どういうことかと申しますと、たとえば以下のサンプルプログラムを例に挙げます。

goto *start
#include "hsp3dish.as"

*label0
mes "label0"
return

*label1
mes "label1"
return

*label2
mes "label2"
return

#deffunc testfunction1 var m_label, int m_int
; 数字
mes "" + m_int
gosub m_label
return

*start

redraw 0
color 255, 255, 255
boxf

color 0, 0, 0
ldim labelarray, 3
labelarray(0) = *label0
labelarray(1) = *label1
labelarray(2) = *label2

; 本来の使いかた
gosub labelarray(0)
gosub labelarray(1)
gosub labelarray(2)

; 関数へ引き渡す
testfunction1 labelarray(0), 0
testfunction1 labelarray(1), 1
testfunction1 labelarray(2), 2

redraw 1
ldim配列変数labelarrayを定義して、一度gosubで普通に呼び出し、次にtestfunction1で一度ラベル変数を渡して呼び出しています。

関数testfunctionは、var型の引数を定義していて、こうすると引数にラベル変数を渡すことができます。

本来、このプログラムはgosubで"label0","label1","label2"が出力され、もう一度testfunctionで同じく出力されるのですが、Androidアプリに変換して実行すると、testfinctionでは"label0","label0","label0"と同じ出力しかされません。

testfunctionには、配列の0番目の要素しか渡っていないんですね。

困った。

以下のようにすれば一時的にしのげます。


_label = labelarray(2)
testfunction1 _label, 2

丁寧に解説しましたが、要するにラベル型配列の要素を関数に渡すなってことですね!

いじょ。

2016年7月16日土曜日

ぷちぎるどver0.80公開です

やはろー、セルディアです。

新しいぷちぎるどが遊べるようになりました!


先日ちょこっとだけ公開したぷちぎるどの新バージョンが、ついに遊べるようになりました。
HSP3Dishの力により、WindowsとAndroidで遊べるようになっています。

Windows (Vectorサイトへリンクします)
http://www.vector.co.jp/soft/winnt/game/se511621.html

Android (Google Playサイトへリンクします)
https://play.google.com/store/apps/details?id=net.seldia.puchiguild&hl=ja

今回のバージョンアップで、かなり操作性を重視して改善しています。

アイテムもまとめられるようになって、一層遊びやすくなったはずなので、いよいよアイテムやクエストを増やしてボリュームアップする方向で進みます。

(ちなみに、恐ろしくバランス崩壊のやけくそなクエストを追加しましたが、果たしてクリアできるかはわかりません)