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


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
0426
ナットキャラクタの移動2解決


ナット

リンク

2006/4/26(Wed) 15:17:23|NO.497

今、僕はシミュレーションRPGを作っているのですが、キャラクタを移動させることが出来
ません。以前購入した書籍にサンプルがのっていたのですが、初心者の僕にとっては理解が
出来ないようなスクリプトだったので、なるべく簡略なものが出来ないかと思って、書き込
ませてもらいました。
何かアイデアがあったら教えてください。お願いします。



この記事に返信する


Drip

リンク

2006/4/26(Wed) 21:13:16|NO.500

Dripです。

 ナットさん、こんにちは。シミュレーションRPGに挑戦するには配列変数の知識と
簡単なものでも敵の思考ルーチン(AI)を作れる技術が必要になります。
プログラム初心者の方には少しハードルが高いかもしれませんね。
 下に最高に簡略化させたキャラクター移動ルーチンのサンプルを示します。
恐らくこれ以上簡略化させることは難しいと思われます。


//----------------------------- ここから ------------------------------ //マウスクリックで移動させるキャラクタを選択し、 //移動したい場所をクリックするとその位置へ移動します。" size=32 //キャラクタサイズ maxx=8 //マップサイズX maxy=4 //マップサイズY objmax=4 //キャラクタ最大数 screen 0,maxx*size,maxy*size dim objx,objmax //キャラクタ位置初期化 (X) dim objy,objmax //キャラクタ位置初期化 (Y) objx=0,1,2,3 //キャラクタを設置 (X座標) objy=0,0,0,0 //キャラクタを設置 (Y座標) font "MS ゴシック",size mode=-1 //mode=-1はキャラクタ選択モード //mode>-1はキャラクタ移動モード repeat stick ky redraw 0 color 255,255,255:boxf:color 200,210,220 //背景をマスでクリアする repeat maxx,1:line cnt*size,0,cnt*size,maxy*size:loop repeat maxy,1:line 0,cnt*size,maxx*size,cnt*size:loop repeat objmax //キャラクタの描画開始 if cnt=mode:color ,,255:else:color 255 //キャラクタの位置を決めてる途中はキャラクタの色を青、それ以外は赤に。 pos objx(cnt)*size,objy(cnt)*size //キャラクタの位置を指定 if mode=-1 & ky=256:{ //もしもキャラクタ選択モードでマウスクリックされたら if mousex/size=objx(cnt) & mousey/size=objy(cnt):{ //しかも描画中のキャラクタはマウスの下にいたら ky=0 //今の1フレームだけkyマウスクリックをクリアする。 mode=cnt //modeに移動させるキャラクタIDを代入し、キャラクタ移動モードにセットする。 } } mes "★" //キャラクタを描画する loop if mode>-1 & ky=256:{ //もしもキャラクタ移動モードになっていて、マウスクリックされたら objx(mode)=mousex/size //その座標にキャラクタを移動させる objy(mode)=mousey/size mode=-1 //キャラクタ選択モードに戻す } redraw 1 await 15 loop //----------------------------- ここまで ------------------------------

 このサンプルはキャラクタの重なり判定や移動中のアクション等、移動に関係ないものを
極力省いたものです。ルーチンの有用性より、解り易さを重要視して書かれています。

 余談ですが、プログラムを勉強する場合は、面倒くさがらずに複雑なプログラムでも
一行一行入念に観察し、かじりつく精神と忍耐が必要です。またそれがプログラムの面白い
ところでもあります。
 WEBやマニュアルを参考に、ナットさんも自分で考えたプログラムが思い通りに動いた時の
快感を、HSPを通して是非体感してみてください。きっと大きな前進になると思います。



ナット

リンク

2006/4/27(Thu) 15:46:45|NO.511

どうもありがとうございます。
がんばってみます。本当にご進言ありがとうございました。



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