幻想伝説エッセイ

早く船を完成させて、大海原に飛び出したいのよ。

右クリックはMouseUp

2009-08-16 19:03:14 | VBでRPGを作る
MouseUpイベントハンドラに記述すれば右クリック対応になるということで。
正確に言うと、右クリックを検知するということらしいですが。
CWでキーボードのEnterキーは普通は使わないのですが、セーブしたところまでセリフをすっ飛ばす必要があるときは、Enterキーを押しっぱなしにしますね。
キーボード対応もいずれは必要になるかと思います。
ひとつのイベントハンドラで複数のイベントに対応させる書き方がありましたが、どこに記述してあったのか忘れました。
まあ見つかればもう一回勉強してみようかと思います。

とりあえず素手での攻撃値は1D6にしてみますかね。
それで渾身が+2で会心が+4とか。
命中率は渾身が下がって会心は上がるかそのまま。
でも会心の威力が高いと技能カードの存在意義が薄れそうなので、もっと弱くしてもいいかな。

省略してもいいのだけれど

2009-08-14 21:16:29 | VBでRPGを作る
ToStringはInteger型をString型へ変換するということらしい。
以前からToStringは目撃していましたが、今度こそきちんと理解できたかな?
数値を文字として表示する時に使うのですが、これは省略可能らしいですね。
すべての状況でそうなのかはわかりませんが、今やっていた箇所はそうでした。
しかし実際にFSで使う場面はなさそうに思います。

久しぶりにCWのシナリオを遊んでみました。
みやおまなぶ氏のシナリオなんですが、やっぱり楽しめました。
このころのシナリオはとにかく疲れないのがいいです。
斉藤さんのシナリオがそうですから、良きお手本があるということでしょう。

Tagプロパティ

2009-08-13 00:31:45 | VBでRPGを作る
すべてのコントロールにTagプロパティが付いているらしいですね。
Textなどと違って何の機能も持たないプロパティだそうですが、たとえばCardという設定を付けて、そのコントロールをのEnabledをFlaseからTrueに一度に全部変えてしまうとか。
こういったグループ化というのは、色々と方法があるみたいですね。
まあでも今は使い道が思い浮かばないですね。
おもしろそうだとは思うのですが。

本屋へ行ったら「最新宇宙論」(だと思った)なる本が置いてあって、パラパラと読んでみたら、最近では普通に平行世界が物理学の世界で語られているんですね。
こちらにもそんな記事が載っています。)
もともとSFではポピュラーな設定ですが、ムアコックの宇宙観はより真理に近いものがあって、それを60年代辺りから突き詰めていたというのは凄いですね。
確かにこういったことを考えると、エターナルチャンピオンはファンタジーではなくSFかなと思いますね。

カード名にも使えるかも

2009-08-12 20:23:32 | VBでRPGを作る
コードによるコントロール表示ですが、当然これはLabelにも使えるでしょうね。
ということはCWのようにカード名を描画する方法ではなくて、エンジンLabelでカード名を表示する方法もできるような気がしますね。
Labelの位置もカードの位置から+○○、-△△という具合に割り出せばいいと思いますし。
まあそこまで自分にプログラミングできるかわかりませんけど。
というわけで?、今日も少しその辺りをいじっていたのでした。

以前書いた行動判定ですが、レベル*3+15-能力値=基準値<2D6となっていたのを、レベル*3+15=目標値<2D6+能力値+レベル+技能クーポン値と変更してみる。 達成値がレベル+ボーナス+2Dということで、そのままの比較は無意味ですが、単純比較ではSW2.0のほうがクリアは簡単ですね。

ノーマルエリアのカード設置

2009-08-11 22:50:50 | VBでRPGを作る
Buttonなどのオブジェクトは貼り付けて使っていますが、当然のことながらコードを記述して表示させることもできるのですが、エリアでのカード作成はこれを応用すればいいんでしょうかね。
Newを使って作成するみたいですが、とりあえずPictureBoxを作成する自作メソッドを作ってみました。
と言ってもサンプルコードに意味がわかりにくい部分があるので、細かい部分は後回しなのですが。
またToolStripを貼り付けて、カード作成のためのボタンを設置しました。
コードは全然書いてませんけどね(涙)。
それにしても背景を表示させるのって、どのコントロールを使っているんでしょう。

ふと思ったことですが、リューンは別として、CWのサンプルシナリオは「ゴブリンの洞窟」だけですが、FSでは多くの作者を登用して、7本ぐらいにしてもいいかなと。
で、作品のタイプはなるべく多様性に富むようにして、しかも1年ぐらいで全部交換してしまうみたいな。
7本というのはレベル1から2に変わるのに必要な称号数ということで、本体をダウンロードしただけでレベル2まで上がれるということになりますね。
シナリオはもちろん、対象レベル1かレベルなしということになります。
サンプルシナリオに“採用”ということになるので、それなりに作者のステータスアップにもなるんじゃないですかね。

Forは繰り返し

2009-08-10 22:49:42 | VBでRPGを作る
これはDelphiのころからやってますね。

For 変数名 As 変数の型 = 1 To 終了値
 繰り返したい処理
Next

終了値を10とすれば、繰り返したい処理を10回繰り返すことができるみたいですが、今のところ使い道が思い浮かばないんですよね。

海外のバンドばかりではなく、たまには日本のロックバンドも張ってみます。
http://www.youtube.com/watch?v=_OA9xmbsfFg&feature=related
http://www.youtube.com/watch?v=x_Ua2HHKIrw&feature=related
なんかコメント欄が英語ばっかりなんですけど、日本より海外で人気があるんですかね。

Diceクラスをメソッドに変更

2009-08-09 18:42:57 | VBでRPGを作る
サンプルコードを見ていたら、ひとつの自作メソッドでふたつの1から6のランダムを持ったコードがあったので、とりあえずそちらを参考に修正。
また元に戻すかもしれませんけどね。

光を灯す魔法も個人的にはおもしろいと思うのですが、最初のバージョンでは難しいかも。
感知系の魔法も最初は導入しない予定。
武器に魔法の力を与えてダメージを増やしたり、不死系の相手にダメージを与えたりするのも後回しですね。

さらに短く

2009-08-08 21:06:06 | VBでRPGを作る
My.Forms.を取っ払って、サブフォームname.Show()と省略できるみたいですね。
まさかこんな簡単にできるとは以外でした。
ShowDialogを使う場合は、インスタンス化した今までの方法を使うことになると思いますけどね。
サブフォームname=Nothingとすれば、サブフォームを閉じられるみたいですが、Ifを使って表示したり閉じたりできないかな。
表示している状態のプロパティがどれになるのかわからないと、コードが書けないですね。

鍵を開けたり閉めたりする魔法は、大抵のTRPGには付属されているんじゃないですかね。
これを導入するとしたら、シナリオ作者側でキーコード対応させなければならないので、FSで導入はちょっと敷居が高いように思います。
関係ありませんが、「魔法の鍵」は自分も対応させたことがあって、当時主流であったエリアに片っ端からキーコード対応させるという方法ではなく、ここぞという場面で一箇所対応させるという方法を取りましたが、自分なりに当時の状況に一石を投じる意味合いもあったりしたんですよね。

もっと簡単な方法があった?

2009-08-03 22:46:35 | VBでRPGを作る
サブフォームの表示のShowを使ったモードレス表示では、メインフォームもサブフォームも両方操作できるので、エリア作成ウィンドウやカード作成ウィンドウに使うのですが、サブフォームをインスタンス化して呼び出す方法だと、同じウィンドウが何枚も同時に呼び出せてしまっていたんですよね。
My.Forms.サブフォームName.Show()と、たった1行でサブフォームをモードレスで表示できて、何回呼び出しのボタンを押しても表示はひとつだけにすることができました。
インスタンス化する必要もないみたいで、ラッキーって感じですか。

最近OSをアップデートしたら、パソコンの調子が良くなりましたね。
完成寸前にぶっ壊れてすべてがパーなんてことになったら、シャレにならないので良かったです(笑)。

Disposeが必要?

2009-08-02 23:53:45 | VBでRPGを作る
ShowDialogでサブフォームを呼び出すときは、Disposeメソッド記述してリソースを解放する必要があると書いてあるサイトがありました。
他のサイトでは見た記憶がないのですが、やっぱり書かなきゃ駄目ですかね。
Showで呼び出すときは、必要ないらしいですけど。

無名な作品ですが、「冒険者の道」というツクールゲームは良いですね。
まだ途中ですが、今度は意見が変わることはなさそう(多分)。