検索結果 56 件

by とっち
3年前
フォーラム: C言語何でも質問掲示板
トピック: 2DRPGのマップ関係のクラス設計を見ていただきたいです
返信数: 4
閲覧数: 1003

Re: 2DRPGのマップ関係のクラス設計を見ていただきたいです

[1. 列挙体 EPoint をグローバル領域に公開している:]  引数でしか使いません。  グローバル領域に公開すれば、引数に書くのは" LEFT_UP "で済みます。  一方、MapScaleManager内にEPointを置くと、  " MapScaleManager::LEFT_UP" と書かなければなりません。  ここは妥協せざるを得ないところなのでしょうか。 LEFT_UPって使うのはMapScaleManagerだけでも普遍的な事実ではありませんか? 例えば、LEFT_UPがMapScaleManagerと"画面クラス"で違うことを意味するならclass内に置き、" MapSc...
by とっち
3年前
フォーラム: C言語何でも質問掲示板
トピック: 2DRPGのマップ関係のクラス設計を見ていただきたいです
返信数: 4
閲覧数: 1003

Re: 2DRPGのマップ関係のクラス設計を見ていただきたいです

私も専門家でないのでいくつかの質問だけお応えしたいと思います。 (後の疑問については他の方お願いします・・・) では疑問点の1から・・・ [1.列挙体 EPoint をグローバル領域に公開している:] EPoint次第ですかね EPointがどこでも使うようなグローバルなものならグローバル領域に公開するべきだと思います。 しかしEPointがclass A内でしか使わないのであれば以下のようなコードはどうでしょうか class A{ public: enum EPoint{ ... }; void f(); }; 疑問点2 [struct Cellをグローバル領域に公開している] これもCel...
by とっち
4年前
フォーラム: C言語何でも質問掲示板
トピック: C/C++ 実行速度
返信数: 5
閲覧数: 2463

Re: C/C++ 実行速度

私も気になったので少し実験してみました。 神崎さんが最初に示しているc++の二つのコードを以下の環境で動作させてみました。 ※なお、提示されてるコードではコンパイラの最適化によって0[sec]でしたので、以下のコードを付け足してます printf("%d\n",dd[0]); 環境 OS: win7, CPU: Core i7 M620 2.67GHz コンパイラ: gcc 4.7.2 結果: 最初のほう: 6.88[sec] 改良後: 6.86[sec] 結果から誤差レベルしか違わないことが分かります。 そこで今度は-Sオプションでアセンブラを出力し、それをdiffコマンドで比較してみました...
by とっち
5年前
フォーラム: C言語何でも質問掲示板
トピック: ゲッター・セッターについて
返信数: 3
閲覧数: 1602

Re: ゲッター・セッターについて

一応以下のように書くことで実現できます
しかしのちのちメモリ周りのひどいバグを生む原因となる可能性がありますので、よほど特殊な場合を除いておすすめしません
ソフト屋さんの言われているように隠ぺいするような代替手段を探したほうがいいかもしれません

コード:

class Work{
private:
  int work[256];
public:
  int *getter(){return work;}
  void setter(const int *a){for(int i=0;i<256;i++)work[i]=a[i];}
};
by とっち
6年前
フォーラム: C言語何でも質問掲示板
トピック: ■ 新年の挨拶トピック~2014~ ■ 今年の抱負 ■ [雑談]
返信数: 17
閲覧数: 2646

Re: ■ 新年の挨拶トピック~2014~ ■ 今年の抱負 ■ [雑談]

あけましておめでとうございます

今年の目標は今年中にオリジナリティを入れたRPGゲームの試作版を公開することです
今作成しているゲームに少しだけでも新しいものを加えて、さらに公開できたらなと思っています
ちょっと目標低めですが今年もよろしくお願いいたします
by とっち
6年前
フォーラム: C言語何でも質問掲示板
トピック: iptablesと内部からのアクセス
返信数: 5
閲覧数: 1188

Re: iptablesと内部からのアクセス

ファイアウォールは詳しくないので間違っていたらすみません

ping 49.212.156.142は動作しますか
(DNS名前解決で失敗している気がします)

wgetのほうはわからないです・・・
(wgetってftp開ける必要あったっけ?)
by とっち
6年前
フォーラム: C言語何でも質問掲示板
トピック: 配列 最大値、最低値、平均点を求めるんですが、、、
返信数: 7
閲覧数: 2063

Re: 配列 最大値、最低値、平均点を求めるんですが、、、

せっかくなので私も書いてみました (変数の宣言位置とかc++な書き方のところは許してください) #include <stdio.h> #define PEOPLE_NUM 5 #define SUBJECT_NUM 3 #define SUCORE_MAX 100 void SetData(int *max,int *min,int data){ if(*max<data) *max=data; if(data<*min) *min=data; } int main(){ const char *name[PEOPLE_NUM]={"A","B","C","D","E"}; const cha...
by とっち
6年前
フォーラム: C言語何でも質問掲示板
トピック: 選ばなかったカードの識別
返信数: 18
閲覧数: 1024

Re: 選ばなかったカードの識別

>一回打ち込むことで2回分打ち込んでいることになるから、n=2のとき実行したとき変な結果になったのだとわかりました。 考え方はあってるんだけどこの場合はちょっと違うかな つまりどういうことかというと まず、理想の動作としては 1.nは?と表示される -> nを入力 2.c=と表示される -> cを入力 3.k=と表示される -> kを入力 ですよね しかし今2.がない状態です 理由はscanf関数にあります ググってもらうと答え出るかも・・・ 一応ヒントとしてですが最初に提示してもらったプログラムの19行目に printf("c=%ck=%d",c,k); というのを入れてみてください もしか...
by とっち
6年前
フォーラム: C言語何でも質問掲示板
トピック: 選ばなかったカードの識別
返信数: 18
閲覧数: 1024

Re: 選ばなかったカードの識別

答えをそのまま言ってもいいのですがせっかくなんでヒントだけにします

17行目のscanf関数の前に

コード:

printf("c=");
18行目のscanf関数の前に

コード:

printf("k=");
というのを入れてみてください
どうなっているかもしかしたらわかるかもしれません
(これはprintfデバッグというものです。処理が望むところに来ているかどうかチェックできます)

この先も説明してもいいのですがきょうさんが自力で解くほうが勉強になるかなと思い
最初のヒントとしてはこの辺にしておきます

わからなければどんどん質問してください
by とっち
6年前
フォーラム: C言語何でも質問掲示板
トピック: 【雑談】プログラミングについて 皆さんに訊いてみたかったことなのですが・・・・
返信数: 18
閲覧数: 2482

Re: 【雑談】プログラミングについて 皆さんに訊いてみたかったことなのですが・・・・

せっかくなんで私も回答してみます 1.プログラミングに興味を持ったのはいつであるか、また勉強し始めたのはいつか? 大学一年の時 授業でプログラミングの講義があり就職後も使うだろうと思って 調べていたところこのサイトのゲームプログラミングの館に出会い、のめりこみました 2.何に触発されてプログラミングに興味を持ったか ゲームプログラミングの館ですね だからこのサイトにはものすごく感謝しています 3.(C、C#、C++、Java)のなかでどの言語を一番初めに触れたか。 C言語ですね 4.上記4つの言語で自分の中で最も熱中した言語は何か? C++かな おもにDXライブラリを使うので 5.言語をある程...
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: Androidでノベルゲーム
返信数: 5
閲覧数: 1493

Re: Androidでノベルゲーム

テキストに関してですが、TextViewっていうのがありませんでしたっけ?

あと、テキストの保管場所というのがよくわからないです
String型の変数に入れておくというのではダメなんでしょうか?
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: RPGをつくっているのですが
返信数: 3
閲覧数: 553

Re: RPGをつくっているのですが

せっかくなんで私も気なにった点を・・・ まずWinMain.cppのメイン関数内のGameFrameに関してですが、 これポインタである必要がない気がします GameFrame gf; gf.Run(); これでいいと思います。 次にsoundに関してなんですが、 現在GameMainのコンストラクタでsound.SetSoundとサウンドデータの 初期化を行っているようですが、Soundクラスのコンストラクタで セットするようにしてはどうでしょうか? 同様にgraphicsに関してもCreateCharaImage()やDestroyCharaImage() はGraphicsクラスのコンス...
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: フャイルの読み込み
返信数: 2
閲覧数: 273

Re: フャイルの読み込み

30行目と35行目のif文の条件がおかしいです

コード:

if(input[i]='/')
だとinputに/という文字を代入してしまっています
比較は

コード:

if(input[i]=='/')
このように書きます。
プログラムが動かない最大の理由はこれです

これを直すと表示されるようになるのですが、きれいには表示されません。
理由は44行目です。
これについてはstrcpy関数について調べるといいです。
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: C++のコンストラクタ
返信数: 5
閲覧数: 692

Re: C++のコンストラクタ

私も興味をもったのでいろいろ実験したところ、 以下のコードは実行できました。 #include <iostream> using namespace std; class CTest{ public:     void print(){cout<<"start"<<endl;} }; int main(void){     CTest a();     a().print();     cout<<"end"<<endl; } CTest a(){     CTest t;     cout<<"a"<<endl;     return t; } 実行結果は a start end となりました。
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: 2か所でインクルードするとエラー
返信数: 6
閲覧数: 393

Re: 2か所でインクルードするとエラー

1. namespaceを使う

2. inlineを使う

コード:

template<class T> inline std::wstring toWstring(T val){
    std::wstringstream wss;                         // 箱を生成
    wss << val;                             // 値を入れる
 
    return wss.str();                               // 文字列にして返す
}
私が思いつくのはこれくらいでしょうか
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: 急いでます(;ω;)
返信数: 5
閲覧数: 937

Re: 急いでます(;ω;)

ここまで書けるなら簡単な気がしますが・・・
コードは読んでませんがコード上にある5という定数を
int hinzuuという変数にして、scanf関数で代入してやればいいのではないでしょうか?

ただ、

コード:

struct cand {
    char name[30];
    int box, number, order;
    float get;
} c[5], t;
この部分はmallocなどで工夫する必要はありそうですが
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: ウェブアプリケーションを作成するための言語と作成に要する時間について
返信数: 9
閲覧数: 1217

Re: ウェブアプリケーションを作成するための言語と作成に要する時間について

>h2so5さん
>制限時間があるのでPHPだけでは困難です。

ほんとだ
見落としてました。orz
でしたらPHP+javascriptになりそうですね。
失礼しました
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: ウェブアプリケーションを作成するための言語と作成に要する時間について
返信数: 9
閲覧数: 1217

Re: ウェブアプリケーションを作成するための言語と作成に要する時間について

1.僕だったらPHPだけで作成します。 h2so5さんのようにJavascript + PHPでもいいのですが 二つの言語を覚えてそれを組み合わせるというのは僕には大変でした。 特にJavascriptはクライアントサイド、PHPはサーバーサイドと概念的に違うので、 僕は両方いっぺんにしようとしてこんがらがりました。 他におすすめはJavaですかね。大規模設計の場合よくJavaが使われると聞いたことがあります。 Pythonはいい言語なのですがweb上に日本語の資料が少ないですね。 Ruby,Perlについてはよくわからないんで割愛させてもらいます。 2.僕がweb系に手を出したのが今年の2月...
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: レベルUP方法
返信数: 2
閲覧数: 950

Re: レベルUP方法

ソースコードは読んでませんがこんなのはどうでしょう #define LEVEL_MAX 5 int ExpTable[LEVEL_MAX]={0,10,20,30,40};// 経験値テーブル int LevelUp(int nowLevel,int nowExp){ int i; for(i=0;i<LEVEL_MAX;i++) if(nowExp<ExpTable[i]) break; return i-nowLevel; } LevelUp()は経験値テーブルを参考にどれだけレベルが上がったかを返します。 戻り値が0ならレベルアップなし、1ならレベルが1上がったことを知らせます。 戻り値...
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: クラスの関数内の変数について
返信数: 10
閲覧数: 898

Re: クラスの関数内の変数について

>h2so5さん
そうですかね。
たしかに私が神経質になりすぎていただけかもしれません

enumについては次回から使うようにします。

>GRAMさん
そうですね
大きくなって困ってるんだったらクラス分けろってことですよね


みなさんありがとうございました。
とりあえずクラス変数を使うとこにします。
で、Item関係の処理はまとめられそうなので内部クラスを使うかどうか検討してみて
使えそうなら頑張って使っていこうと思います。
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: クラスの関数内の変数について
返信数: 10
閲覧数: 898

Re: クラスの関数内の変数について

>h2so5さん 失礼しました。 言葉ではどうもうまく伝えられませんでした。 面倒なのでプロジェクトごとあげてみます いろいろファイルありますが結構何も書いてないファイルが多いです。 ここで質問したいのはmenu.cpp,menu.hについてです。 CMenuのItemSelect()関数が問題のところです。 CWinMgr型のwinという変数についてですが、ウィンドウに関する処理を行っています。 基本的にソフト屋さんのRPG講座を参考に作っているのですが、 Draw()で今あるウィンドウをすべて描画、New()で新たにウィンドウを登録、 Delete()で削除、Set()でstd::stri...
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: クラスの関数内の変数について
返信数: 10
閲覧数: 898

Re: クラスの関数内の変数について

返信ありがとうございます。 >h2so5さん なるほど、内部クラスで管理すればよかったのですね! >たかぎさん これはよさそうですね ただclass CTestをヘッダファイルに書くような場合、 struct fooImplも同じヘッダ内に書かないといけないのがちょっと嫌ですね(^^;) 私としてはこのようなことがしたかったのです 例えばRPGゲームだとして // main.cpp #include "DxLib.h" int WINAPI WinMain(略){ // いろいろ省略 int state; CMap mapMove;// マップに関するクラス CMenu menu;// メニュ...
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: クラスの関数内の変数について
返信数: 10
閲覧数: 898

クラスの関数内の変数について

あるクラス内の関数でクラスのインスタンスが破棄されるまで 変数の値を保持したいです。 通常は class CTest{ int hensuu; public: CTest(); ~CTest(); void foo(); }; void CTest::foo(){ // hensuuを使って処理 } というようにクラス変数を使えばいいのですが、 この変数hensuuが関数foo()内でしか使われないとき クラス変数にするのはなんだかなぁと思いました。 クラス変数にするとfoo()以外のクラス関数からも hensuuの値を書きかえられ好ましくありません。 かといっって void CTest::f...
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: RPGの戦闘システムについての質問
返信数: 3
閲覧数: 741

Re: RPGの戦闘システムについての質問

僕の方法としては、

1.キャラクタにactFlagという変数を持たせる。
2.actFlagは戦闘開始時に初期化される。
3.すべてのキャラクタを検索し、その中で、素早さが一番早く、かつ
actFlagが0(つまりまだ行動が終了していないもの)を返す関数を作る。
4.行動が終了するとそのキャラクタのactFlagを1にする。

まぁこんな方法もあるよというのだけお知らせしておきます。
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: Singletonパターンの解放のタイミング(?)
返信数: 9
閲覧数: 852

Re: Singletonパターンの解放のタイミング(?)

h2so5さんもおっしゃられてますがこれだとSingletonパターン じゃなくていい気がします。 int WINAPI WinMain(略){ if( DxLib_Init() == -1 )// DXライブラリ初期化処理 return -1;// エラーが起きたら直ちに終了 GameStateMan game=new GameStateMan(); while(ProcessLoop() == 0){ switch(game->GetState()){ 略 } } // メインループを向けると処理終了ということなので終了処理 delete game; DxLib_End();//DXライブ...
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: javaの抽象クラスについて
返信数: 2
閲覧数: 186

Re: javaの抽象クラスについて

1.http://www2.ocn.ne.jp/~notes/java/java2-10.html
このページが参考になるのではないでしょうか?

2.特にないと思います。

3.1と同じサイトで(^^;)

4.素人なので詳しくはありませんが作れます。
むしろ大規模サーバはJavaで組むことが多いようです。

これらの質問はグーグル先生に聞けば簡単に出てくるような気がするので
困った時にすぐ調べられるようにする力をつけていたほうがいいかもしれません。
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: breakとcontinueを使った問題です
返信数: 13
閲覧数: 1529

Re: breakとcontinueを使った問題です

正確なインデントで書いてみました #include<stdio.h> int main(void){ int i; double x,sum; sum=0; for(i=1;i<=7;i++){ if(i<=10) ; break; if(x>=0) continue; printf("%d番目のデータ?",i); scanf("lf",&x); sum+=x; } printf("合計=%f\n,sum"); return 0; } このプログラムにおいて6~9行目の部分 for(i=1;i<=7;i++){ if(i<=10) ; break; はi=1のときこの部分はどうなるか考えてみて...
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: c++で龍神録
返信数: 2
閲覧数: 421

Re: c++で龍神録

お返事ありがとうございます。 >2.ローカル変数で持ち、引数で渡すのが理想です。 そうですか。前はcharMgr.hでローカル変数としていたのですが music.cppでstageCountが必要になって引数でつないでいこうとすると すごく大変だったのでグローバルにしてしまいました。もう一度検討してみます。 >4.処理落ちが激しいようであればはじめに読み込むべきです。 そうですね。龍神録がこの方法だったので今回はあわせましたが、次回は 最初に読み込みます。 >6. imageに関しては管理が簡単そうだったので今回こういう方法にしました。 個々のクラスで管理してもいいですね。 >playerはシ...
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: c++で龍神録
返信数: 2
閲覧数: 421

c++で龍神録

いつもお世話になっています。 今回龍神録の館、四聖龍神録Plus・次回作のオープンソースを参考にしながら、 c++版龍神録を作ってみました。 龍神録の館とまったく同じ動作をするものを目標として作成しました。 ただ作っていなものとして以下の章の内容は作成していません。 31,32,33,36,42,51~,番外(ごめんなさい) 龍神録の館のプロジェクトのdatフォルダをそのままRyujin.exeのある場所にコピペしていただくと 動作します。 しかしc++はほとんど独学で、ネット上のコードを見よう見まねで作ったので、 いくつか気になるところがあります。 気になるところ 1.全体の構成 管理人さん...
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: ローン返済のプログラム
返信数: 6
閲覧数: 1027

Re: ローン返済のプログラム

とりあえずここまでのプログラムを見ていると、 1. bをfloat型で宣言する意味は何でしょうか?   3か5%ならint型でいいような気がしますが 2. if(c!=d)とありますがdには何も入っていませんよね?   なにと比較しようとしているのでしょうか? アドバイスとしてまず処理の概要からかんがえてみましょう。 大まかには入力、計算、表示、エラー処理の四つです。 おすすめする方法は表示、入力、計算、エラー処理の順で作っていくことですが、 今入力のところは何となくできているので、一気に表示と入力を作ってみましょう。 とりあえずですが、 (入力) ・借入額(円) ・年利(3%か5%の選択式)...
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: ポインタと配列の問題で困ってます
返信数: 7
閲覧数: 884

Re: ポインタと配列の問題で困ってます

動作としては問題ありません しかし12行目の x[i]; はどういう意図で書いたのでしょうか? あとこのコードでは3行目の #define N 7 が意味ないですよね? これは例えば今は7ですがこれを10にしたいとします。 KAJIさんのコードだと7行目のx[7]だとか10行目のfor文の7だとかを 全部10にしなければなりませんよね? しかし、#defineをうまく使うと直すのは 3行目の #define N 7 の部分だけでよくなります。 もうひとつ、問題はポインタを用いて代入し、要素を出力しなさいとありますが、 このコードだと出力にポインタを使っていますがいいんでしょうか? (まぁ大丈夫...
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列判定プログラム(再帰的)の課題です
返信数: 16
閲覧数: 2097

Re: 文字列判定プログラム(再帰的)の課題です

とりあえず一度基礎から復習しなおす必要があると思います
if文の使い方
関数について(特にスコープというところ)


48行目から56行目までは滅茶苦茶です。

あとエラーの意味もわかるようになりましょう
例えばprog.cpp:48: error: ‘next’ was not declared in this scopeの意味はわかりますか?
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: 【雑談?】OpenMPの効果の実験
返信数: 7
閲覧数: 831

Re: 【雑談?】OpenMPの効果の実験

OS: Windows 7 Home Premium 64ビット
CPU: Intel(R) Core(TM)i7 CPU M620 @2.67GHz 2.67GHz
実装メモリ(RAM) 6.00GB

結果

コード:

整数,Normal,OpenMP
26,1341,936
27,2995,2043
28,6006,4056
29,13057,8704
30,26738,17830
31,56867,36722
こんな感じでした
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: クイックソートを作っているのですが。
返信数: 20
閲覧数: 2939

Re: クイックソートを作っているのですが。

このプログラムをちゃんと見てないのでこれがクイックソートでないかどうかはわかりませんが(ごめんなさい)、
クイックソートは別に再帰を使わなくてもかけます。

ていうか再帰を使うすべてのプログラムは再帰を使わず書き直すことができます
c言語の標準関数のqsort()関数も確か再帰は使ってないはずです
(再帰は速度が遅くなるんで)
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: 課題でわからないところがあります。
返信数: 4
閲覧数: 370

Re: 課題でわからないところがあります。

まずこの問題が数学の問題だとしたら解けますか?

つまりキャラAとBが5秒後接触するには
Aはxとy方向にいくつずつ移動すれば良いか

という問題です。

これが解けるなら
解き方を一つずつプログラムに直していきます。

解き方の手順を示してもらい、
プログラムに直す段階でわからないところを教えていただければ
お答えできると思います。
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: C言語の多重ループの問題で困っています。
返信数: 5
閲覧数: 1544

Re: C言語の多重ループの問題で困っています。

とりあえずbの入力がないのでそれを付け足しましょうか

bの入力ができた後は2重ループを作ってみましょう
一個目のループは0から入力したbまで、二個目のループは0から入力したa(しゃむーさんのコードの場合、no)まで、
二個目のループは一個目のループの中に入れてみましょう。

結果はこんな感じになるはずです
入力
a? 6
b? 4

出力
123456
123456
123456
123456

ここまで出来ますか?
あと提出期限を教えていただくと教える側としてはやりやすいです
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: csvによる敵の制御
返信数: 10
閲覧数: 753

Re: csvによる敵の制御

ここも問題ないようですね・・・

あと考えられる問題点として3つほどあげてみます。

1.enemy.cppの関数ポインタを使っている void (*enemy_pattern[ENEMY_PATTERN_MAX])(int)のところがおかしい。

2.enemy_pattern0とかenemy_pattern1関数の中身がおかしい。

3.csvファイルのpatternのデータが間違っている。


12章の内容と以上の三点を確認してみてください。
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: クラスをインクルードファイルで引っ張ってきたいのですが
返信数: 5
閲覧数: 1985

Re: クラスをインクルードファイルで引っ張ってきたいのですが

落ち着いて考えてみましょう。 ヘッダファイルの中身はコンパイル時に #include ".h"のところに展開されます。 今、たとえばmainloop.hが先に呼ばれたとします。 1. mainloop.h内に#include "play.h"があるので展開 2. play.h内に#include "mainloop.h"があるのでそれも展開 3.インクルードガードがあるので一回しか展開されない(これは自信ないです「無限に展開されるかも」) 展開されたのを見ると、下のようになります。 class Play{ private: int a; public: Play();//コンストラクタ ~Pl...
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: csvによる敵の制御
返信数: 10
閲覧数: 753

Re: csvによる敵の制御

提示してもらったところは特に動作に問題ないように思えます。

敵の行動を制御しているところも見せてください。
(龍神録だとenemy.cppのenemy_act()関数の中身です)
by とっち
7年前
フォーラム: C言語何でも質問掲示板
トピック: png
返信数: 6
閲覧数: 420

Re: png

情報が少なすぎていまいち状況が分からないのですが、pngの画像が透過処理されているのではないでしょうか?
by とっち
8年前
フォーラム: C言語何でも質問掲示板
トピック: 終了処理について
返信数: 8
閲覧数: 1161

Re: 終了処理について

>たかぎさん
コンストラクタとデストラクタという考えでよろしいのでしょうか?
それなら確実に呼び出されますし、簡単ですね

>ISLeさん
こんな関数もあるのですか・・・
まだまだ勉強不足ですね

いろいろな解答本当にありがとうございます。
by とっち
8年前
フォーラム: C言語何でも質問掲示板
トピック: 終了処理について
返信数: 8
閲覧数: 1161

Re: 終了処理について

みなさま解答ありがとうございます。 >パコネコさん フラグというのは便利ですね。 それにわかりやすくてよさそうです。 >zxcさん 確かにDXライブラリを使用するならexit関数よりDxLib_End関数を直接呼んだほうがいいですね。 >UNさん なるほど・・・ 今後のためにも今回の場合は方法1:のようにメインループを抜けるような 仕様にしたほうがよさそうですね。 >beatleさん こんな関数があるのですか! 便利な関数を教えていただいてありがとうございます。 今回の場合はパコネコさんのフラグで管理するという方法をとらせていただくことにします。 様々な解答をいただき本当にありがとうございました。
by とっち
8年前
フォーラム: C言語何でも質問掲示板
トピック: 終了処理について
返信数: 8
閲覧数: 1161

終了処理について

今、DXライブラリで簡単なRPGを作成しています。 そこで少し疑問に思ったことがあったので質問させていただきます。 環境はWindows7,c++,DXライブラリです。 以下仮想コードで申し訳ないです・・・ #include "Dxlib.h" title(){ switch(state){ case "New Gameが選択された時": // ゲーム処理へ break; case "Load Gameが選択された時": // ゲーム処理へ break; case "Exitが選択された時": // 終了処理 break; } } int WinMain(略){ // 初期化 while(メイ...
by とっち
8年前
フォーラム: C言語何でも質問掲示板
トピック: csvファイルから変数を読み込む事は可能でしょうか
返信数: 5
閲覧数: 939

Re: csvファイルから変数を読み込む事は可能でしょうか

こういうことでしょうか?(違っていたらごめんなさい) #include "DxLib.h" typedef struct{ char data[256]; char name[256]; }Data_t; Data_t Load(){ Data_t temp; int fp=FileRead_open("test.csv"); char buf[256]; char token[10][256]; while(FileRead_eof(fp)==0){ if(FileRead_gets(buf,256,fp)==-1)//1行読み込む continue; int n=0,s=0; for(in...
by とっち
8年前
フォーラム: C言語何でも質問掲示板
トピック: ポーズ画面への移動と処理
返信数: 11
閲覧数: 2924

Re: ポーズ画面への移動と処理

Pause.hの関数がおかしいです。 void Pause_Check(); void Pause_Screen(); が void Pause_Check( Screen* pState ); void Pause_Screen( Screen* pState ); ですね。 main.cppの立場になって考えてみましょう。 WinMain関数内でPause_Check関数を使おうとします。 関数を使うには宣言が必要です。 つまり、 void test(); // もしくは extern void test(); みたいなものが必要です。 Pause_Check関数の宣言はPause.hのな...
by とっち
8年前
フォーラム: C言語何でも質問掲示板
トピック: 音楽の再生について
返信数: 7
閲覧数: 922

Re: 音楽の再生について

ちなみにですが

コード:

//load.cpp
void load_music(){
	satic int state=0;
	switch(state){
	case 0:
		PlaySoundMem(music);
		state=1;
		break;
	case 1:
		if(止めたいタイミングなら)
			state=2;
		break;
	case 2:
		StopSoundMem(music);
		break;
	}
}
こういう方法もあります。
これならwhile文中でもPlaySoundMem関数は一度しか呼ばれず
正常な動作をします。
by とっち
8年前
フォーラム: C言語何でも質問掲示板
トピック: 音楽の再生について
返信数: 7
閲覧数: 922

Re: 音楽の再生について

>whileの中にload_music(1);を書いてもなぜか再生されません。 ごめんなさい わからないです。 #include "DxLib.h" int music; void load_handle(){ music=LoadSoundMem("test.ogg"); } void load_music(int x){ switch(x){ case 0:StopSoundMem(music);break; case 1:PlaySoundMem(music,DX_PLAYTYPE_LOOP );break; } } int WINAPI WinMain(HINSTANCE,HINSTA...
by とっち
8年前
フォーラム: C言語何でも質問掲示板
トピック: 音楽の再生について
返信数: 7
閲覧数: 922

Re: 音楽の再生について

PlaySoundMem関数はLoadした音楽を最初から再生するような関数です。
ですので、WinMain関数のwhile文の中に入れてしまうと毎フレームごとに最初から再生されているようになります。
よってPlaySoundMem関数はwhile文の外に置くか別の方法をとる必要があります。
by とっち
8年前
フォーラム: C言語何でも質問掲示板
トピック: C++でのゲームプログラミング設計について
返信数: 4
閲覧数: 1665

Re: C++でのゲームプログラミング設計について

「龍神録プログラミングの館」のような書き方はオブジェクト指向ではなく、あまりよい書き方ではありません。 c++でclassを使うのであれば全く別の方法をとるべきです。 僕も独学ですので、あまり自信はありませんが、 // testというクラスで考えてみる // test.h class CTest{ int num; public: CTest(); void show(); }; // test.cpp #include "test.h" CTest::CTest(){ num=0; } void CTest::show(){ printf("%d",num); } // main.cpp #...
by とっち
8年前
フォーラム: C言語何でも質問掲示板
トピック: デバックするとウィンドウは出るのにすぐに消えてしまいます。
返信数: 10
閲覧数: 991

Re: デバックするとウィンドウは出るのにすぐに消えてしまいます。

ちなみに「値を返さないコントロールパスがあります」という警告についてですが、 この警告は直しておくことを推奨します。 今回の場合、 int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){ // 略 while(条件){ // 処理 return 0; } } 間違っていたコードはこのようになっていたと思います。 このとき、もしwhile文の中に入らなかった場合WinMain関数は intの値を返さなければならないのにもかかわらず、返すあたいがありません。 ですから「値を返さないコントロールパスがあります」という警告が発せられます。 同様に //mo...
by とっち
8年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームの途中に流れる音楽について
返信数: 14
閲覧数: 558

Re: ゲームの途中に流れる音楽について

このコードだとbackmusicの再生に関する所がありませんが、再生に関するところも
見せてくれると助かります。
by とっち
8年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームの途中に流れる音楽について
返信数: 14
閲覧数: 558

Re: ゲームの途中に流れる音楽について

プログラムを変えましたと言われましても・・・

そのプログラムを見なければお答えしようがありません。
質問に答えてもらうために必要だと思うコードを
のせてみてください。
by とっち
8年前
フォーラム: C言語何でも質問掲示板
トピック: デバックするとウィンドウは出るのにすぐに消えてしまいます。
返信数: 10
閲覧数: 991

Re: デバックするとウィンドウは出るのにすぐに消えてしまいます。

main.cppのmain関数において
DxLib_End();とreturn 0;
がwhile文の中にあります

ですから、ループの一回目にreturnされてmain関数が終了してしまいます。
by とっち
8年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリを用いたゲーム、メインループに疑問
返信数: 4
閲覧数: 687

Re: DXライブラリを用いたゲーム、メインループに疑問

この場合func_stateはグローバル変数なので、勝手に0に初期化されます。

もし不安なら
15行目にfunc_state=0;をつけたせばいいかと思います。

コード:

if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化
    func_state=0;
        while(ProcessLoop()==0){//メインループ
by とっち
8年前
フォーラム: C言語何でも質問掲示板
トピック: fwrite
返信数: 12
閲覧数: 1022

Re: fwrite

>boxさん 失礼しました 確かに僕の方法だとだめですね 名誉挽回のためもう一つ投下 #include <stdio.h> int main(void) { FILE *file;   int c[10]; file = fopen("test.dat","rb");   fread(c,sizeof(c),10,file); fclose(file);   for(int i=0;i<10;i++)     printf("%d\n",c[i]); return 0; } ものすごく汚いし、ひどいプログラムですが、 kureidさんのコードでtest.datを作成した場合、 1,10,100...
by とっち
8年前
フォーラム: C言語何でも質問掲示板
トピック: fwrite
返信数: 12
閲覧数: 1022

Re: fwrite

コード:

int main(void)
{
    FILE *file;
    int c;
    file = fopen("test.dat","rb");
    while(c=getc(file)!=NULL)
        printf("%d\n",c);
    fclose(file);
    return 0;
}
kureidさんのコードを実行してtest.datを作成し、
このようなコードで結果を確認すると、
1
と表示されました。

きちんと表示されているのでkureidさんがもしかしたら
バイナリエディタの設定か何かを間違っているのではないでしょうか?

詳細検索ページへ移動する