<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/c_rpg/">
    <title>c_rpg @ ウィキ</title>
    <link>http://w.atwiki.jp/c_rpg/</link>
    <atom:link href="https://w.atwiki.jp/c_rpg/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>c_rpg @ ウィキ</description>

    <dc:language>ja</dc:language>
    <dc:date>2009-12-29T15:02:16+09:00</dc:date>
    <utime>1262066536</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/c_rpg/pages/20.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/c_rpg/pages/19.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/c_rpg/pages/18.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/c_rpg/pages/17.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/c_rpg/pages/16.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/c_rpg/pages/15.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/c_rpg/pages/14.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/c_rpg/pages/13.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/c_rpg/pages/12.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/c_rpg/pages/11.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/c_rpg/pages/20.html">
    <title>ステップ６</title>
    <link>https://w.atwiki.jp/c_rpg/pages/20.html</link>
    <description>
      *ステップ６
**スクリプト言語（続き）
-[[ステップ５]]の続き
**変数の実現
-イベントスクリプト内で使用可能な変数を実現する。
-まず、セーブデータに保持されるキャラ永続変数のうち、デフォルトで用意されているもの（スクリプト内で定義が不要なもの）を考える。
-シナリオの進行度を示す変数「scenario」を実装する。

**キャラ永続変数
-細かな仕様に関しては[[ステップ５]]で定義した通り。
-ただし、「scenario」などの一部の変数は初めからプログラム内に仕込んでおく。
-キャラ永続変数はセーブデータに保持されるが、数の規定が存在しないため、ハッシュテーブルにして扱う。    </description>
    <dc:date>2009-12-29T15:02:16+09:00</dc:date>
    <utime>1262066536</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/c_rpg/pages/19.html">
    <title>ステップ５</title>
    <link>https://w.atwiki.jp/c_rpg/pages/19.html</link>
    <description>
      *ステップ５
**イベントスクリプトの実装
-[[ステップ２]]で言及したスクリプト言語の作成から入る。

**データ構造
-テキストファイルにしてマップごとに用意。
-マップに入るたびに、マップデータとともに読み込む。
-イベント用ハッシュテーブルを用意し、それで管理する。
-同じマス上に異なるイベントは配置できない。よって、１つのマップで扱えるイベントは1200個が上限。（マップスクロール可能にした場合はもっと増える）
-１つのマップにイベントを10個も20個もおかないと思うのでハッシュサイズは10くらいにしておく。

**実行
-オートイベントは一歩歩くごとに判定。調べるイベントは決定キーを押すごとに判定。実行条件を満たした場合にプレイヤーをイベントにアタッチする。
-マップデータ上に置かれたイベントハッシュテーブルからイベントを読み出し、イベントデータの構造体ポインタをプレイヤーデータ側に保持する。（プレイヤーをイベントにアタッチする）
-プレイヤーがイベントにアタッチされている時、イベント進行にかかわらないキー操作は許されない。
-イベント終了時、デタッチする。（プレイヤーデータ側に保持されたポインタをNULLで書き換える）
-マップ移動実行時のみ、実行中のイベントデータの構造体を丸ごとコピーして一時的に静的領域に保持する。（マップ移動時にマップデータごと再読み込みが行われ、イベントハッシュテーブルも解放するため）

**書式と仕様

&gt;event_num,x,y,xsize,ysize,moveflg,solidflg,look1,look2,event_type,name {
&gt;script;
&gt;}

-個々のイベントの初期設定っぽい何か
|名前|備考|
|event_num|イベント番号。0及び-1（負の値）は設定できない。（不要？）|
|x,y|イベントの座標。（正確にはイベントの左上座標）|
|xsize,ysize|イベントの大きさ。x,yを左上端として、横にxマス、縦にyマスの大きさになる。|
|moveflg|x,yを中心としたユニットの移動範囲の半径。&amp;br()0 : 移動しない。&amp;br()1 : 3 * 3マス内を移動。&amp;br()2 : 5 * 5マス内を移動。|
|solid    </description>
    <dc:date>2009-12-26T20:33:39+09:00</dc:date>
    <utime>1261827219</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/c_rpg/pages/18.html">
    <title>ステップ４</title>
    <link>https://w.atwiki.jp/c_rpg/pages/18.html</link>
    <description>
      *ステップ４
**ステータス画面の実装
-ステータス画面を開くと右側にメニュー。
-アイテム、そうび、スペカ、個別ステータス確認、セーブなど。
-そのほか、図鑑やコンプ状況などのおまけ要素を詰め込んでも良いかもしれない。

-特定ボタンを押すことで隊列変更モードに。
-前列後列の区別はないが、左上に表示されている四人のメンバーと下側に表示されている待機メンバーを入れ替えることができる。

#ref(status0001.jpg);
-ドットは2009年2月ごろのものとほぼ変わらない。霊夢のみ大幅に直した。直してこの出来。

**ステータス画面の課題
-ドット絵直したい。
--直してもひどいけど、さくやさんとかゆゆこ様とか本当にひどい。
-スペカボーナス
--ＦＦ６の魔石ボーナスのようなもの。スペカを選んで装備し、それによってレベルアップ時にステータスボーナスが得られるように。
-そうびにおける機能「さいきょう」の実装。
--何を以って最強とするかを考える必要がある。
-コンフィグの実装
--コンフィグでウィンドウ色などを変更可能にする？    </description>
    <dc:date>2009-11-29T14:55:52+09:00</dc:date>
    <utime>1259474152</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/c_rpg/pages/17.html">
    <title>ステップ３</title>
    <link>https://w.atwiki.jp/c_rpg/pages/17.html</link>
    <description>
      *ステップ３
**戦闘の実装
-戦闘のないＲＰＧはＲＰＧとは言わない。
-ＡＴＢシステム。旧スクエアの特許技術だが、非常に簡単に実現できる。
-一番の難題はアニメーション。これを統一的に扱えるような構造にできると今後の拡張がとても楽になる。

-現段階ではこんな感じ。まだまだ課題は多い。
#ref(battle0001.jpg);
-ようむの下にあるtopはデバッグ用の出力。

*戦闘に関する課題
-戦闘参加キャラは合計32名を予定。
-ただし、現在戦闘グラフィックが用意できているのは6名。
-行動入力順。現在はスタック方式にしているが、やはり出力制限型のデック辺りにしたほうが自然になりそうだ。
--キューにしたほうが自然。ということでキューに。
-戦闘アニメーションの統一的な実装。
--たとえば妖夢の固有コマンド「こんぱくけん」のレベル１「弦月斬」は、敵の懐に潜り込んで切り上げ、そして元いた隊列位置に戻る、というアニメーションが必要となる。
--元の隊列位置と敵位置から軌道を計算し、フレームごとに妖夢のグラフィックの描画位置を変更するという動作が必要になる。
--アニメーションの終了にかかるフレームは各コマンドごとによって異なるが、それを統一的に扱いたい。
--始点、終点、軌道の種類（直線or曲線）、速さ（フレーム数）などを渡して動作する関数でも作るか？
-戦闘アニメーションその２　敵に関するアニメーション
--ＳＦＣのＦＦでは行動する敵が白黒と点滅する。これに相当する行動者の目印を描画したい。
--現在の仕様ではＨＰが0になった瞬間に敵グラフィックが消滅するため、上に張り付けた画像でも弦月斬を受けためいりんが消えている。
--敵グラフィックの消滅（というよりは、敵を倒したという情報の確定）をＨＰが0になった瞬間ではなく、ＨＰが-1になった瞬間として、味方の行動の終了を待つか。    </description>
    <dc:date>2010-01-17T15:47:08+09:00</dc:date>
    <utime>1263710828</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/c_rpg/pages/16.html">
    <title>ステップ２</title>
    <link>https://w.atwiki.jp/c_rpg/pages/16.html</link>
    <description>
      *ステップ２
**フィールドの作成
-フィールドを歩き回れるようにする。
-広さに従ってスクロールするのは後回しにして、とりあえずは640×480の大きさでマップを作る。
-実際のマス数は40×30。
-ＲＰＧツクール用のマップチップが使いまわせるようにしている。
-マップ上のマスのデータは歩行可否フラグ、レイヤー１、レイヤー２の三つ。
-ツクール用のチップはアニメーションや構造によるなめらかな描画も実現可能なため、それも。

-そんな感じで欲張って作ったマップがこれ。
&amp;ref(field0001.jpg);

-溶岩のセルは通行不可であり、静止画では伝わらないがアニメーションする。

**フィールドに関する課題
-もっと広大なマップを、スクロールしながら移動できるようにする。
--そのためにはデータ構造を考慮する必要あり？　マップの構造体が大きくなると、スタック上に置くよりもヒープ領域に作らなければならないかもしれない。
-イベントフラグの実装。ＮＰＣの配置。
--最大の鬼門。2009年2月ごろに作っていたものはここの構造が汚かったために挫折。今頑張って作り直そうというところ。
--マップ移動もこれで実現する。あるセルの上に立つとマップ移動命令が呼び出され、それに従って移動するように。
--勉強も兼ねて、独自のスクリプト言語を作成して行う。
--言語の解析自体は楽だが、それをどういった構造で扱うかが問題。
--[[ステップ５]]
-エンカウントの実装。
--現在、戦闘はデバッグ用のボタンを押して開始するようになっているため、フィールドを歩き回ってもエンカウントしない。
--以前作っていたものはエンカウントが実装されており、さほど汚くない形なので少し手直しして移植するだけで済みそうだ。
-フィールド上で有効となる装備効果の実装。
--エンカウントが無くなる「あややのおまもり」、速く走れる「ダッシューズ」など。    </description>
    <dc:date>2009-12-23T11:57:10+09:00</dc:date>
    <utime>1261537030</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/c_rpg/pages/15.html">
    <title>ステップ１</title>
    <link>https://w.atwiki.jp/c_rpg/pages/15.html</link>
    <description>
      *ステップ１
-プログラム全体の構成を考える。
-まず、起動時に出てくる起点画面が欲しい。&amp;br()→index.cppとindex.hの作成。
-とりあえずフィールド上を移動したい。&amp;br()→field.cppとfield.hの作成。
-雑多な処理はひとまとめにしておきたい。&amp;br()→function.cppとfunction.hの作成。

-ファイルを複数組み合わせて作るので、分割コンパイルについても勉強しておく。

-例（function.h）
&gt;#ifndef _FUNC_H_
&gt;#define _FUNC_H_
&gt;
&gt;int GetHitKeyStateAll_2(int*);
&gt;
&gt;#endif

-ステップ１が終わったらこんな感じ。

&amp;ref(smrpg_0001.jpg);

-実はマップクリエイターとかすでに作り終わってて、マップを歩きまわったりはできます。
-……が、以前作ってた戦闘画面とかその辺が気に食わないので作り直し、&amp;s(){一段落ついたら動画か何かにして公開します。}&amp;br()一応動画はニコニコに上げましたが、画質死んでる上に音が入れられないというひどい状況なのでスクリーンショットを小出しにしていきます……。
-ていうかこのタイトル絶対誰かがやってるよね？
-……と思ってググったら「Super Marisa World」しかヒットしません。
-念のため、「SuperMarisaRPG」はタソフロさんとかとは一切関係のないミジンコがゆっくり頑張っています。

-指グラはＦＦシリーズのものを思い出して必死に打った自作物。
-歩行・敵グラフィックは無理なので、簡単な戦闘グラくらいはがんばってみようと思ったけれど撃沈中。
-ドット絵ってすごく難しいんだね！    </description>
    <dc:date>2009-11-29T15:09:07+09:00</dc:date>
    <utime>1259474947</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/c_rpg/pages/14.html">
    <title>準備</title>
    <link>https://w.atwiki.jp/c_rpg/pages/14.html</link>
    <description>
      *環境を整える。
-Visual C++ 2008EEをインストール。
-ライブラリを用意。
有名な[[ＤＸライブラリ&gt;http://homepage2.nifty.com/natupaji/DxLib/index.html]]を使用。

-参考リンク
[[Ｃ言語～ゲームプログラミングの館～&gt;http://dixq.net/g/]]    </description>
    <dc:date>2009-10-18T18:19:57+09:00</dc:date>
    <utime>1255857597</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/c_rpg/pages/13.html">
    <title>マップクリエイター</title>
    <link>https://w.atwiki.jp/c_rpg/pages/13.html</link>
    <description>
      *マップクリエイター
ＲＰＧはマップを自由に歩き回らなければならない。
そんなわけで、マップを作りたい。

**マップデータの仕様
-event.txt
イベントデータ。
-layer1.txt
マップの見た目１
-layer2.txt
マップの見た目２
-walkable.txt
歩行可能マスであるかどうかの情報
-mapdata.txt
雑多なマップの情報    </description>
    <dc:date>2009-10-18T18:09:40+09:00</dc:date>
    <utime>1255856980</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/c_rpg/pages/12.html">
    <title>プラグイン/人気商品一覧</title>
    <link>https://w.atwiki.jp/c_rpg/pages/12.html</link>
    <description>
      * 人気商品一覧
@wikiのwikiモードでは
 #price_list(カテゴリ名)
と入力することで、あるカテゴリの売れ筋商品のリストを表示することができます。

カテゴリには以下のキーワードがご利用できます。
|キーワード|表示される内容|
|ps3|PlayStation3|
|ps2|PlayStation3|
|psp|PSP|
|wii|Wii|
|xbox|XBOX|
|nds|Nintendo DS|
|desctop-pc|デスクトップパソコン|
|note-pc|ノートパソコン|
|mp3player|デジタルオーディオプレイヤー|
|kaden|家電|
|aircon|エアコン|
|camera|カメラ|
|game-toy|ゲーム・おもちゃ全般|
|all|指定無し|

空白の場合はランダムな商品が表示されます。

※このプラグインは[[価格比較サイト@PRICE&gt;&gt;http://atprice.jp]]のデータを利用しています。

-----

たとえば、
 #price_list(game-toy)
と入力すると以下のように表示されます。

ゲーム・おもちゃ全般の売れ筋商品
#price_list(game-toy)

ノートパソコンの売れ筋商品
#price_list(game-toy)

人気商品リスト
#price_list()
    </description>
    <dc:date>2009-10-18T18:06:33+09:00</dc:date>
    <utime>1255856793</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/c_rpg/pages/11.html">
    <title>プラグイン/コメント</title>
    <link>https://w.atwiki.jp/c_rpg/pages/11.html</link>
    <description>
      * コメントプラグイン
@wikiのwikiモードでは
 #comment()
と入力することでコメントフォームを簡単に作成することができます。
詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/17_60_ja.html


-----
たとえば、#comment() と入力すると以下のように表示されます。

#comment    </description>
    <dc:date>2009-10-18T18:06:33+09:00</dc:date>
    <utime>1255856793</utime>
  </item>
  </rdf:RDF>
