ページ 11

セーブさせるには

Posted: 2009年9月24日(木) 02:13
by koburouuu
セーブデータを作って保存させるプログラムソースがt1でありますよね。あれってどうやって前のソースとくっつけるのですか?それと33とt1を関連づけたいのですが、、、33からt1みたいな指令はどのような形になりますか?

Re:セーブさせるには

Posted: 2009年9月24日(木) 10:11
by kazuoni
>33からt1みたいな指令

書き方ってことですか?
例えばですが、以下みたいに切り替えるとかですかね。
switch(main_flag)
{
	case 0:
		if(menu()) // メニュー画面
			main_flag=1; // 選択されたらメインフラグ切り替え
		break;
	case 1:
		if(save()) // セーブ画面
			main_flag=2; // セーブ終了したらメインフラグ切り替え
		break;
	case 2:
....
}

Re:セーブさせるには

Posted: 2009年9月24日(木) 12:20
by koburouuu
そんな感じです。
仮にメインメニューを33だとするとニューゲームのところでエンターを押すとゲームがすぐににスタートされ、ある章をクリアしたらセーブしますか?と出てきます。それでセーブした後終了して再会するときメインメニューを表示させるようなものを教えてください。

Re:セーブさせるには

Posted: 2009年9月24日(木) 23:16
by kazuoni
とりあえず、文字列を編集するらしきものを作ってみました。
FPS.cpp
FPS.h
Button.cpp
Button.h
は無視してください。
今回はロードとセーブ回答の中心なので。
以前にボタンクラスを生成したものをそのまま流用しているので、
本題とは無縁な行が増えてしまいましたが・・・。

見てほしいのは
main関数 // Menu,mainFun関数の分岐
Menu関数 // はじめから、つつきから(ロード)、終わりの分岐
mainFunc関数 // 文字列の編集、文字列のセーブ、メニュー(Menu)に戻るの分岐
です。

コメントだけみればとりあえずの内容は把握できます。
mainFuncの中での文字列(入力)の処理はパスしてください。
(本題と関係ないので)

とりあえず、Buttonの仕様だけ書いときます。
基本、Button::Update(int *Key)とvoid Button::Draw()の二つです。
生成されている分だけ、押された、選択されているの監査をUpdateで行っています。
これはボタンがあるときは毎ループ読んでください。
あとちょっと注意ですが、例えば、
・メニュー画面でボタン3つ
・ゲーム画面でボタン5つ
とし、メニュー画面→ゲーム画面と進む時に、
メニュー画面のボタンをDeleteし忘れると、
ゲーム画面ではボタンが8つとカウントされてしまい、
恐らくどこかで止まります^^;
自動解放等はしてませんのであしからず。。

Updateで戻り値が-1以外の時は、押されたボタン番号が返ってきます。

また、Drawでボタンの描写をします。選択されていれば
枠が赤で塗りつぶされて表示されます。

↑は別に理解しなくていいです。
恐らく理解しがたいですから^^;
用は、Updateを毎ループ読んで、ボタンの状態を監査し、
Drawでボタンを描写している
だけ理解しておけばokです。

無題

Posted: 2009年9月25日(金) 09:04
by koburouuu
実践してみたいと思います。

わかりません・・・

Posted: 2009年9月25日(金) 14:55
by koburouuu
Buttonの仕様は分かりました。

しかし、

編集するらしきものの 
main関数
Menu関数
mainFunc関数
をどこに入力すればいいか
分かりません。
下にファイルをアップするので見てください。
順番はそのままでつなげたいと思っています。

Posted: 2009年9月25日(金) 15:07
by koburouuu
編集-つなげ方を教えてください。

Re:下

Posted: 2009年9月25日(金) 21:35
by kazuoni
作っておいていうのもなんですが・・・
ボタンクラスは使わないほうがいいです。
あくまで見るだけということで^^;
理由は、今の段階では必要ないと思うので。
また、他人の書いたコードは理解するのにかなり苦労します。
もちろん、自分のものも然りです。
自分がなぜ↑にUPしたのかというと、
<u>流れを見てほしかっただけなんです。</u>
main関数
Menu関数
mainFunc関数
すべて同様です。
なので、組み換えやすいようには作っていません。
コピペはやめたほうが良いです。
あとあと詰まります。おそらく。

test.cppを見ましたが、プログラミングは始めたばかりですか?
・同じファイルで3回もDxLib.hをインクルードしている
・同じファイルにWinMainが数回宣言されている
あたりから見て判断しました。
一気にやろうとしないで、まずひとつづつやっていきましょう。
選択画面が作れた(33章)ということですので、
次に選んだらそれぞれの関数に飛ぶことをやってみてください。

重ねて言いますが、「私が作ったコードのコピペはやめたほうがいいです」
本当に困惑させてしまいすみません・・・。

ありがとうございます

Posted: 2009年9月25日(金) 22:14
by koburouuu
分かりました。
コピペは止めます。
ただの参考にします。

プログラミングは本当にはじめてで超初心者です。
友達をびっくりさせてやりたいと思って本格的に取り組みました。
関数などについては初めて手をつけますから・・・。


#が頭に付く列は最初だけというのは分かったんですけど
#のあとボタン数を設定されていたので消すと動かなくなるかと思ってそのままにしときました。
それと、一番最初に超初心者ということを言わなくてすいませんでした。

cpp

Posted: 2009年9月27日(日) 23:25
by koburouuu
私のcppファイルを見たい人は上の投稿から探してください。
最新の投稿は別のほうにあります。