241 :
名前は開発中のものです。:
HSPでRPG作りたいんですが、正直難しいと思います。
でもやりたいんです!!僕はHSPでブロック崩し(アルカノイド)
ぐらいなら作ったことあります。
今のところ、オープニングまで作ったのですが、どなたか僕に
HSPの基礎からすべてを叩き込んでくれませんか??
お願いします。
>>241 いきなりRPGを作ろうと思わないこと。RPGはいろいろなジャンルのプログラムテクが必要に
なるので、まずそれを身に付けてからでも遅くは無く。あと、プログラミングだけじゃなく、RPG
はシステムを考案する要素が高いので、そのあたりをきちんと決めておかないと、仕様変更の
連続でまともに作れなくなります。
とりあえずブロック崩しが作れるとの事なので、グラフィック表示、キー入力、キャラ移動、
当り判定、1画面分のマッピングはマスターしていると思うから、次はシューティングで背景の
スクロールと他キャラの同時制御を身に付けるとよろし。成長要素(自弾の拡張・耐久力上昇)
を盛り込めば、RPGのレベルアップ処理に応用できるのでモチベーションは維持できるかと。
次はアドベンチャーでメニューとイベント処理を身に付けること。
ぐはっ。ネタにマジレスしてしまった…orz
いいではないか
HSPでRPG作りたいんですが、正直難しいと思います。
でもやりたいんです!!僕はHSPでブロック崩し(アルカノイド)
ぐらいなら作ったことあります。
今のところ、オープニングまで作ったのですが、どなたか僕に
HSPの基礎からすべてを叩き込んでくれませんか??
お願いします。
>>245 いきなりRPGを作ろうと思わないこと。RPGはいろいろなジャンルのプログラムテクが必要に
なるので、まずそれを身に付けてからでも遅くは無く。あと、プログラミングだけじゃなく、RPG
はシステムを考案する要素が高いので、そのあたりをきちんと決めておかないと、仕様変更の
連続でまともに作れなくなります。
とりあえずブロック崩しが作れるとの事なので、グラフィック表示、キー入力、キャラ移動、
当り判定、1画面分のマッピングはマスターしていると思うから、次はシューティングで背景の
スクロールと他キャラの同時制御を身に付けるとよろし。成長要素(自弾の拡張・耐久力上昇)
を盛り込めば、RPGのレベルアップ処理に応用できるのでモチベーションは維持できるかと。
次はアドベンチャーでメニューとイベント処理を身に付けること。
ぐはっ。ネタにマジレスしてしまった…orz
248 :
名前は開発中のものです。:2006/03/11(土) 21:24:50 ID:QXDXslQw
HSPでRPG作りたいんですが、正直難しいと思います。
でもやりたいんです!!僕はHSPでMMORPG(FF11)
ぐらいなら作ったことあります。
今のところ、オープニングまで作ったのですが、どなたか僕に
HSPの基礎からすべてを叩き込んでくれませんか??
お願いします。
250 :
名前は開発中のものです。:2006/03/15(水) 11:35:49 ID:5IbhmKpH
・・・。
同じ文ありすぎですぉ・・・。
よし、俺について来い!
HSPでRPG作りたいんですが、正直難しいと思います。
でもやりたいんです!!僕はHSPでブロック崩し(アルカノイド)
ぐらいなら作ったことあります。
今のところ、オープニングまで作ったのですが、どなたか僕に
HSPの基礎からすべてを叩き込んでくれませんか??
お願いします。
HSPでRPG作りたいんですが、正直難しいと思います。
でもやりたいんです!!僕はHSPでブロック崩し(アルカノイド)
ぐらいなら作ったことあります。
今のところ、オープニングまで作ったのですが、どなたか僕に
HSPの基礎からすべてを叩き込んでくれませんか??
お願いします。
254 :
名前は開発中のものです。:2006/04/20(木) 09:44:57 ID:EMny2njT
>>249 いきなりRPGを作ろうと思わないこと。RPGはいろいろなジャンルのプログラムテクが必要に
なるので、まずそれを身に付けてからでも遅くは無く。あと、プログラミングだけじゃなく、RPG
はシステムを考案する要素が高いので、そのあたりをきちんと決めておかないと、仕様変更の
連続でまともに作れなくなります。
とりあえずMMORPGが作れるとの事なので、グラフィック表示、キー入力、キャラ移動、
当り判定、1画面分のマッピングはマスターしていると思うから、次はシューティングで背景の
スクロールと他キャラの同時制御を身に付けるとよろし。成長要素(自弾の拡張・耐久力上昇)
を盛り込めば、RPGのレベルアップ処理に応用できるのでモチベーションは維持できるかと。
次はアドベンチャーでメニューとイベント処理を身に付けること。
257 :
名前は開発中のものです。:2006/05/10(水) 03:29:45 ID:MjqwJ3xa
HSPでRPG作りたいんですが、正直難しいと思います。
でもやりたいんです!!僕はHSPでブロック崩し(アルカノイド)
ぐらいなら作ったことあります。
今のところ、オープニングまで作ったのですが、どなたか僕に
HSPの基礎からすべてを叩き込んでくれませんか??
お願いします。
| 釣れますか? ,
\ ,/ヽ
 ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ,/ ヽ
∧_∧ ∧∧ ,/ ヽ
( ´∀`) (゚Д゚,,),/ ヽ
( ) (| つ@ ヽ
| | | ___ 〜| | ヽ
(__)_) |――|. ∪∪ ヽ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ヽ
/⌒\/⌒\/⌒\/⌒\|彡~゚ ゜~ ~。゜ ~ ~ ~ ~~ ~ ~~ ~ ~~ ~~ ~~
⌒\/⌒\/⌒\/⌒\/⌒\彡 〜 〜〜 〜〜 〜〜 〜 〜
259 :
名前は開発中のものです。:2006/05/10(水) 10:44:57 ID:hiutgL36
HSPじゃなくてもRPGは面倒だけどな。
相当な忍耐がないとファミコン以下のもんしかできん。
262 :
名前は開発中のものです。:2006/09/06(水) 20:22:20 ID:aczt72Y/
ここが有名な
「〜で〜したいんですが、正直難しいと思います。 」
のおおもとのスレか
264 :
名前は開発中のものです。:2007/03/11(日) 09:22:38 ID:2p/x7h0m
HSPでRPG作りたいんですが、正直難しいと思います。
でもやりたいんです!!僕はHSPでブロック崩し(アルカノイド)
ぐらいなら作ったことあります。
今のところ、オープニングまで作ったのですが、どなたか僕に
HSPの基礎からすべてを叩き込んでくれませんか??
お願いします。
>>264 いきなりRPGを作ろうと思わないこと。RPGはいろいろなジャンルのプログラムテクが必要に
なるので、まずそれを身に付けてからでも遅くは無く。あと、プログラミングだけじゃなく、RPG
はシステムを考案する要素が高いので、そのあたりをきちんと決めておかないと、仕様変更の
連続でまともに作れなくなります。
とりあえずブロック崩しが作れるとの事なので、グラフィック表示、キー入力、キャラ移動、
当り判定、1画面分のマッピングはマスターしていると思うから、次はシューティングで背景の
スクロールと他キャラの同時制御を身に付けるとよろし。成長要素(自弾の拡張・耐久力上昇)
を盛り込めば、RPGのレベルアップ処理に応用できるのでモチベーションは維持できるかと。
次はアドベンチャーでメニューとイベント処理を身に付けること。
なんか悲しい…
俺はワロタ
俺はツマンネ('A`)
269 :
名前は開発中のものです。:2007/03/12(月) 08:45:04 ID:HjqKfI9M
これはマジ質問なのですが、hspでrpg作る場合
アイテムや主人公・敵キャラクターのデータはどう扱えばいいんでしょうか。
例えばアイテムの情報はあらかじめアイテム情報を書き込んだテキストファイルから読み込むとして、
テキストの一列ごとにアイテムの名前、ステータスなどを書き込んでいってそれをファイル側で読み込む。
だけど、そうした時にプログラム側ではそのテキストを読み込むとき、
そのアイテムがあるラインを指定してやらないと読み込めないので
アイテム名でアイテムの情報をテキストから読み出せなくて、やり辛いと思うんです。
それともインデックスを用意しておいて、指定したイニシャルと同じアイテムリストを全部バッファに
読み込んで比較してアイテムの情報を読み込む???
それと、所持アイテムの処理の仕方もわかりません。
270 :
名前は開発中のものです。:2007/03/12(月) 12:40:58 ID:zNGWNd+L
マジレスするとnotegetとcsvstrで読み込んで、配列変数に入れる。
その後、#enumで振った名前でアクセスすれば構造体みたいなもんだろ。
271 :
名前は開発中のものです。:2007/03/13(火) 06:16:11 ID:K8oTsumj
>>269 #define gs(%1,%2,%3,%4=',') getstr %1,%2,%3,%4:%3+strsize
#module
//IDに合わせた要素に文字列データを入れていく
//p1=ID順に入る変数名 p2=元の文字列データ statに一番大きいIDが入る
#deffunc setlst array list,str temp,local maxid,local _temp
_temp=temp:sdim list :notesel _temp
repeat noteinfo(0)
noteget n,cnt
getstr id,n,0,','
list(int(id))=strmid(n,strsize,strlen(n))
if int(id)>maxid {maxid=int(id)}
loop
noteunsel
return maxid
#global
load="10,ポーション,100,5,回復(小)\\雑魚が良く落とす\n15,回復剤,200,10,回復(大)\n"
load+"20,解毒剤,320,30,毒消し\\たまに効かない\n100,短剣,2000,100,80,5,5,武器\\一番弱い武器"
setlst item,load:itemmax=stat+1 ;使われてる要素の数はID+1になる
load="1,スライム,10,3,5,10,10,10,15\n10,レッドスライム,15,10,20,15,15\n50,モンスター,25,30,120,20"
setlst mons,load:monsmax=stat+1
load="1,名無しA,5,100,30,5000,12345\n5,ななしB,10,300,200,10000,23456"
setlst play,load:playmax=stat+1
//プレーヤーIDに対応した所持アイテムリストIDが使われる
load="1,3,100,1,10,3,20,5\n5,4,15,1,10,10,20,5,100,2" ;所持アイテムリストID,種類数,アイテムID,個数,・・・
setlst pitem,load:pitemax=stat+1
mess="モンスター名","HP","MP","EXP","所持item1","所持item2","所持item3","所持item4"
pmess="名前","レベル","HP","MP","所持金","EXP","所持アイテム種類数","個","アイテム個数"
imess="名前","値段","重さ","説明","名前","値段","重さ","攻撃力","防御力","魔力","説明"
>272 に続く・・・
272 :
271:2007/03/13(火) 06:19:51 ID:K8oTsumj
>271 からの続き
repeat playmax:
temp=play(cnt):if temp="" {continue } ;存在しないIDは飛ばす
mes "プレーヤーID: "+cnt:index=0
repeat 6
gs p,temp,index:mes pmess(cnt)+": "+p ;プレーヤーステータス表示
loop
index=0 :pi=pitem(cnt) :gs i,pi,index :mes pmess(6)+": "+i ;所持品の種類
repeat int(i),7:
gs i,pi,index :gs is,pi,index ;アイテムIDと所持数
itemstr=item(int(i)) :getstr n,itemstr,0,',' ;アイテムIDからアイテムデータ取り出し
y=ginfo(23) :button gosub n,*item_mes :butid(stat)=int(i)
pos 70,y:mes is+pmess(7):pos 0,y+24:loop:mes:loop:
pos 300,0:
repeat monsmax
:m=mons(cnt):if m="" {continue }:
index=0:mes "モンスターID: "+cnt:
repeat 4:gs d,m,index:mes mess(cnt)+": "+d:loop ;モンスターデータ表示
repeat 4,4:gs d,m,index:s=stat:itemstr=item(int(d)):getstr n,itemstr,0,',' ;モンスターデータからアイテム名を収得
mes mess(cnt)+": "+n:if s!',' {break}:loop:mes:loop:stop ; , が無かったら所持アイテム終わり
*item_mes:
iid=butid(stat) :a=item(iid)
c=0:screen 1,200,96+(iid>=100)*100,8+16,300,300:cls 1
repeat 4+(iid>=100)*3,(iid>=100)*4 ;ID100以上は装備品として扱う
gs b,a,c :cc=0:bb=""
repeat:gs d,b,cc,'\\' ; "\\" これを改行として文字列操作
if stat!'\\'{bb+d:break}
bb+d+"\n"
loop
if imess(cnt)="名前"{title imess(cnt)+": "+bb}else{mes imess(cnt)+": "+bb}
loop:gsel 0:return
273 :
名前は開発中のものです。:2007/03/13(火) 06:49:46 ID:K8oTsumj
>>269 >それともインデックスを用意しておいて、指定したイニシャルと同じアイテムリストを全部バッファに
>読み込んで比較してアイテムの情報を読み込む???
IDを振ってそれを基準に処理すればいんじゃね?
IDで管理しとけばアイテムの名前変えても他を弄る必要ないし
追加削除してもIDを変えなければ直接関係有る物しか弄らなくていい
>>270 >>271 参考にします。ありがとうございました。
それから、ソースを書いてもらってすいません。
よくできていて感心してしまいました・・・
275 :
名前は開発中のものです。:2007/03/14(水) 02:09:15 ID:pkgaAWGt
>>274 ゲーム中に変化があるのは整数型でデータを持ってた方が扱いやすいと思う
#define PLAYMAX 10
#enum PLAY1=0
#enum PLAY2
#enum playNAME=0
#enum playLEVEL=6
#enum playHP
#enum playMP
#enum playEN
#enum playEX
#enum playTEMP
#enum playtempEND=playTEMP+10
#enum playEND
#enum playITEM
#enum playitemEND=playITEM+20
#enum playdatEND
pmess="名前","レベル","HP","MP","所持金","EXP","所持アイテム種類数","個","アイテム個数"
load="10,ポーション,100,5,回復(小)\\雑魚が良く落とす\n15,回復剤,200,10,回復(大)\n"
load+"20,解毒剤,320,30,毒消し\\たまに効かない\n100,短剣,2000,100,80,5,5,武器\\一番弱い武器"
setlst item,load:itemmax=stat+1:dim play,playdatEND,PLAYMAX:n="名無しA":
memcpy play,n,strlen(n),playdatEND*4*PLAY1,0:play(playLEVEL,PLAY1)=5,100,30,5000,12345
play(playITEM,PLAY1)=100,1,10,3,20,5:n="ななしB":memcpy play,n,strlen(n),playdatEND*4*PLAY2,0
play(playLEVEL,PLAY2)=10,300,200,10000,23456:play(playITEM,PLAY2)=15,1,10,10,20,5,100,2
repeat playmax:if play(0,cnt)=0 {continue } ;存在しないIDは飛ばす
pid=cnt:mes "プレーヤーID: "+pid :sdim n,5*20:memcpy n,play,20,0,(playdatEND*4)*pid
mes pmess(0)+": "+n:repeat playTEMP-playLEVEL:mes pmess(cnt+1)+": "+play(cnt+playLEVEL,pid) :loop:b=""
repeat :if play(playITEM+cnt*2,pid)=0{icnt=cnt:break}
i=play(playITEM+cnt*2,pid):is=play(playITEM+cnt*2+1,pid) ;アイテムIDと所持数
itemstr=item(i) :getstr n,itemstr,0,',' ;アイテムIDからアイテムデータ取り出し
b+n+" "+is+pmess(7)+"\n":loop:mes pmess(6)+": "+icnt:mes b:loop:stop
↑271のモジュールを使うのが前提
パーティー数・戦闘参加人数に制限のないツールってあります?
277 :
名前は開発中のものです。:2007/05/17(木) 21:02:55 ID:SRf6VBZ+
……すみません、別スレに投下するつもりが誤爆しました…
279 :
名前は開発中のものです。:2008/07/20(日) 19:07:16 ID:2Ijm4eAV
>>120 この人が作ったRPGの紹介動画、ニコニコ動画のコンテストかなんかで賞貰ってたよ
そんな人が数年前にこんなレスしてたってのはなんかあれだね、面白いね
俺も頑張らないと
280 :
名前は開発中のものです。:2009/08/10(月) 13:04:26 ID:sFddjEWZ
2年で3レスか…
babelっていうゲームはHSPらしいが
281 :
名前は開発中のものです。:2009/08/11(火) 00:41:24 ID:q2fvLOcR
ちんこちんこちんこちんこちんこちんこちんこちんこちんこちんこちんこ
ちんこちんこちんこちんこちんこちんこちんこちんこちんこちんこちんこ
ちんこちんこちんこちんこちんこちんこちんこちんこちんこちんこちんこ
ちんこちんこちんこちんこちんこちんこちんこちんこちんこちんこちんこ
ちんこちんこちんこちんこちんこちんこちんこちんこちんこちんこちんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
たていすかんなにらぜ゜ちとしはきくまのりれれけむむ
なんかもう一個のほうのスレで頑張ってる奴がいるから俺はこっちで頑張ろうかな
じゃあ俺は応援する
>>120 この文字だけのRPGすげーカッケェーっすね
センスがパネェっす
マップエディタ作るのが難しいっす
既存のエディタを借用すれば楽だけどせっかくなので全部自作を目指すのだった
開発中はインタプリタで実行して
exeファイルにするときはコンパイルするってこと出来ないかな
なんかマップエディタよりドット絵が描きたくなってきたです
ゲーム制作より絵を描く方に興味を持ったのでそっちに行きます
それではお元気で(・∀・)/ヾ〜
>>289から
>>290にいって、自分の素材を使いたいがためにゲーム制作に戻ってきたっていうタイプもいる。
自分で作ったプログラムと絵と音楽が合わさると感動するわな
自分で使うのが恥ずかしいってことも・・・そうそう無いか
音楽とか作るの苦手だわ、俺
294 :
名前は開発中のものです。:2010/08/05(木) 16:31:18 ID:+9m6bvWS
まちびとに話しかける度に、文字を表示したいのですが、文がたくさんありすぎて
画面がみずらくなってきました。
文だけを別ファイルにするほうほうとかはあるのですか?
あります
296 :
名前は開発中のものです。:2010/08/29(日) 10:17:26 ID:Oy6sz1B5
戦闘部分のソースがカオスになってきた
ho
無料RPG製作ツール「ロープレジェネレーター」
ttp://sekisekki.net/index.htm 直感的操作で簡単なゲームが作れます。 簡単に配布可能な状態に出力することができます。
(HSP製のソースコード付きで、スクリプトの知識があれば自由度の非常に高いカスタマイズ
ができます)
他にも仲間預かり機能(100人も)や、仲間の状態/状態異常を細かく設定できたり、
乗り物が作れたりゲーム中に画像を差し込んだり、回転やフラッシュなどのエフェクト
なんかも簡単に作れる様です。戦闘はデフォだとドラクエ系。
移動は矢印キーの他に、キャラがマウスを追っかけたりするとのこと。
他にはオートアクションというのがあってオリジナルシステムの製作に役に立つかも
しれない機能です。これは、マップエディタで設定することで、「マップに入った時・
出た時・一歩歩いた時・戦闘開始前」に自動的に実行されるアクションを設定できる
機能です。
■分からないことや要望は掲示板へどうぞ。他にもいろいろ進化中みたい。
300 :
名前は開発中のものです。:2012/06/01(金) 12:21:34.45 ID:l7w1OgnU
>>294が何年前かドキドキしながら書いてみる
別ファイルにまとめて書いた文章&文章表示命令にそれぞれラベル付けて、メインファイルからgosubで呼び出して使う
…の前に、文章まとめた別ファイルを#includeな、#include
#include だぞ、忘れるな
>>300 ありがとうございます。
294じゃないけどHSP本家BBS見て荒んでた心が和んだw
302 :
名前は開発中のものです。:2012/06/05(火) 13:25:06.21 ID:cxs02+xg
>>301 見てくれてて良かった……
なら詳しく書くけど、メインファイルに
#include "(別のファイル名)"
を記述しておくと、ここで指定した名前のファイルがコンパイル時に結合されて、これ以降は同一ファイルのように扱える
ただし、別ファイル内で作成した変数やラベルなどを呼び出すより前に#include命令がないとエラーになる(存在しないものとして扱われる)から、なるべく最上段に書いとくのがいいよ
303 :
名前は開発中のものです。:2014/03/01(土) 18:22:21.95 ID:WBxaUI7+
気がついた
sage
HSPもそろそろクラスや構造体使えるようになっても良いよな
データ管理がキツイ
ドラクエのような、全方向MAPスクロールって、割と簡単に作れるのね。
(まだ、作ってる途中だけど)
ちょっと、ビックリした。
mjd?あれ難しくない?>マップスクロール
以前やろうとしたけど、難しくて上手くいかなかった
しょうがないので、マップは固定させて、
プレイヤーが動き回るようにした覚えがある
暇だしHSPでRPG作ってみるか
とはいえ、絵は描けんし音楽も作れんしプログラムもろくに書けん
・マップはフィールド/村のみ
当然ながらマップスクロールなんてものは無し ムズいから
・戦闘は攻撃/逃げるのみ
魔法やらアイテムは難しいから無し
・音楽もマップチップも借り物
ぎりぎり何とかRPG?と呼べるレベルの
DQ1を超劣化させたRPGもどき
・・・これでも完成できるかどうかわからんなあ・・・
311 :
307:2014/04/07(月) 10:51:54.10 ID:ezV4jUIS
ブログたてたんだ。
フットワーク軽いね。
自分は、
A=裏仕事用のウィンドー、
B=表示用のウィンドー、
C=キャラクターチップ用のウィンドー、
D=MAP用のウィンドーと、
4つ用意して、
redraw 0
DのチップをAにちまちまとコピー
AをごっそりBにコピー
CもBにコピー
redraw 1
っていう、
むちゃくちゃ単純な作業の繰り返しで為したんだけど、
キャラクターはアニメーションするし(わざわざ前の絵を消さなくても、AをBにコピーした段階で勝手に消える)、
スクロールはドット単位で出来るし。
なんか、ずいぶん楽だなぁ。
って思っただけです。
(実験に使用したマシンは、Pen3時代のボロマシンです)
ちょっと改良すると、
洞窟物語のようなアクションゲームにも流用できるし、
スクロールするシューティングにもなるし、
『あれ? ゲーム作りって、こんな簡単だったっけ?』って思ったんで。
ダウンロードしたよ。
まずは、フリーの素材を適当に見繕ってきて、見栄えを良くしてみるといいんじゃないかな?
作りたいもののイメージが固まると、モチベーションが高まるよ。
アドバイスありがとー
素材探すのめんどくさかったんで、画像は超適当
フリー素材探してみます
ありがとー
他人のスクリプト読んで勉強せんとなー
そもそもマニュアルの理解もあやふやだしな・・・
さて、309に書いたことはほぼ出来たので・・・
後はスクリプトを拡張していこうと思ってる
今日はマップチップとの当たり判定。
移動不可の地形には移動できないようにした。
どうぐ → アイテム一覧 → アイテム説明みたいな
メニューを次々表示していくのはシーン番号で管理するのかな
メニューごとに表示フラグを用意して
現在カーソルを持ってるメニューはどれか〜とか
キャンセルしたらどういう順番でメニューが消える〜とか
それをまたインプットに反映させるのもややこしそう
>>317 それ難しいねえ…
今自分の作ってるやつは、それより遥か下のレベルなので、
そんなの考えたことなかった
どうぐ → アイテム一覧 → アイテム説明
この流れの場合、メニューは3つ全部表示されてるのが普通かと思うんで
各メニューごとに表示のフラグがいるわけね そうかー・・・
flag_menu(0):どうぐ
flag_menu(1):アイテム一覧
flag_menu(2):アイテム説明
みたいな感じかな
んで、今カーソルがあるメニュー示す変数を作って(たとえばmenu_number=1とか)
キャンセルしたら、flag_menu(menu_number)=0 : menu_number--
とか。
・・実際にRPG作ってみた人に聞いてみないと、何ともわからないなあ
さて、次は街にいるNPCを作っていく予定
プレイヤーや通行不可チップとの当たり判定とか
プレイヤーとの会話とか。めんどくさそう・・・
頑張ってますね。
ありがとー ぼちぼちやってきます
当たり判定完成
次はNPCとプレイヤーとの会話
会話ウィンドウの表示があるのでちょっと手間かな・・・
NPCとの会話完成
次はいよいよ↑で難しそう、と書いたメニュー表示か・・・
ステータス、アイテム、魔法、装備、セーブ等々
・メニューを1つでも表示してたらメニュー操作モード
・カーソルを受け付けるのは最後に出したメニュー
・メニューを出した順に描画するが、描画済みバッファを利用たほうが速い
・どの順にメニューを表示したかのスタックを用意する(配列とインデックス)
・メニュー毎に保持カーソル・項目数・項目名・ジャンプ先・表示位置を保持
要素毎に分解して考えると簡単かも
>>323 うお、凄い・・・
めっちゃ助かります ありがとう
>>308 マップ上のキャラクター座標を中心に、周囲?×?ドットぶんを切り出して毎回描画するだけ
?、は移動マップ表示部分(というか視界)のサイズね
100*100サイズのマップでキャラクター位置が50,50だとしたら、50,50を中心にした視界範囲ぶんを切り出す
でもこれだと、キャラクターがマップ端にきたときにマップ外の何も無いとこ読み込もうとするエラーが出るから、あらかじめマップ外周を移動不可マスで囲んで読み込みぶんを確保しておくか、または読み込み不足ぶんをマップ反対側から切り出してループ構造にする…とかかな
マップがループ構造になってるRPGって良くあるけど、
そういうことだったのね・・・
>>326 他のゲームの仕組みは知らないけど、無限大の連続マップは無理だろうしたぶんこの手段かなと思う
あと、これはruby言語で試作中の方法だけど…
ベースマップを1マス辺り1ドットのサイズで、移動不可マス、移動可能マスを合わせて全5色〜くらいで色分けして描く
で、キャラ座標周囲の視界ぶん?×?マスを1ドットづつ色判定して、判定色ごとに決められた地形用マップチップを定位置に張り付ける…てな方法なら、数千×数千マスなんて広大なマップも作れそう
例えばドラクエで例えると…
3×3が視界範囲だとして、ベースマップのキャラ座標左上のドット色が0,0,0の通行不可色なら、16×16サイズの岩山チップを視界表示部の左上に描画
キャラ座標真上が255,255,255の通行可能色なら草原チップを表示部真ん中上に、キャラ座標右上が200,255,200なら森チップを表示部右上に……
これをフレーム毎に上段、中段、下段と繰り返す
視界範囲が広がるとフレームあたりのドット色判定処理が飛躍的に多くなるし、1ドットづつのなめらか移動じゃなくて地形チップ1枚ごとの古臭い移動表示にはなるけど、ベースマップのサイズは小さて済むから好きなだけ広いマップが作れる
へえー・・・
自分はフリーソフトのマップエディタ落としてきて、ちまちま
マップデータ作ってたんだけど、そんなやり方もあるのね
マップデータの書き方って色々あるんだな
ドルアーガの塔は、MAPデータ60バイト(裏モードを合わせると120バイト)
だと聞いてぶったまげた俺がいる。
60キロバイトじゃないぞ。
60バイトだぞ。