ゲームの基本構成について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
権田五秒山

ゲームの基本構成について

#1

投稿記事 by 権田五秒山 » 14年前

ゲームプログラミングの館でいろいろ勉強させていただきました。
しかし、ゲームの基本構成についてわからないところがあるので質問させていただきます。

ゲームの情報(infoとする)を格納する変数を用意し、メインループでswitch文を用い、それに応じて画面遷移するというロジックを組んだのですがこれは非効率的でしょうか?

コード:

switch( info ){

	case start : start();

	case field : field();

	case battle : battle();

	case shop : shop();

	case end : end();

}
このような感じです。

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: ゲームの基本構成について

#2

投稿記事 by h2so5 » 14年前

素直な方法だと思います。
権田五秒山さんが効率の悪さを感ずる要素がどこかにあるのでしょうか?

あと、省略しているだけなのかもしれませんがこのswitch文はbreakがないので、期待通りに動きません。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: ゲームの基本構成について

#3

投稿記事 by softya(ソフト屋) » 14年前

RPGっぽい画面遷移ですがたぶんこれだけでは済まないと思いますね。
ただ、非効率的かというと分かりやすいほうが良いので悪い選択ではないと思います。

効率と状態遷移については最近話題になっていたのでこちらもご覧下さい。
「メインループの考え方でのゲームの設計 (2) • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3&t=10388
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

権田五秒山

Re: ゲームの基本構成について

#4

投稿記事 by 権田五秒山 » 14年前

皆さん、返信ありがとうございました。
この方法でやってみようと思います。

重ねて質問したいのですが、

シナリオ(?)を複数用意して1つめのシナリオが終わったら次のシナリオ→次のシナリオが終わったらまた次のシナリオ→……

という感じでやりたいのですが、マップ配列やその他云々を書き換えなければいけないので困っています。
mainでシナリオ毎のファイルをincludeして例えば先の例で行けばfield()の部分で変数を判定してやると言った感じを思いついたのですがソースがごちゃごちゃになってしまいます。

コード:

#include "scene1.h"
#include "scene2.h"

int a;

void field(){
	switch(a){

		case 1:
			scene1_field();
			break;
		case 2:
			scene2_field();
			break;
	
	}
}
何かうまい方法はないでしょうか。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: ゲームの基本構成について

#5

投稿記事 by softya(ソフト屋) » 14年前

どういう事をやろうとしているのかシナリオとマップの関係とかイマイチ分かりませんが、ある程度以上の規模のものを組むには情報はファイル化して必要になるたびに読む方が効率化出来ると思います。
少なくともマップとシナリオはファイル化・スクリプト化を考えられたほうが良いと思います。

スクリプトのファイル化に付いては行なっていませんが、私の書いたRPG作成講座です。参考にしてみて下さい。
「マイ 日記 • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/blog.php?u=114&sd=a&c=2
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

“C言語何でも質問掲示板” へ戻る