C言語何でも質問掲示板


Total hit  今日  昨日  

必ずお読み下さい → 規約と注意事項  アンケートはこちら  エラーで投稿できない方はこちら  過去ログ検索はこちら

 
   動画の停止について   
     ・[59056] MASSA 
   1、0の反転   
     ・[59009] softya 
     ・[59010] みすた 
     ・[59012] palladium 
     ・[59041] みすた 
     ・[59049] バグ 
     ・[59050] Justy 
   スクリーンセーバーへ ....   
     ・[59014] palladium 
     ・[59031] ルファー 
     ・[59033] softya 
     ・[59044] ルファー 
   配列可変長   
     ・[59032] Justy 
     ・[59035] まる 
   どのコンパイラが標準 ....   
     ・[58834] softya 
     ・[58835] たかぎ 
     ・[58837] reghorn 
     ・[58847] たかぎ 
     ・[58924] ISLe 
     ・[58949] reghorn 
     ・[58950] たかぎ 
     ・[58952] reghorn 
     ・[58953] 初級者 
     ・[58968] ISLe 
     ・[58976] GEN 
     ・[58977] たかぎ 
     ・[58979] reghorn 
     ・[58990] softya 
     ・[58996] たかぎ 
     ・[59021] reghorn 
   無題   
     ・[58988] softya 
     ・[59015] shion 
     ・[59017] softya 
   龍神録にタイトル画面 ....   
     ・[59000] ひよこ 
   リプレイについて   
     ・[58986] yu 
     ・[58987] シエル 
   VC++2010でのビルドが ....   
   チョコボなどのマップ   
     ・[58930] YuO 
     ・[58932] バズー 
     ・[58934] バズー 
     ・[58983] バズー 
   ミス投稿です削除して ....   
   bcc32コンパイラ ....   
     ・[58978] たかぎ 
   マリオのような加速に ....   
     ・[58940] dic 
     ・[58942] mmbb 
     ・[58945] 蓮 
     ・[58948] mmbb 
     ・[58966] 蓮 
     ・[58975] Justy 
   【DirectX】レンダリン ....   
     ・[58850] ぽこ 
     ・[58851] naohiro19 
     ・[58853] シエル 
     ・[58854] シエル 
     ・[58855] ぽこ 
     ・[58856] シエル 
     ・[58857] ぽこ 
     ・[58858] シエル 
     ・[58926] ISLe 
     ・[58935] シエル 
     ・[58956] ISLe 
     ・[58957] シエル 
     ・[58969] ISLe 
     ・[58971] シエル 
   3Dモデルの簡単な読み ....   
     ・[58146] TKOZ 
     ・[58168] ookami 
     ・[58176] TKOZ 
     ・[58384] TKOZ 
     ・[58393] ookami 
     ・[58501] TKOZ 
     ・[58502] TKOZ 
     ・[58531] ookami 
     ・[58536] Justy 
     ・[58539] スキマ妖怪 
     ・[58661] TKOZ 
     ・[58668] スキマ妖怪 
     ・[58674] ookami 
     ・[58681] Justy 
     ・[58729] TKOZ 
     ・[58734] ookami 
     ・[58738] TKOZ 
     ・[58955] TKOZ 
   個人でプログラミング ....   
     ・[58919] シエル 
     ・[58922] 白 
     ・[58925] ぽこ 
     ・[58936] シエル 
   デバッガについて   
     ・[58916] softya 
     ・[58928] MASSA 
   【雑談】DirectX11 か ....   
     ・[58795] DecentLove 
     ・[58797] yamataka 
     ・[58809] 御津凪 
     ・[58817] シエル 
     ・[58842] dic 
     ・[58843] シエル 
     ・[58844] DecentLove 
     ・[58846] naohiro19 
     ・[58890] ぬっち 
     ・[58927] ISLe 
   ネットワークのプログ ....   
     ・[58808] ISLe 
     ・[58840] dic 
     ・[58920] ISLe 
   ミニゲームを作ってみ ....   
     ・[58702] バグ 
     ・[58704] シエル 
     ・[58705] シエル 
     ・[58706] yu 
     ・[58707] へろり 
     ・[58708] パコネコ 
     ・[58717] シエル 
     ・[58721] へろり 
     ・[58790] ひよこ 
     ・[58908] へろり 
   プログラミングの館の ....   
     ・[58904] Dixq (管理人) 
   .exeのことで   
     ・[58892] array 
     ・[58903] YuO 
   C言語です。おねがいし ....   
     ・[58864] パコネコ 
     ・[58865] かをり 
     ・[58867] パコネコ 
     ・[58871] バグ 
     ・[58874] フリオ 
     ・[58875] パコネコ 
     ・[58877] がくせい 
     ・[58881] ぽこ 
     ・[58882] パコネコ 
     ・[58885] フリオ 
     ・[58886] toyo 
     ・[58887] パコネコ 
     ・[58888] かおり 
     ・[58889] かおり 
     ・[58894] Dixq (管理人) 
     ・[58898] Mist 
     ・[58899] シエル 
   ランダムウォークに関 ....   
     ・[58841] dic 
     ・[58872] バグ 
     ・[58895] Dixq (管理人) 
   正整数nを読み込んで ....   
     ・[58861] パコネコ 
     ・[58862] Yperia 
     ・[58866] saki太郎 
     ・[58868] パコネコ 
     ・[58869] saki太郎 
     ・[58870] フリオ 
     ・[58873] パコネコ 
     ・[58876] saki太郎 
     ・[58878] saki太郎 
     ・[58879] toyo 
     ・[58880] Yperia 
     ・[58883] saki太郎 
     ・[58884] パコネコ 
   ジャンプのコード   
     ・[58845] ひよこ 
   char型配列にint型のデ ....   
     ・[58772] めるぽん 
     ・[58773] パコネコ 
     ・[58774] toyo 
     ・[58775] みけCAT 
     ・[58836] たかぎ 
   無題   
     ・[58830] reghorn 
     ・[58831] hitomi 
     ・[58832] reghorn 
     ・[58833] hitomi 
   任意の値です   
     ・[58793] s-rush 
     ・[58796] あや 
     ・[58798] softya 
     ・[58799] あや 
     ・[58800] s-rush 
     ・[58801] パコネコ 
     ・[58802] s-rush 
     ・[58803] softya 
     ・[58804] あや 
     ・[58805] パコネコ 
     ・[58806] あや 
     ・[58807] s-rush 
     ・[58810] パコネコ 
     ・[58811] あや 
     ・[58812] パコネコ 
     ・[58813] あや 
     ・[58814] シエル 
     ・[58815] s-rush 
     ・[58816] パコネコ 
     ・[58818] s-rush 
     ・[58819] あや 
     ・[58820] パコネコ 
     ・[58821] あや 
     ・[58822] パコネコ 
     ・[58823] あや 
     ・[58824] パコネコ 
     ・[58826] あや 
     ・[58827] パコネコ 
   シューティングゲーム ....   
     ・[57920] jay 
     ・[57950] (´・ω・`) 
     ・[58152] (´・ω・`) 
     ・[58155] 白い時空 
     ・[58158] wing 
     ・[58254] (´・ω・`) 
     ・[58537] (´・ω・`) 
     ・[58597] jay 
     ・[58791] (´・ω・`) 
   pimplイディオムの使用 ....   
     ・[58733] たかぎ 
     ・[58735] ぽこ 
     ・[58736] たかぎ 
     ・[58740] ぽこ 
     ・[58742] たかぎ 
     ・[58743] ぽこ 
     ・[58744] たかぎ 
     ・[58746] めるぽん 
     ・[58749] ぽこ 
     ・[58757] めるぽん 
     ・[58789] ぬっち 
   選択画面。   
     ・[58786] パコネコ 
   キー入力制限   
     ・[58783] 白い時空 
     ・[58784] AMU 
   メモリリーク:オブジ ....   
     ・[58771] Justy 
     ・[58777] Yperia 
     ・[58778] MNS 
     ・[58781] Yperia 
     ・[58782] Yperia 
   使用するVisual Studi ....   
     ・[58766] Dixq (管理人) 
     ・[58767] softya 
     ・[58768] 阿久津 
   初めまして   
     ・[58712] Mist 
     ・[58718] パコネコ 
     ・[58719] JAA 
     ・[58725] ISLe 
     ・[58726] たかぎ 
     ・[58745] box 
     ・[58754] ISLe 
   画像読み込みエラー   
     ・[58673] シエル 
     ・[58696] dom 
     ・[58737] naohiro19 
   ゲーム作りました&通 ....   
     ・[58679] ぬるぽ 
     ・[58683] shiro4ao 
     ・[58687] 白い時空 
     ・[58732] DG 
   3次元グラフを作る(2 ....   
     ・[58715] HK 
     ・[58727] ISLe 
     ・[58728] HK 
   基本的なゲーム   
     ・[58647] 蓮 
     ・[58649] MNS 
     ・[58650] パコネコ 
     ・[58652] パコネコ 
     ・[58656] シエル 
     ・[58660] パコネコ 
     ・[58664] softya 
     ・[58665] パコネコ 
     ・[58666] softya 
     ・[58667] softya 
     ・[58669] シエル 
     ・[58670] 御津凪 
     ・[58671] パコネコ 
     ・[58677] ムンバ 
     ・[58722] パコネコ 
   求人2   
     ・[58598] DecentLove 
     ・[58600] s-rush 
     ・[58601] DecentLove 
     ・[58602] s-rush 
     ・[58604] シエル 
     ・[58605] パコネコ 
     ・[58606] softya 
     ・[58607] s-rush 
     ・[58608] たかぎ 
     ・[58609] DecentLove 
     ・[58610] s-rush 
     ・[58611] DecentLove 
     ・[58612] softya 
     ・[58613] パコネコ 
     ・[58614] がくせい 
     ・[58615] 通りすがり 
     ・[58616] DecentLove 
     ・[58617] DecentLove 
     ・[58618] s-rush 
     ・[58621] さんg 
     ・[58629] 通りすがり 
     ・[58648] DecentLove 
     ・[58653] パコネコ 
     ・[58689] Tororo 
     ・[58690] 真等 
     ・[58691] DecentLove 
     ・[58693] ookami 
     ・[58695] s-rush 
     ・[58709] DecentLove 
     ・[58710] Mist 
     ・[58714] パコネコ 
     ・[58716] シエル 
     ・[58720] DecentLove 
   DxDirectX.h 890: 宣言 ....   
     ・[58554] ookami 
     ・[58555] naohiro19 
     ・[58557] toyo 
     ・[58626] 未来のプログラマー  
     ・[58627] 未来のプログラマー  
     ・[58628] Mist 
     ・[58630] toyo 
     ・[58632] 未来のプログラマー  
     ・[58634] 未来のプログラマー  
     ・[58635] がくせい 
     ・[58636] nanashi 
     ・[58637] 未来のプログラマー  
     ・[58641] 白い時空 
     ・[58692] 未来のプログラマー  
     ・[58694] 未来のプログラマー  
   関数の再帰呼び出しに ....   
     ・[58541] ぽこ 
     ・[58546] パコネコ 
     ・[58549] すいそ 
     ・[58551] naohiro19 
     ・[58644] 初級者 
     ・[58688] 尤 
   WinAPI32で、3次元グラ ....   
     ・[58651] HK 
     ・[58654] シエル 
     ・[58655] fatens 
     ・[58657] パコネコ 
     ・[58658] シエル 
     ・[58662] HK 
     ・[58663] HK 
     ・[58686] ISLe 
   Mac OpenGL ESでの開発 ....   
     ・[58638] 蓮 
     ・[58639] softya 
     ・[58640] 蓮 
     ・[58659] めるぽん 
     ・[58680] Justy 
     ・[58685] 蓮 

Name: MASSA  ..ぴよぴよ(633ポイント)   Date: 2010/08/15(日) 20:47   No:59045       
Title: 動画の停止について    
void playmovie(){
    PlayMovie( "../dat/movie/0.avi" , 1 , DX_MOVIEPLAYTYPE_NORMAL ) ;
}

という関数を作ったのですが、
特定のキーを押したらこの関数(void playmovie)から抜けるにはどうすればよいでしょうか
PlayMovie関数を使わなくてもいいのですが、PlayMovieToGraph関数を使うとうまく表示できません
(音は出るのですが、画面が始め真っ黒で、しばらくするとに静止画的な感じで途中の画面が表示されます)



185ポイント を手に入れた。


Name: MASSA  ..ぴよぴよ(641ポイント)   Date: 2010/08/15(日) 23:13   No:59056 解決!     
Title: Re:動画の停止について    
解決しました

8ポイント を手に入れた。



Name: みすた  ..ぴよぴよ(612ポイント)   Date: 2010/08/15(日) 13:41   No:59008       
Title: 1、0の反転    
int a;
(中略)
if(a == 0) a = 1;
else if(a == 1) a = 0;

このように、もしa=0なら1に、a=1なら0にしたい時の処理を何度も行ないたいのですが、
もう少しシンプルな表記方法はあるでしょうか。(1回の命令で済ませられるようなもの)
ビット反転だと、全部のビットが入れ替わってしまうのでダメですし、
何かいいのがありましたら教えて頂ければと思います。 編集済み


149ポイント を手に入れた。


Name: softya [URL]  ..ハッカー(194,373ポイント)   Date: 2010/08/15(日) 13:43   No:59009     
Title: Re:1、0の反転    
XORは指定したビットしか反転しませんよ。
a = a ^ 1;


22ポイント を手に入れた。

Name: みすた  ..ぴよぴよ(644ポイント)   Date: 2010/08/15(日) 13:44   No:59010 解決!     
Title: Re:1、0の反転    
そうだったんですか!知りませんでした。
ありがとうございました。 編集済み


32ポイント を手に入れた。

Name: palladium  ..ぴよぴよ(3ポイント)   Date: 2010/08/15(日) 13:58   No:59012     
Title: Re:1、0の反転    
 BOOL bFlag = FALSE;
 bFlag = !bFlag; 



3ポイント を手に入れた。

Name: みすた  ..ぴよぴよ(667ポイント)   Date: 2010/08/15(日) 20:22   No:59041 解決!     
Title: Re:1、0の反転    
それもスマートですね。
ありがとうございます。


23ポイント を手に入れた。

Name: バグ  ..ハッカー(207,239ポイント)   Date: 2010/08/15(日) 22:09   No:59049     
Title: Re:1、0の反転    
単純に短いだけなら…

a ^= 1

でどうでしょうか?


30ポイント を手に入れた。

Name: Justy  ..伝説なるハッカー(564,009ポイント)   Date: 2010/08/15(日) 22:16   No:59050     
Title: Re:1、0の反転    
a = 1 - a 
とか。


12ポイント を手に入れた。



Name: ルファー [URL]  ..入門者(4,658ポイント)   Date: 2010/08/15(日) 14:08   No:59013       
Title: スクリーンセーバーへの引数    
 お久しぶりです。ルファーです。

 スクリーンセーバーのプレビューをするときに「/p (HWND値)」という引数が来る、ということがいろいろなサイトに書いてあるのですが、
そのHWND値が 何進数で 符号はつくのか ということについて、ググってみたところわかりませんでした。
誰か知っていますか?
ビット長はおそらくint型と同じだと思うのですが…。


132ポイント を手に入れた。


Name: palladium  ..ぴよぴよ(49ポイント)   Date: 2010/08/15(日) 14:32   No:59014     
Title: Re:スクリーンセーバーへの引数    
typedef void *PVOID // winnt.h
typedef PVOID HANDLE // winnt.h
typedef HANDLE HWND // windef.h

void * ≒ HWND


46ポイント を手に入れた。

Name: ルファー  ..入門者(4,720ポイント)   Date: 2010/08/15(日) 18:45   No:59031     
Title: Re:スクリーンセーバーへの引数    
 いやそういうことではなくて、
文字列として表現されたHWND値をどのようにして変換すれば良いのかという趣旨で質問したのですが。


62ポイント を手に入れた。

Name: softya [URL]  ..ハッカー(195,180ポイント)   Date: 2010/08/15(日) 19:15   No:59033     
Title: Re:スクリーンセーバーへの引数    
ここでatoiで変換しているので10進数で、符号は不明って処でしょうか。
http://akky.cjb.net/mfc/optuse.html
というか符号があっても問題ないと思います。



16ポイント を手に入れた。

Name: ルファー  ..入門者(4,901ポイント)   Date: 2010/08/15(日) 20:42   No:59044     
Title: Re:スクリーンセーバーへの引数    
ご教授ありがとうございます。

Windowsのバージョンによっては3GBのメモリに対応していて、そうなると0xbfffffff以下がメインメモリのアドレスになるので符号はどうなるのだろうと思って符号について質問してみました。

 ちなみに引数を表示して終了するプログラムを作ってscrとしてプレビューさせてみたら6桁でアルファベットを含まない整数でした。
符号の有無を確認するには小さすぎる整数が出てきました…。


181ポイント を手に入れた。



Name: まる  ..入門者(2,597ポイント)   Date: 2010/08/15(日) 18:07   No:59027       
Title: 配列可変長    
こんにちは、iphoneアプリで画像をスライドショーするようなプログラム作成中なのですが、
下線部の箇所を配列の数は、可変長で、配列からひっぱってきたいのですが可能でしょうか?
どういうイメージで作成すればいいでしょうか?
言語:Object-C


        NSArray *images = [NSArray arrayWithObjects:
                                                 [ UIImage imageNamed: @"img1.jpg" ],
                         [ UIImage imageNamed: @"img2.jpg" ],
                         [ UIImage imageNamed: @"img3.jpg" ],
                         [ UIImage imageNamed: @"img4.jpg" ],
                         nil
                                     ];





→イメージ

        NSArray *images = [NSArray arrayWithObjects:
                                        下記をfor的な文法ものでまわす。
                                                 [ UIImage imageNamed: @"img[i].jpg" ],
                                                 =======================================
                         nil
                                     ];


 編集済み


395ポイント を手に入れた。


Name: Justy  ..伝説なるハッカー(563,815ポイント)   Date: 2010/08/15(日) 18:51   No:59032     
Title: Re:配列可変長    
>配列の数は、可変長で、配列からひっぱってきたい

 配列の数を配列から引っ張ってきたいというのは、別の配列があるということでしょうか?
 ちょっとそのあたりがよくわかりませんでしたが、とりあえず可変長な配列から。

 NSArrayは固定配列なので、自由に追加削除をしたいのであれば代わりに
NSMutableArrayを使ってみてください。

 例えばこんな感じで。


    NSMutableArray *arr = [[NSMutableArray alloc] init];
    for(int n=0; n<10; ++n)
    {
        NSString *imageName = [NSString stringWithFormat: @"img%d.jpg", n+1];
        [arr addObject:[UIImage imageNamed:imageName]]; 
    }


569ポイント を手に入れた。

Name: まる  ..入門者(2,639ポイント)   Date: 2010/08/15(日) 19:34   No:59035 解決!     
Title: Re:配列可変長    
Justyさんありがとうございます。

ひとまず本回答で疑問解決しました。

ありがとうございました。



42ポイント を手に入れた。



Name: reghorn  ..かけだし(1,048ポイント)   Date: 2010/08/13(金) 01:36   No:58828       
Title: どのコンパイラが標準なのか?    
普段はVC++を使っています。
VC++では次のような書き方、
#include<stdio.h>
int main(){
int n=5;
int i;
int a[n];
for(i=0;i<n;i++)
    a[i]=i;
for(i=0;i<n;i++)
    printf("%d\n",a[i]);
}
をするとVC++のコンパイラ(デバッガ?)に怒られるのでこれは駄目な書き方だと思っていたのですが、 gccでコンパイルすると上のような書き方で問題なく動作しました。 手持ちのCの本をみても上のような書き方をしている例はなく、書くとすれば次のようになるのだと思います。
int n=5;
int *a=(int)malloc(sizeof(int)*n);
以下略
他にも関数の先頭以外での変数宣言の可否などVC++とgccでは違いがあるようなのですが、どちらを基準に勉強していくべきなのでしょうか? gccで可になっているものが多いのでVC++のコンパイラが古いと考えるのか、それともgccは普通じゃない書き方を許容するようにしているのかわかりませんが、自分が普段使っているものにあわせて覚えればいいものなのでしょうか? スレッドを2つたてるのもあれな質問なのでもう一つ質問です。
float f = 1.0f;

のように代入の最後に英字をつける書き方があるようなのですが、これは何を意味するのでしょうか。

以上2つの質問です、よろしくお願いします




360ポイント を手に入れた。


Name: softya [URL]  ..ハッカー(192,526ポイント)   Date: 2010/08/13(金) 02:40   No:58834     
Title: Re:どのコンパイラが標準なのか?    
gccはC99の規格でコンパイルされるものと思われます。
VC++は、特に意識しないで使うとC++コンパイラが働きます。C++はCの上位互換ではありますがCには無い文法を含んでいますのでVC++の場合はファイル拡張子.cを使ってください。そうすることでC言語のコンパイラが働きます。と言ってもC90の規格にしか対応していませんので、
int a[n];
はC99規格対応のgccでないと通りません。

C90と違うC99の特徴。
http://rengo49.cs.kobe-u.ac.jp/~mori/4students/enshu/enshu1/MORI/StandardC.html

大体のC言語入門サイトや入門書はC90規格で書かれていると思いますし、C90対応のみのコンパイルも数多くあるんでC99を知っているに越したことは無いですが、まずC90の文法をちゃんと理解することから始めた方が良いと思います。

ちなみに
float f = 1.0f;
の最後のfはfloatのfです。


274ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(218,916ポイント)   Date: 2010/08/13(金) 02:42   No:58835     
Title: Re:どのコンパイラが標準なのか?    
> int n=5;
> int a[n];

とか

> 関数の先頭以外での変数宣言

に関しては、現行規格という観点ではGCCが正解です。
Visual C++のCコンパイラは古い規格に基づいています。

> float f = 1.0f;

添字のfは、その定数がfloat型であることを意味しています。
ちなみに、lをつければlong double型であることを意味します。
(整数定数の場合はまた話が別です)


76ポイント を手に入れた。

Name: reghorn  ..かけだし(1,504ポイント)   Date: 2010/08/13(金) 04:57   No:58837     
Title: Re:どのコンパイラが標準なのか?    
御ふたりとも返信ありがとうございます。
VC++のコンパイラは古いんですね、ぐぐってみても対応予定はないような感じでした。
Cを使い始めてもう3年で入門書にあるようなことは一通り覚えたのでC99のほうも勉強してみます。

<pre>float f = 1.0f;<pre> のfはfloatを表すとのことですが付けない場合とつけた場合となにが違うのでしょう?


2倍のポイントを手に入れた! 286ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(219,086ポイント)   Date: 2010/08/13(金) 09:55   No:58847     
Title: Re:どのコンパイラが標準なのか?    
1.0fのfが付いていない場合、つまり、単なる1.0であればdouble型になります。


36ポイント を手に入れた。

Name: ISLe  ..中級者(12,862ポイント)   Date: 2010/08/14(土) 00:41   No:58924     
Title: Re:どのコンパイラが標準なのか?    
> int n=5;
> int a[n];

これはgcc拡張でずいぶん前から使えますよね。

質問のコードを
$> gcc -std=c89 foo.c
とコンパイルしてもエラーになりません。
↑はgcc拡張でOK、
$> gcc -std=c99 foo.c
↑はC99規格でOKと意味が違いますね。

#gcc拡張は-pedantic付けると警告、-pedantic-errorsを付けるとエラーになります。


> fはfloatを表すとのことですが付けない場合とつけた場合となにが違うのでしょう?

floatはdoubleより使用するメモリ量が少なくて済みます。


101ポイント を手に入れた。

Name: reghorn  ..かけだし(1,592ポイント)   Date: 2010/08/14(土) 17:33   No:58949     
Title: Re:どのコンパイラが標準なのか?    
御ふたりとも返信ありがとうございます
float x = 1.0;
としてfを付けなかった場合float型変数xの実体はdouble型になり、
float x=1.0f;
とした場合よりメモリ消費が多くなるというこでよろしいでしょうか?


88ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(219,133ポイント)   Date: 2010/08/14(土) 17:40   No:58950     
Title: Re:どのコンパイラが標準なのか?    
> メモリ消費が多くなるというこでよろしいでしょうか?

違います。


5ポイント を落としてしまった。

Name: reghorn  ..かけだし(1,626ポイント)   Date: 2010/08/14(土) 18:08   No:58952     
Title: Re:どのコンパイラが標準なのか?    
あら、違うのですか。

> fを付けなかった場合float型変数xの実体はdouble型になり
ここまではいいのでしょうか?

いいとするとメモリ消費か桁数くらいしかdoubleとfloatで異なるものが思いつかないのですが。


34ポイント を手に入れた。

Name: 初級者  ..初心者(8,706ポイント)   Date: 2010/08/14(土) 18:17   No:58953     
Title: Re:どのコンパイラが標準なのか?    
float型と定義した変数は、どうころんでもfloat型のままです。

実体が別の型を持つなんてことはありません。


45ポイント を手に入れた。

Name: ISLe  ..中級者(13,325ポイント)   Date: 2010/08/14(土) 21:53   No:58968     
Title: Re:どのコンパイラが標準なのか?    
> としてfを付けなかった場合float型変数xの実体はdouble型になり、

異なるのはリテラルの1.0と1.0fです。

ただし
> float x = 1.0;
> float x = 1.0f;
これらの場合は最適化されて結果として同じ実行コードになるでしょう。


48ポイント を手に入れた。

Name: GEN  ..ぴよぴよ(4ポイント)   Date: 2010/08/15(日) 01:40   No:58976     
Title: Re:どのコンパイラが標準なのか?    
そりゃMicrosoft社製のVisualシリーズですよ。
もうこれが世界基準みたいなもんですからね。


4ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(219,167ポイント)   Date: 2010/08/15(日) 01:49   No:58977     
Title: Re:どのコンパイラが標準なのか?    
> そりゃMicrosoft社製のVisualシリーズですよ。 
> もうこれが世界基準みたいなもんですからね。

マイクロソフトのプラットフォームに対してはそうでしょうね。
一歩外に出れば、まったく通用しませんが。


34ポイント を手に入れた。

Name: reghorn  ..かけだし(1,674ポイント)   Date: 2010/08/15(日) 02:12   No:58979 解決!     
Title: Re:どのコンパイラが標準なのか?    
皆さん返信ありがとうございます
ここまで読んできましたが結局fを付ける意味やメリットがわかりませんでした…。

スレッドのタイトルと剥離してきたので一応解決つけときます


48ポイント を手に入れた。

Name: softya [URL]  ..ハッカー(193,301ポイント)   Date: 2010/08/15(日) 10:12   No:58990     
Title: Re:どのコンパイラが標準なのか?    
初期値の場合は意味ないですが式の途中にある値が1.0なのか1.0fなのかでは違ってきますよ。




25ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(219,276ポイント)   Date: 2010/08/15(日) 10:54   No:58996     
Title: Re:どのコンパイラが標準なのか?    
初期値であっても、

double pi = 3.141592653589793f;

のような場合は影響が出ます。
もともとがfloat型であれば、それをいくらdouble型に変換しても、float型より多くの精度を得ることは不可能です。


60ポイント を手に入れた。

Name: reghorn  ..かけだし(1,785ポイント)   Date: 2010/08/15(日) 16:44   No:59021     
Title: Re:どのコンパイラが標準なのか?    
御ふたりとも回答ありがとうございます
たかぎさんの書かれた変数宣言をコピペしてprintf表示してみたら3.141592より下の桁はおかしくいました。fを外すと最後の桁まで大丈夫なようでしたのでfを付けるとおかしくなる場合はなんとなくわかりました。


111ポイント を手に入れた。



Name: shion  ..ぴよぴよ(108ポイント)   Date: 2010/08/15(日) 04:02   No:58981       
Title: 無題    
 現在、RPGを作成しようと思っているのですが…
 テイルズオブエターニアみたいな町を表現したいと思っているところです。

 ああいう町を表現するには、どのような画像を用意し、どういった制御をしたら一番効率がいいでしょうか?
 
 もし、よろしければ、コメントお願いします。


108ポイント を手に入れた。


Name: softya [URL]  ..ハッカー(193,276ポイント)   Date: 2010/08/15(日) 10:08   No:58988     
Title: Re:無題    
そうですね。
キャラクタは8方向みたいです。
背景は、一枚絵の背景とドット単位で奥行き関係を表すZ値のデータが必要だと思います。あと当たり判定情報ですね。3DCGなら比較的作るのは簡単ですが、2DCGだと専用ツールの自作が必要でしょう。
テイルズオブエターニアの方法とは違いますが、何も無い背景に家とかは別パーツにして、画面奥から順番に置いていくという描画方法もあります。まぁ、これも専用ツールの自作が必要です。


160ポイント を手に入れた。

Name: shion  ..ぴよぴよ(319ポイント)   Date: 2010/08/15(日) 15:22   No:59015     
Title: Re:無題    
 softyaさんコメントありがとうございます。

 3Dは、モデリングをする人がいないということもあり、2Dで作成しようとしているところです。
 やはり、専用ツールが必要になるのでしょうか?

 Z値に関しての制御はなんとかなりそうなのですが、今、当たり判定をどうしようか考えています。
 やはり、建物ごとに当たり判定をするべきでしょうか?
 それとも、グリッドに数値をいれて、その数値によって当たり判定をするべきでしょうか?


211ポイント を手に入れた。

Name: softya [URL]  ..ハッカー(194,611ポイント)   Date: 2010/08/15(日) 15:32   No:59017     
Title: Re:無題    
>3Dは、モデリングをする人がいないということもあり、2Dで作成しようとしているところです。
>やはり、専用ツールが必要になるのでしょうか? 

前景・背景がハッキリと分けられる建物みたいなのはアルファマスクみたいな感じで良いのですが、問題は椅子や机などのようなキャラ位置との関係で前景になったり背景になったりするオブジェクトですね。
オブジェクトを配置するだけで、自動的にZ値が設定できるツールを考えたほうが良いかと思いますが。

>やはり、建物ごとに当たり判定をするべきでしょうか?
>それとも、グリッドに数値をいれて、その数値によって当たり判定をするべきでしょうか?

グリッドが細ければ、大丈夫だと思いますよ。
※ ただし、橋の上と下をキャラが通るとか三次元的なマップを作るとすると単純なグリッドでは難しくなります。
 編集済み


238ポイント を手に入れた。



Name: プログラマン  ..ぴよぴよ(120ポイント)   Date: 2010/08/15(日) 11:39   No:58999       
Title: 龍神録にタイトル画面等の追加    
龍神録のサンプルプログラムに、
タイトル画面→キャラクター同士の掛け合い(ノベル風に)→シューティングパート(龍神録の本編)
という風にアレンジしたいのですが、どこをどう変更していいのか分からなくなってしまいました。
もしよろしければ簡単でも良いので、どなたかアドバイスを下さらないでしょうか?
お願い致します。本当に申し訳ございません><


120ポイント を手に入れた。


Name: ひよこ  ..比類無きプログラマー(86,646ポイント)   Date: 2010/08/15(日) 11:45   No:59000     
Title: Re:龍神録にタイトル画面等の追加    
メインループのswitch(func_state)の中に
case タイトル:
タイトルの処理(スタートのコマンドが押されたらストーリノベルへ)
break;
case ストーリノベル:
ノベルの処理(話が終わったらシューティング本編へ)
break;
case シューティングゲーム
break;
のような感じで書いていけばいいと思います。


121ポイント を手に入れた。



Name: シエル  ..熟練のプログラマー(49,440ポイント)   Date: 2010/08/15(日) 09:01   No:58985       
Title: リプレイについて    
お世話になります。

今作成している、シューティングゲームについてリプレイの機能を実装したいと思っています。
キーの入力データを保存しておいて、そのデータを後で読み込んで動かせば、
リプレイにはなると思っていますのが、気になったのは敵がランダムで撃ってくるショット
についてです。

ショットのいくつかのパターンで、ある一定の角度の範囲内でランダムに撃ってくるショットが
あるのですが、あとでリプレイを再生した際に、ランダムで撃ってしまうので、実際にプレイしたときとは
違う方向にショットが飛んでしまうと思います。

実際のプレイでそのランダムショットに当たって死亡した場合、リプレイ時には当たらなくなってしまう
というような状態になってしまうと思っているのですが、
このような場合どのように対応すればよろしいでしょうか?

実際のプレイ時と同じ乱数を発生させる方法はあるのでしょうか?

分かりにくかったらすみません。よろしくお願い致します。


追記:
書き忘れてました。
乱数については、rand()%100というような形で発生させてます。 編集済み


396ポイント を手に入れた。


Name: yu  ..熟練のプログラマー(43,841ポイント)   Date: 2010/08/15(日) 09:09   No:58986     
Title: Re:リプレイについて    
rand関数 でしたら srand関数 を使えば乱数のシードを設定することができます。
結局、ランダムな数も計算で出た値なのでシードが同じだと、同じパターンの値が出ます。

一応リンクも張っておきますね。
http://dixq.net/g/35.html


#以下、追記
リプレイのことですが、
ファイルに入力データ以外に乱数のシードを保存しておいて srand関数 に渡せば大丈夫だと思います。
しかし、静的な変数が何かしらの悪さをしてずれることがあるので注意しなければいけません。
 編集済み


10ポイント を手に入れた。

Name: シエル  ..熟練のプログラマー(49,470ポイント)   Date: 2010/08/15(日) 09:30   No:58987 解決!     
Title: Re:リプレイについて    
yuさん!ありがとうございます!

srand関数って、こういう使い方できるんですね・・・!
しかも、ゲームプログラミングの館にあったんですね。すみません。

これで後は何とかできそうです!解決にいたします!


30ポイント を手に入れた。



Name: h2so5  ..ぴよぴよ(408ポイント)   Date: 2010/08/15(日) 08:18   No:58984       
Title: VC++2010でのビルドができない    
はじめまして。

ゲームプログラムにXtalというスクリプトインタプリタを組み込んで使っています。
http://code.google.com/p/xtal-language/)

インタプリタの本体(xtallib.lib)が、VC++2008 Expressでは正常にビルドできるのですが
VC++2010 Expressでは次のエラーが出てビルドできません。

\src\xtal\xtal_base.h(105): error C2661: 'xtal::visit_members' : 1 個の引数を伴うオーバーロードされた関数はありません。

C++の経験があまりないためコードの内容があまり理解できないのですが、
一応「オーバーロードされた関数」は存在するようですし、
現に同じコードでVC++2008ではエラーが出ていないのでコード自体に問題があるようには見えません。



VC++2010ではプロジェクトを変換しないといけませんが、
変換のみで他はなにも変更せずにビルドするとエラーが出ます。
何か設定などが必要なのでしょうか?

また、VC++2008とVC++2010が同時にインストールされていると、VC++2010から
VC++2008のコンパイラを使用するように設定ができるのですが、
その設定の場合は問題なくビルドできるようです。



問題のソースをアップしておきました。
http://bit.ly/9wqNAd

http://code.google.com/p/xtal-language/からSVNクライアントで落とした
ものからいらないファイルを削ってzipでまとめています。
vc9\xtallib\xtallib.vcprojがプロジェクトファイルです。

とりあえず、2010のコンパイラでエラーが出るだけなので開発するのに支障はないのですが
原因を知っておきたいと思い質問させていただきます。
 編集済み


408ポイント を手に入れた。




Name: バズー  ..ぴよぴよ(7ポイント)   Date: 2010/08/14(土) 01:32   No:58929       
Title: チョコボなどのマップ    
チョコボなどの自動生成マップはどのようにして作られているのでしょうか?
二次元配列で管理されていそうなのですがロジックが思い浮かびません。
ランダムにつくるにしても部屋ごとが繋がらなければならないなどありますよね?


7ポイント を手に入れた。


Name: YuO  ..熟練のプログラマー(47,637ポイント)   Date: 2010/08/14(土) 02:16   No:58930     
Title: Re:チョコボなどのマップ    
「チョコボ」が何を指しているかは知りませんが,
昔からあるローグタイプのダンジョン自動生成に関しては,色々なアルゴリズムが存在します。
Google: ローグ 自動生成 - Google 検索
http://www.google.co.jp/search?hl=ja&source=hp&q=%E3%83%AD%E3%83%BC%E3%82%B0+%E8%87%AA%E5%8B%95%E7%94%9F%E6%88%90&aq=f&aqi=&aql=&oq=&gs_rfai=

書籍だと,例えば
Amazon.co.jp: ダンジョンゲームプログラミング: 森山 弘樹, 鷲見 健二: 本
http://www.amazon.co.jp/dp/4797346280/
は,内容紹介で「ローグ型ゲームの作成に必要な技術を網羅しました。」とある通り,実際にマップ生成方法が書いてあった覚えがあります。
# 立ち読みでざっと目を通した程度ですが。


72ポイント を手に入れた。

Name: バズー  ..ぴよぴよ(276ポイント)   Date: 2010/08/14(土) 02:56   No:58932     
Title: Re:チョコボなどのマップ    
参考になるサイトをありがとうございます。
概念は何となく理解することが出来ました。

DXライブラリを使って実装しようと思っております。
ただ下記でつまづいてしまいました。
http://racanhack.sourceforge.jp/rhdoc/coderect.html


struct _rect {
  int lx, ly, hx, hy;
};

GList *rect_list;

struct _rect *rect_add(int lx, int ly, int hx, int hy)
{
  struct _rect *rect;
  rect = g_new(struct _rect, 1);
  rect->lx = lx;
  rect->ly = ly;
  rect->hx = hx;
  rect->hy = hy;
  rect_list = g_list_append(rect_list, rect);
  return(rect);
}



上記のソースはどういう意味なのでしょうか?
構造体を作って部屋のサイズを設定しているのはわかるのですが
これをどのようにDXライブラリでも使えるようにするかがわかりません。
今後の為にも理解したいです。

お手間を取らせてしまい申し訳ないのですが教えては頂けないでしょうか?


269ポイント を手に入れた。

Name: バズー  ..かけだし(1,376ポイント)   Date: 2010/08/14(土) 05:20   No:58934     
Title: Re:チョコボなどのマップ    
連レス失礼します。
自分なりに書いたソースを添付させて頂きます。

頂いたURLのsplitのhxはサイズなのでしょうか?それとも終わりの場所なのでしょうか?
自分なりに解釈したソースでは終わりの部分を指定して塗りつぶす様な処理にしてあります。
イマイチglibの関数系やソースの書き方が読めないので間違えていたらすみません。
又、add関数を書いておりません(使い方がわからないです)

#define MAP_W 50
#define MAP_H 40
#define MINIMUM_RECT_SIZE 8
#define CEL_SIZE 8
bool MapRandom[MAP_H][MAP_W];

// 分割する
void RectSplit( int lx, int ly, int hx, int hy ){
    for (int y=ly; y<=hy; y++) {
        for (int x=lx; x<=hy; x++) {
            if( x==lx || x==hx ) MapRandom[y][x] = true;
            if( y==ly || y==hy ) MapRandom[y][x] = true;
        };
    };
}

〜Init部分〜
    for (int y=0; y<MAP_H; y++) {
        for (int x=0; x<MAP_W; x++) {
            MapRandom[y][x] = false;
        };
    };
    RectSplit( 3, 3, 8, 8 );

〜表示部分〜
    for (int y=0; y<MAP_H; y++) {
        for (int x=0; x<MAP_W; x++) {
            if( !MapRandom[y][x] ) DrawBox( x*CEL_SIZE, y*CEL_SIZE, x*CEL_SIZE+CEL_SIZE, y*CEL_SIZE+CEL_SIZE, 0x000000, 255 );
            else DrawBox( x*CEL_SIZE, y*CEL_SIZE, x*CEL_SIZE+CEL_SIZE, y*CEL_SIZE+CEL_SIZE, 0xff0000, 255 );
        };
    };


2倍のポイントを手に入れた! 1,100ポイント を手に入れた。

Name: バズー  ..かけだし(1,413ポイント)   Date: 2010/08/15(日) 05:39   No:58983     
Title: Re:チョコボなどのマップ    
やはりわかりません。
質問が消えてしまいそうなので上げさせて下さい。


37ポイント を手に入れた。



Name: soul-hex  ..ぴよぴよ(59ポイント)   Date: 2010/08/15(日) 03:59   No:58980       
Title: ミス投稿です削除してください    
ミス投稿です削除してください 編集済み

59ポイント を手に入れた。




Name: こもりん  ..ぴよぴよ(198ポイント)   Date: 2010/08/14(土) 13:20   No:58944       
Title: bcc32コンパイラー    
http://dixq.net/rp/1.html
今↑のところまでやってきたんですけど、ここでダウンロードできるファイルにはVisualStudio用のプロジェクトファイルしかありません。
VisualStudioでプログラミングしたいのはやまやまなんですけど、どうもインストールの方法が分かりませんし使いなれないのでどなたかBccDEV統合開発環境をお使いの方はどうやってやっているんでしょうか??
教えてください。後よければプロジェクトファイルを作って送付していただきたいです。


198ポイント を手に入れた。


Name: たかぎ [URL]  ..ハッカー(219,216ポイント)   Date: 2010/08/15(日) 01:53   No:58978     
Title: Re:bcc32コンパイラー    
自分でMakefileを書くのが原則だと思います。
使っている統合開発環境にあったプロジェクトが欲しければ、これも自分で作るのが原則です。
よいものができれば、一般公開すれば、喜ぶ人がいるかもしれません。


49ポイント を手に入れた。



Name: mmbb  ..ぴよぴよ(121ポイント)   Date: 2010/08/14(土) 11:10   No:58939       
Title: マリオのような加速について    
マリオのようなだんだん加速していく動きが分かりません。。。
forループやspeed++等色々やってみましたが分かりませんでした

// もしプレイヤーが画面の350にきたら止まり、マップを左にスクロール
if( PlayerX > 350 )
        {PlayerX = 350;
        if( Key & PAD_INPUT_RIGHT )mapx -= 3; }


        
        
        // もしプレイヤーが画面の左寄りにきたら右にマップスクロール
        if( PlayerX < 200 )
        {PlayerX = 200;
        if( Key & PAD_INPUT_LEFT ) mapx += 3 ;
        }
PlayerXは自機でmapxは背景の画像です
加速後のジャンプ力の増加も実装したいのですが。。


121ポイント を手に入れた。


Name: dic  ..比類無きプログラマー(91,045ポイント)   Date: 2010/08/14(土) 11:22   No:58940     
Title: Re:マリオのような加速について    
マリオのような動きが再現できるか試していませんが
左が y=x+b
右が y=x^2+b
です
だんだんと早くなる右の式を応用すればできるかな・・・?


68ポイント を手に入れた。

Name: mmbb  ..ぴよぴよ(161ポイント)   Date: 2010/08/14(土) 12:13   No:58942     
Title: Re:マリオのような加速について    
こんな感じでしょうか?

double m = 2;
double x = ++m, y = 2.0;

if( PlayerX > 350 )
        {PlayerX = 350;
        if( Key & PAD_INPUT_RIGHT )mapx -= pow(x, y);}



40ポイント を手に入れた。

Name:  ..入門者(4,927ポイント)   Date: 2010/08/14(土) 13:23   No:58945     
Title: Re:マリオのような加速について    
出先なので簡単に・・・


float Px,Mx,Speed;

Px = 0; // 現在位置
Mx = 0; // 移動量
Speed = 0; // 加速

if(キーを押したら){
   Mx = 3;
   Speed += 0.2f;
   if(Speed >= 3) Speed = 3;
}else{
   Mx = 0;
   Speed -= 0.2f;
   if(Speed <= 0) Speed = 0;
}

// プレイヤーの位置の更新
Px += Mx + Speed;



試していないので動くかわかりませんが上記の様なかんじでどうでしょうか?


214ポイント を手に入れた。

Name: mmbb  ..ぴよぴよ(103ポイント)   Date: 2010/08/14(土) 17:16   No:58948     
Title: Re:マリオのような加速について    

>>蓮さん
うーん。。。思うように加速してくれないみたいです





float Px,Mx,Speed;

Px = 0; // 現在位置
Mx = 0; // 移動量
Speed = 0; // 加速
if((Key & PAD_INPUT_RIGHT)){
   Mx = 3;
   Speed += 0.2f;
   if(Speed >= 3) Speed = 3;
}else{
   Mx = 0;
   Speed -= 0.2f;
   if(Speed <= 0) Speed = 0;
}



        if( PlayerX > 350 )
        {PlayerX = 350;
        if( Key & PAD_INPUT_RIGHT )mapx -= Mx + Speed;}


103ポイント を手に入れた。

Name:  ..入門者(4,974ポイント)   Date: 2010/08/14(土) 20:51   No:58966     
Title: Re:マリオのような加速について    
思い通りがどのようなことかはわかりませんが
値は自分で弄って下さい・・・

ソースは上記の様な感じということです。
Mxは最低移動量
Speedは変動する加速量です。


47ポイント を手に入れた。

Name: Justy  ..伝説なるハッカー(562,752ポイント)   Date: 2010/08/14(土) 23:56   No:58975     
Title: Re:マリオのような加速について    
 実際の前後のソースがないと細かいところはわかりませんが・

・ メインループの中で毎フレーム Speedや Pxの 0初期化をしていませんか?
・ mapxへの加算は  (Key & PAD_INPUT_RIGHT) を満たした時だけでなく常に行うようにしてみてください。


117ポイント を手に入れた。



Name: シエル  ..熟練のプログラマー(47,636ポイント)   Date: 2010/08/13(金) 11:42   No:58849       
Title: 【DirectX】レンダリングターゲットのサーフェイスへのポインタ取得について    
お世話になります。
下記のページで質問があります。
http://marupeke296.com/DXG_Show3Dto2D.html

このページのレンダリングターゲットのサーフェイスへのポインタを取得するところで、

【GetRenderTarget関数でサーフェイスへのポインタを取得すると、
そのサーフェイスの内部参照カウンタが1つ増えます。
具体的には、初期化の後にバックバッファへのポインタを取得した段階で、
バックバッファの内部参照カウンタは「2」になります。
よって取得したバックバッファのポインタを使用しなくなった段階で
Release関数を呼び出さないとメモリリークが発生します。】

という記述があるのですが、この内部参照カウンタというものはどういうものなのでしょうか?

それと、このポインタを使用しなくなった段階で、リリースしないとメモリリークが発生する
というのも意味がよく分かりません。
プログラム終了時にリリースするのでは駄目なのでしょうか?

よろしくお願い致します。


439ポイント を手に入れた。


Name: ぽこ  ..プログラマー(28,797ポイント)   Date: 2010/08/13(金) 11:53   No:58850     
Title: Re:【DirectX】レンダリングターゲットのサーフェイスへのポインタ取得について    
> という記述があるのですが、この内部参照カウンタというものはどういうものなのでしょうか?

オブジェクト内部で自分を必要としている他人を記憶しているってことです。
他人A「僕は君が必要だ。」
自分「1人に必要とされている。」
他人B「僕も君が必要だ。」
自分「2人に必要とされている。」
他人A「僕には君が不要だ。」
自分「1人に必要とされている。」
他人C「僕は君が必要だ。」
自分「2人に必要とされている。」
他人B「僕には君が不要だ。」
他人C「僕には君が不要だ。」
自分「誰にも必要とされていない、僕の人生終わりだ。」

といった感じで、自分で自分の寿命を決定するための仕組みです。
オブジェクトが共有される場合には、「誰が解放するの?」という問題があります。
上の例では、他人Aが解放すると他人B,Cは困るかも知れません。
そこで、自分に管理してもらっているのです。

> それと、このポインタを使用しなくなった段階で、リリースしないとメモリリークが発生する
> というのも意味がよく分かりません。

上の例で、他人Cが「不要だ」と言わなかった場合、自分は誰かに必要だと言われているので、
永久に生き続けようとします。

> プログラム終了時にリリースするのでは駄目なのでしょうか?

OKですよ。
重くならないorそれが気にならないのなら。


360ポイント を手に入れた。

Name: naohiro19  ..ぴよぴよ(632ポイント)   Date: 2010/08/13(金) 12:10   No:58851     
Title: Re:【DirectX】レンダリングターゲットのサーフェイスへのポインタ取得について    
MSDNのヘルプでも
「このメソッドを呼び出すと、IDirect3DSurface9 インターフェイスについての内部参照カウントが増加する。この IDirect3DSurface9 インターフェイスを使い終わったときに IUnknown::Release を呼び出さないと、メモリ リークが発生する。」
と記述があります。


99ポイント を手に入れた。

Name: シエル  ..熟練のプログラマー(47,840ポイント)   Date: 2010/08/13(金) 12:22   No:58853     
Title: Re:【DirectX】レンダリングターゲットのサーフェイスへのポインタ取得について    
ぽこさん!ありがとうございます!

大体意味は分かったのですが、
おっしゃっている「オブジェクト」というのは、実際にサーフェイスに描かれている画像データのことでしょうか?

最初からカウンタが1になっているのは、DirectXの初期化処理の中で、
既にバックバッファ用のサーフェイスへのポインタが取得されているからなのでしょうか?

もしそうだとすると、初期化後にバックバッファへのポインタを取得した段階で2になったカウンタは
リリースを行っても1になるだけなので、画像データ自体はメモリから消えていないということでしょうか?

質問ばかりですみません。。


204ポイント を手に入れた。

Name: シエル  ..熟練のプログラマー(47,930ポイント)   Date: 2010/08/13(金) 12:24   No:58854     
Title: Re:【DirectX】レンダリングターゲットのサーフェイスへのポインタ取得について    
>>naohiro19さん

ありがとうございます。
MSDNは読んだのですが、何とも不親切な説明しかないので、いつも困っています!
特にDirectXのヘルプは読んでも意味わからないことばかりです。


90ポイント を手に入れた。

Name: ぽこ  ..プログラマー(28,696ポイント)   Date: 2010/08/13(金) 12:39   No:58855     
Title: Re:【DirectX】レンダリングターゲットのサーフェイスへのポインタ取得について    
> 大体意味は分かったのですが、
> おっしゃっている「オブジェクト」というのは、実際にサーフェイスに描かれている画像データのことでしょうか?

ごめんなさい。
DirectXを扱ってことが無いので、正確には分からないです。
シエルさんが提示したリンク先の文章を読むに、バックバッファが「オブジェクト」に該当すると思います。
 
> 最初からカウンタが1になっているのは、DirectXの初期化処理の中で、
> 既にバックバッファ用のサーフェイスへのポインタが取得されているからなのでしょうか?

だと思います。
 
> もしそうだとすると、初期化後にバックバッファへのポインタを取得した段階で2になったカウンタは
> リリースを行っても1になるだけなので、画像データ自体はメモリから消えていないということでしょうか?

これは、微妙です。
1である状態が、誰からも参照されていない状態ならば、保証できません。


101ポイント を落としてしまった。

Name: シエル  ..熟練のプログラマー(48,022ポイント)   Date: 2010/08/13(金) 12:51   No:58856 解決!     
Title: Re:【DirectX】レンダリングターゲットのサーフェイスへのポインタ取得について    
DirectXは扱ったことがありませんでしたか。
それなのにこれだけ解説できるとは…すごいです。

大体内部参照カウンタのイメージはつかめたので、
とりあえず使わなくなったら解放するってことだけ覚えておきます。
そのうち、使い慣れていく内に完全に理解できることを信じて、一応解決にしておきます

ありがとうございました!


2倍のポイントを手に入れた! 92ポイント を手に入れた。

Name: ぽこ  ..プログラマー(28,652ポイント)   Date: 2010/08/13(金) 13:04   No:58857     
Title: Re:【DirectX】レンダリングターゲットのサーフェイスへのポインタ取得について    
> それなのにこれだけ解説できるとは…すごいです。

参照カウンタってのは、オブジェクト(寿命)管理の基本的な
テクニックなんですよ。
マイクロソフトの他のライブラリでも随所で使用されています。


44ポイント を落としてしまった。

Name: シエル  ..熟練のプログラマー(48,117ポイント)   Date: 2010/08/13(金) 13:10   No:58858     
Title: Re:【DirectX】レンダリングターゲットのサーフェイスへのポインタ取得について    
>参照カウンタってのは、オブジェクト(寿命)管理の基本的な 
>テクニックなんですよ。 
>マイクロソフトの他のライブラリでも随所で使用されています。

そうなんですね。勉強になります。
忘れず覚えておきます。ありがとうございました。


95ポイント を手に入れた。

Name: ISLe  ..中級者(12,906ポイント)   Date: 2010/08/14(土) 00:55   No:58926     
Title: Re:【DirectX】レンダリングターゲットのサーフェイスへのポインタ取得について    
> 最初からカウンタが1になっているのは、DirectXの初期化処理の中で、
> 既にバックバッファ用のサーフェイスへのポインタが取得されているからなのでしょうか?

件のページに関しては、CreateTextureメソッドで作られた(テクスチャのイメージを展開する)サーフェスなのでCreateTextureメソッドが1にしています。
テクスチャをリリースしたときはテクスチャに関連付けられたサーフェスの参照カウンタもついでに減らされます。


44ポイント を手に入れた。

Name: シエル  ..熟練のプログラマー(48,487ポイント)   Date: 2010/08/14(土) 07:18   No:58935     
Title: Re:【DirectX】レンダリングターゲットのサーフェイスへのポインタ取得について    
ISLeさんありがとうございます!

これで全てすっきりしました!
それにしても、MSDNにも載ってないことよくわかりますね。。。

追記:
あ〜すいません追加で、
初期化時に作成されたそのテクスチャが解放されるタイミングはいつですか?
D3Dデバイスを解放するタイミングでしょうか? 編集済み


41ポイント を落としてしまった。

Name: ISLe  ..中級者(13,277ポイント)   Date: 2010/08/14(土) 18:45   No:58956     
Title: Re:【DirectX】レンダリングターゲットのサーフェイスへのポインタ取得について    
> 追記:
> あ〜すいません追加で、
> 初期化時に作成されたそのテクスチャが解放されるタイミングはいつですか?
> D3Dデバイスを解放するタイミングでしょうか?

CreateTextureメソッドで作ったテクスチャは不要になったときにReleaseメソッドを呼び出す必要があります。
pTexture->Release();
CreateTextureメソッドでテクスチャ自身の参照カウンタも1になります。
Releaseメソッドを呼び出した結果参照カウンタが0になれば解放されます。


> それにしても、MSDNにも載ってないことよくわかりますね。。。 

MSDNに載ってなかったですかね。
DirectX SDKのドキュメントに仕組みが書いてあったような。
IUnknownだからDirectXじゃなくてWindowsSDKのCOMモデルの解説だったかも。

ULONG cRef = pTexture->AddRef() - 1;
pTexture->Release();
というコードで現在の参照カウンタの数値が分かります。


239ポイント を手に入れた。

Name: シエル  ..熟練のプログラマー(48,994ポイント)   Date: 2010/08/14(土) 19:07   No:58957     
Title: Re:【DirectX】レンダリングターゲットのサーフェイスへのポインタ取得について    
すいません。私の質問の仕方がまずかったかもしれません。

レンダリングターゲットにしようとしているテクスチャのサーフェイスの話ではなくて、
バックバッファのサーフェイスの話なんですが。。。

このページに載っているレンダリングターゲットのテクスチャは、確かにCreateTextureで作成しているので、
参照カウンタが最初から1になっているのは分かりますが、
なぜ、バックバッファのサーフェイスも何故最初から1になっているのかと疑問に思ったのです。

なので、DirectXの初期化処理(D3Dデバイス作成等)の中で、内部的にバックバッファ自体もCreateTextureで
テクスチャが作成されているから、最初からカウンタが1なのではないかと思ったのですが
正しいでしょうか?

何か変なこと言ってたら申し訳ありません。

追記:
参照カウンタの調査方法ありがとうございます。調べてみます! 編集済み


6ポイント を手に入れた。

Name: ISLe  ..中級者(13,395ポイント)   Date: 2010/08/14(土) 22:27   No:58969     
Title: Re:【DirectX】レンダリングターゲットのサーフェイスへのポインタ取得について    
> バックバッファのサーフェイスの話なんですが。。。

バックバッファの作成はIDirect3D9::CreateDeviceメソッドのパラメータで指示します。
バックバッファはディスプレイに表示される画面と直接結び付いているのでデバイスと関連付けられていると考えられますね。


70ポイント を手に入れた。

Name: シエル  ..熟練のプログラマー(49,044ポイント)   Date: 2010/08/14(土) 22:40   No:58971 解決!     
Title: Re:【DirectX】レンダリングターゲットのサーフェイスへのポインタ取得について    
わかりました!ISLeさん、ありがとうございました!

2倍のポイントを手に入れた! 50ポイント を手に入れた。



Name: TKOZ  ..比類無きプログラマー(75,828ポイント)   Date: 2010/08/05(木) 20:47   No:58144       
Title: 3Dモデルの簡単な読み込み    
wavefrontのObjファイルを自作3Dエンジンで読み込ませようとしているのですが、
表示が上手くいかず、困っております。

3DモデルはShade8でモデリングしました。

読み込む時のソースは以下のような感じです。

どうすれば、読み込めるようになるでしょうか?

教えてください。


void LoadModifyOBJFile(char filename[])
{
    FILE *fp;
    static int count=0,count2=0;
    char s;
    float x,y,z;
    fp=fopen(filename,"r");
    
    while(fscanf(fp,"%c,%f,%f,%f",&s,&x,&y,&z)!=EOF)//EndOfFileまで一行ずつ読み取る
    {
        switch(s)
        {
        case '#'://コメント行は無視
            break;
        case 'v'://頂点座標を代入(小さすぎるので100倍する)ついでにY座標を反転
            _3D.SetPnt(count,x*100,-y*100,z*100);
            count++;        
            break;
        case 'f'://三角形の番号を読み取る
            //ここでエラー?
            //_3D.SetNum(count2,(int)x,(int)y,(int)z);
            count2++;
            break;
        }
    }
    fclose(fp);
    MaxPoint=count-1;
}

ModifyObjファイルとは、私が勝手に名付けたファイル名で、Objファイルをメモ帳で
読み込み、スペースを,(カンマ)に全て置換したファイルのことです。
スペースがあると、fscanfは上手くファイルの中身を読み込んでくれないからです。 編集済み


475ポイント を落としてしまった。


Name: TKOZ  ..比類無きプログラマー(75,900ポイント)   Date: 2010/08/05(木) 20:59   No:58146     
Title: Re:3Dモデルの簡単な読み込み    
自作3Dエンジンじゃなくても、DXライブラリにフラットシェーディングの機能があれば十分なのですが、
やり方が良く分かりません。


2倍のポイントを手に入れた! 72ポイント を手に入れた。

Name: ookami  ..プログラマー(38,173ポイント)   Date: 2010/08/06(金) 10:18   No:58168     
Title: Re:3Dモデルの簡単な読み込み    
while(fscanf(fp,"%c,%f,%f,%f",&s,&x,&y,&z)!=EOF)
あたりにブレークポイントを仕掛けて、一行一行ステップ実行してみてはいかがでしょうか。

//ここでエラー? 
というのが、本当にそこでエラーになっているかどうかたぶん分かると思います。

あと、
DXライブラリも3Dに対応しているようです。
http://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_3d.html
このリファレンスは知っているけどもやり方がわからない、ということでしょうか?


171ポイント を手に入れた。

Name: TKOZ  ..比類無きプログラマー(76,218ポイント)   Date: 2010/08/06(金) 19:55   No:58176     
Title: Re:3Dモデルの簡単な読み込み    
ookamiさんへ
ありがとうございます。解決しました。
DXライブラリの3D機能を使ってもshade8でxファイルに出力したファイルで表示しても
自作3DエンジンのOBJファイル読み込みも両方上手くいきました。
                     ・
どうやら、MidifyOBJファイルの先頭の行でwavefrontのfで間違った座標を入力してたみたいです。
先頭の行を消したらうまくいきました。

ただ、三角形が上手く描画されないというバグはありますが…これは解決しそうなので大丈夫です。

と思ったら、

fで指定で始まる番号は、0ではなく、1から始まるそうです。

という事は、1ずつ番号がずれているのは分かるのですが、
どうすれば上手く表示がされるのか分かりません。

どうすれば、三角形が上手く描画されますでしょうか?

とりあえず、現状のスクリーンショットを張っておきます。 編集済み


2倍のポイントを手に入れた! 318ポイント を手に入れた。

Name: TKOZ  ..比類無きプログラマー(76,175ポイント)   Date: 2010/08/08(日) 19:53   No:58384     
Title: Re:3Dモデルの簡単な読み込み    
現状のソースコードを添付します。
行列演算を使っていない自作3Dエンジンですが、ここはこうすればいいとか
あればそれもよろしくお願いします。


43ポイント を落としてしまった。

Name: ookami  ..プログラマー(38,865ポイント)   Date: 2010/08/08(日) 21:20   No:58393     
Title: Re:3Dモデルの簡単な読み込み    
            _3D.SetNum(count2,(int)x,(int)y,(int)z);

            _3D.SetNum(count2+1,(int)x,(int)y,(int)z);
に変更されているってことですね?

objファイルのフォーマットをもうちょっと詳しく
説明してもらってもいいですか?

予想では、

v,x,y,z:3次元座標(頂点データ)
f,n1,n2,n3:ポリゴンデータ(n1,n2,n3番目のvで示される座標を頂点とする三角形)
#:コメント

だと思いますが、合ってますか?

> fで指定で始まる番号は、0ではなく、1から始まるそうです。
とのことですが、
HUMAN.obj
の307行目には、0があるし...
v,f,それぞれ、0スタートなのか1スタートなのか、というあたりも詳しくお願いします。

よろしくお願いします。


144ポイント を手に入れた。

Name: TKOZ  ..比類無きプログラマー(76,304ポイント)   Date: 2010/08/09(月) 20:31   No:58501     
Title: Re:3Dモデルの簡単な読み込み    
ああ、すみません。
HUMAN.objファイルを勝手に改造してしまった後、アップロードしたのを忘れてました。
0から始めるように改造すれば上手く読み込むのではないかと思い、やってしまいました。
正しい、objファイルはこれです。(添付しました)

objファイルのフォーマットなのですが、私も詳しく知らないまま実装してました。
概ね、ookamiさんの予想通りのフォーマットだとばかり、思ってました。

フォーマットの詳しい解説URLは、こちらです。
ttp://www.hiramine.com/programming/3dmodelfileformat/objfileformat.html
(先頭のhを抜いています)

なお、実装には、フラットシェーディングを使うので、
mtllib g usemtl vt vnは使いませんでした。
vとfだけ使っています。

それで、この解説を見た後、しばらく考え込んでいたんですが、
vは、頂点フォーマットだと思いました。それで、
 0からスタートしても、1からスタートしても良いと思います。
fは、ポリゴンの番号指定だと思いました。その解説に書いてある通り、1からスタートです。

一応、答える事だけ答えてみましたが、よろしくお願いします。


129ポイント を手に入れた。

Name: TKOZ  ..比類無きプログラマー(76,359ポイント)   Date: 2010/08/09(月) 20:33   No:58502     
Title: Re:3Dモデルの簡単な読み込み    
あれ、この掲示板システムは
中身がテキストデータだと勝手に拡張子を.txtにしてしまうみたいです。
ファイルを保存するときは、.objにしてください。


55ポイント を手に入れた。

Name: ookami  ..プログラマー(39,803ポイント)   Date: 2010/08/09(月) 23:03   No:58531     
Title: Re:3Dモデルの簡単な読み込み    
うーん、「ゴチャっとしてはいるものの、
表示はできている」という感じからして、
配列の添え字の問題だとは思うんですけどね。

ソースもサンプルデータも、
何しろ物量がでかくて、私スミズミまで見れていませんが、

少なくとも、これはまずいですね。
    vertex MakeVector(double x,double y,double z)//ベクトルを作成する関数
    {
        vertex temp;
        temp.x=x;
        temp.y=y;
        temp.z=z;
        return (temp);
    }
returnしたときには実体は破棄されています。
私の環境では強制終了されてしまい、
細かいデバッグにいたりませんでした。


ためしに、
human.objを以下のようにして実行すると、
どのような描画結果になりますか?

v,87,18,0
v,75,052,0
v,99,052,0
v,30,074,0
v,18,108,0
v,42,108,0
f,1,2,3
f,4,5,6

これは、
添付のような画像をペイントで作成し、
二つの三角形の頂点をひろっていったものです。

--
ついでにこっちも試してもらえますか?

v,87,18,0
v,75,052,0
v,99,052,0
v,30,074,0
v,18,108,0
v,42,108,0
f,0,1,2
f,3,4,5

これで、
0スタートか1スタートか、はっきりすると思います。

-- 追記

あれ?「少なくとも、これはまずいですね。」と言いましたが、
まずくないかも?すいません、頭が回らないので明日考えます。

すいません、
ポインタを返すわけではないので、
多分、問題ないですね!
ごめんなさい!またやっちまいましたよ。

...じゃぁ何で強制終了したんだろう...?? 編集済み


603ポイント を手に入れた。

Name: Justy  ..伝説なるハッカー(561,683ポイント)   Date: 2010/08/10(火) 00:14   No:58536     
Title: Re:3Dモデルの簡単な読み込み    
 このファイルフォーマットで文字列解析に何の予備解析もなしに fscanfを使うのは止めましょう。
 一端 std::getline/fgetsで受けるなどバッファにためて最初の1文字を見て分岐、その後あらためて
sscanfなどで個別に解析を行ってください。
 これだけで正確なデータを扱えるはずですし、doubleを intにキャストするなどしなくて済むはずです。


 あとはほとんど影響はないでしょうが、1000固定じゃなくてちゃんと三角形の数分だけ表示する、とか。


2倍のポイントを手に入れた! 258ポイント を手に入れた。

Name: スキマ妖怪  ..入門者(4,011ポイント)   Date: 2010/08/10(火) 00:19   No:58539     
Title: Re:3Dモデルの簡単な読み込み    
まず、LoadModifyOBJFile()から直してみてはどうでしょうか?(他はあまり見てないので…)
読み取ったデータをそのまま別のファイルに書き出してみると分かると思いますが
正しくデータを読めてませんよ;

少なくとも行単位で(簡易的な)構文解析みたいな事しないとダメでは?
(fscanf()って行単位に読み込んでくれたりしましたっけ? ←うろ覚えでスイマセンorz)


104ポイント を手に入れた。

Name: TKOZ  ..比類無きプログラマー(77,829ポイント)   Date: 2010/08/10(火) 22:13   No:58661     
Title: Re:3Dモデルの簡単な読み込み    
ookamiさんへ

先に示したデータの方も後のデータも、大きすぎたので、座標値を100倍するのをやめました。
というか、僕のデータが小さすぎたということでしょうか。

それで、先に示したデータのほうが正確に読み取れました。

100倍するのをやめたり、y座標反転をやめたりしましたが、うまくいきました。


Justyさんへ
スキマ妖怪さんへ

LoadModifyOBJFile()を改造しました。
それがこれです。
一見スクリーンショットを見ると上手く行っているように思われますが、
上手く描画されてません。

void LoadModifyOBJFile(char filename[])
{
    FILE *fp;
    static int count=0,count2=0;
    char buf[300];
    char p;
    float x,y,z;
    int n1,n2,n3;
    fp=fopen(filename,"r");
    int i,j;

    while(fgets(buf,300,fp)!=NULL)//EndOfFileまで一行ずつ読み取る
    {
        switch(buf[0])
        {
        case '#'://コメント行は無視
            break;
        case 'v'://頂点座標を代入(場合分けで拡大)ついでにY座標を反転
            sscanf(buf,"%c,%f,%f,%f",&p,&x,&y,&z);
            if(x<0 || y<0 || z<0)
                _3D.SetPnt(count+1,x*100,-y*100,z*100);
            
            else
                _3D.SetPnt(count+1,x,-y,z);

            count++;    
            break;
        case 'f'://三角形の番号を読み取る
            //ここでエラー?
            sscanf(buf,"%c,%d,%d,%d",&p,&n1,&n2,&n3);
            _3D.SetNum(count2+1,n1,n2,n3);
            count2++;
            break;
        }
    }
    fclose(fp);

         //ファイル出力
    char filename2[30];
    sprintf(filename2,"%s_",filename);
    fp=fopen(filename2,"w");
        for(i=0;i<count-1;i++)
        {
            fprintf(fp,"%c,%f,%f,%f\n",'v',v[i+1].x,v[i+1].y,v[i+1].z);
        }
        fprintf(fp,"#  %dpoints\n",count-1);
        for(j=0;j<1000;j++)
        {
            if(Tri[j+1].n1==0 && Tri[j+1].n2==0 && Tri[j+1].n3==0) break;
            fprintf(fp,"%c,%d,%d,%d\n",'f',Tri[j+1].n1,Tri[j+1].n2,Tri[j+1].n3);
        }
        fprintf(fp,"#  %dfaces\n",j-1);
    fclose(fp);

    MaxPoint=count-1;
編集済み


2倍のポイントを手に入れた! 1,470ポイント を手に入れた。

Name: スキマ妖怪  ..入門者(4,099ポイント)   Date: 2010/08/10(火) 22:35   No:58668     
Title: Re:3Dモデルの簡単な読み込み    
objファイルのフォーマットはよくは知りませんが
リンク先のフォーマットを見てみると

v、vt、vn

vで始まるキーワードが(少なくとも)3種類ありますよね;
vに関しては、2文字分見ないといけないのでは?



----------------------------------------------
よく考えたらsscanf()してるんで関係ないですねorz

このレスはスルーしてください…
 編集済み


88ポイント を手に入れた。

Name: ookami  ..プログラマー(39,751ポイント)   Date: 2010/08/10(火) 23:22   No:58674     
Title: Re:3Dモデルの簡単な読み込み    
えーと、

もし私が示したobjファイルでは思ったとおりに描画され、
TKOZさんのhuman.objではぐちゃぐちゃになるとしたら、
human.objのデータ自体がおかしいか、

あるいは逆に、
「思ったとおり」という判断基準が間違っているかのどちらかですよね。

どうしましょう...

私が上で貼った、「三角形二つ」を、
@wavefrontでつくり、
A「メモ帳で置換」し、
BTKOZさんオリジナルライブラリで描画したときの、

それぞれ@のスクリーンショット、Aobjファイル、Bのスクリーンショットを貼ってもらっていいですか?



209ポイント を落としてしまった。

Name: Justy  ..伝説なるハッカー(561,699ポイント)   Date: 2010/08/11(水) 00:17   No:58681     
Title: Re:3Dモデルの簡単な読み込み    
>上手く描画されてません
>_3D.SetPnt(count+1,x,-y,z); 
 100倍していないのは何か理由があるのでしょうか?


4ポイント を手に入れた。

Name: TKOZ  ..比類無きプログラマー(78,046ポイント)   Date: 2010/08/11(水) 20:17   No:58729     
Title: Re:3Dモデルの簡単な読み込み    
ookamiさんへ

wavefrontはインストールされていないのですが、Shade8ならインストールされています。
そして、Shade8には、objファイル入出力機能があります。
それでも構わないなら、そのスクリーンショットを添付します。

Justyさんへ
100倍しているのは、頂点座標がxまたは、y、zが0より下の場合です。
ですから、頂点座標が0より下じゃないと100倍しません。
何故かというと、小さすぎて見えないからです。
100倍しない理由は、大きすぎて見えないからです。 編集済み


217ポイント を手に入れた。

Name: ookami  ..熟練のプログラマー(41,833ポイント)   Date: 2010/08/11(水) 20:34   No:58734     
Title: Re:3Dモデルの簡単な読み込み    
おや、そうでしたか^^;
最初の投稿でwavefrontとあったので、てっきりそうかと…

それなら、Shade8で結構ですよw

ケータイなので添付を見れてないかもなので、後ほど拝見いたします。


80ポイント を手に入れた。

Name: TKOZ  ..比類無きプログラマー(78,201ポイント)   Date: 2010/08/11(水) 21:10   No:58738 解決!     
Title: Re:3Dモデルの簡単な読み込み    
やっと、バグがわかりました。
みなさま、ご協力、ありがとうございました。

ウィンドウプロシージャー内のWM_PAINTイベント内で、
if(a>0)
_3D.DrawSankakukei(Tri[i].n1,Tri[i].n2,Tri[i].n3,RGB(Blue,Blue,Blue));
のこのif文を忘れていました。
あとは、陰面消去が不完全ですが、大体目的を達成できたので、解決といたします。
        


155ポイント を手に入れた。

Name: TKOZ  ..比類無きプログラマー(78,293ポイント)   Date: 2010/08/14(土) 18:24   No:58955     
Title: 報告    
やっと陰面消去が出来るようになりました。
C言語掲示板のJusty様、ookami様、スキマ妖怪様、その他みなさんのおかげです。
スクリーンショットを添付しておきます。
ありがとうございました。


92ポイント を手に入れた。



Name:  ..中級者(9,500ポイント)   Date: 2010/08/13(金) 23:47   No:58918       
Title: 個人でプログラミングをする上での仕様書の書き方    
 僕が求めているものが仕様書と呼ぶのかわかりませんが、
それらしい言葉がそれ以外に思い浮かばなかったため、仕様書と
書きました。間違っていたら、正しい名称も教えてもらえると
ありがたいです。

 だんだんと、cについても覚えてきて
以前は考えられなかった量(といっても所詮数百行ですが)の
コードをかけるようになってきて、だんだんと
書いている上で頭の中だけですべて整理するのが難しくなってきました。

 CUIで作っていた時は、上から順に処理すればよく
特に問題はなかったのですが、今、GUIで作るようになると
winMain内のどこで呼び出せばよいか、やグローバル変数は
どれか等がだんだんとわからなくなってきました。

 そういうわけで、一度神の上に流れを書き出すべきかと
思いやってみたのですが、なにぶん、独学なもので
どれを書き出せばよいのかわからず、いまいちうまくいきません。

 現在はB5サイズのノートに
1:プログラムの目的
(2.5:GUIの場合はデザインをかく)
2:全体の大まかな流れ
3:2を分割して細かな流れ
4:3を行う上で必要な関数とグローバル変数と構造体を考える

 というように書いているのですが、
2,3の書き方が分かりません、フローチャートとでもいうのか、何というか
そういうものの書き方が全く分からないのです…

 そしてもう一つ、今はGUIで作るときにウィンドウサイズを固定にしているのですが、
可変にする場合はボタンの配置等はどうやって位置を決めればいいのでしょうか?
(現在はx,y座標を直接入力しています)


576ポイント を手に入れた。


Name: シエル  ..熟練のプログラマー(48,528ポイント)   Date: 2010/08/14(土) 00:04   No:58919     
Title: Re:個人でプログラミングをする上での仕様書の書き方    
フローチャート
http://homepage1.nifty.com/Iruka/nifty/cgi/mailcheckCGI/page2.html

>そしてもう一つ、今はGUIで作るときにウィンドウサイズを固定にしているのですが、 
>可変にする場合はボタンの配置等はどうやって位置を決めればいいのでしょうか? 
>(現在はx,y座標を直接入力しています)

何のライブラリで作っているのかわかりませんが、
WINAPIで直接座標を指定しているのなら、そのまま指定した座標の位置にボタンが配置されます。
ウィンドウサイズにあわせて位置を決めたければ、
サイズ変更時にウィンドウサイズを取得して、その大きさから配置したい場所を割り出すような
コードを書き、毎回移動させる必要があると思います。


白さんが求めているような、回答ではないかもしれませんが、よろしくお願い致します。


269ポイント を手に入れた。

Name:  ..中級者(9,743ポイント)   Date: 2010/08/14(土) 00:22   No:58922     
Title: Re:個人でプログラミングをする上での仕様書の書き方    
>シエルさん

 まさに、これです。フローチャートっていうんですか。
参考ページも大変わかりやすく助かります。
フローチャートを書く上で気をつけておくべきことはありますか?

 今は、winapiで直接座標を指定しています。
ウィンドウサイズから取得して割り出すとなると
どのような考え方で割り出せばよいのでしょうか?
 僕が今のところ考えつけるのは

空白:ボタン:空白:ボタン = 5:1:3:1
というように定義しておいて、全体のウィンドウサイズ×ボタンの比(1)/比の合計(10)
というような方法だけしか思いつけません。
他にどういった手法がありますか?


243ポイント を手に入れた。

Name: ぽこ  ..プログラマー(28,845ポイント)   Date: 2010/08/14(土) 00:42   No:58925     
Title: Re:個人でプログラミングをする上での仕様書の書き方    
JavaのLayout系のクラス群が参考になるかも知れません。
http://terai.xrea.jp/Swing/_Layout.html

#本家じゃないですが。参考になりそうなURL貼っておきます。


53ポイント を手に入れた。

Name: シエル  ..熟練のプログラマー(48,944ポイント)   Date: 2010/08/14(土) 07:34   No:58936     
Title: Re:個人でプログラミングをする上での仕様書の書き方    
>まさに、これです。フローチャートっていうんですか。 
>参考ページも大変わかりやすく助かります。 
>フローチャートを書く上で気をつけておくべきことはありますか? 

気をつけることですか?
すいません。あんまりフローチャート作ったことないので的確なアドバイスができません。
まあ、後から見てわかりやすければいいかと・・・。
というか、私は仕様書自体、大規模なものを作成しなければ、たぶん頭のなかで整理しちゃうと思うので。

>空白:ボタン:空白:ボタン = 5:1:3:1 
>というように定義しておいて、全体のウィンドウサイズ×ボタンの比(1)/比の合計(10) 
>というような方法だけしか思いつけません。 
>他にどういった手法がありますか?

そんな感じでいいと思いますよ。
他の方法としては端からの距離で指定して、サイズが変わるたびにMoveWindowとかで
ボタンを移動すればよいかと。
まだ、C言語始めて3ヵ月半程度のひよっこですので、もっとすばらしいアドバイスを出来る方
がいると思いますので、他の人も意見もいろいろ参考にして下さい。


457ポイント を手に入れた。



Name: MASSA  ..ぴよぴよ(430ポイント)   Date: 2010/08/13(金) 23:25   No:58915       
Title: デバッガについて    
現在VC++2008を使っているのですが

Borland C++コンパイラにはTurboDebuggerというデバッガがありますよね

VC++にもこれとほぼ同機能のソフトがあるのでしょうか

教えていただけると幸いです



49ポイント を手に入れた。


Name: softya [URL]  ..ハッカー(192,614ポイント)   Date: 2010/08/13(金) 23:33   No:58916     
Title: Re:デバッガについて    
VC++にはデバッグ機能が標準で付いています。
使い方などは、こちらを参考に
http://www.nitoyon.com/vc/tutorial/debug/debugger.htm
シンプルな説明は、こちらに書かれています。
http://cvwww.ee.ous.ac.jp/vc08prog.html#6

もし、使いたい機能が分からなければ質問してください。


88ポイント を手に入れた。

Name: MASSA  ..ぴよぴよ(448ポイント)   Date: 2010/08/14(土) 01:13   No:58928 解決!     
Title: Re:デバッガについて    
わかりました

ありがとうございますm(_ _)m


18ポイント を手に入れた。



Name: yamataka  ..かけだし(1,940ポイント)   Date: 2010/08/12(木) 22:53   No:58794       
Title: 【雑談】DirectX11 か DirectX10 か DirectX9    
DirectX10は色々とDirectX9より凄いらしいのですが、
みなさんがゲームを作るとしたらどれを使いますか?

DirectXなら何でも(8、9、・・・)いいです。 編集済み


47ポイント を手に入れた。


Name: DecentLove  ..上級者(15,793ポイント)   Date: 2010/08/12(木) 23:02   No:58795     
Title: Re:【雑談】DirectX10 か DirectX9    
自分はDirectX9ですかね、WinXPは9までしか対応していないので、今一番普及しているXPに合わせたいと思いますね。
DirectX11はWin7だけ対応ですが凄いらしいです。


52ポイント を手に入れた。

Name: yamataka  ..かけだし(1,919ポイント)   Date: 2010/08/12(木) 23:07   No:58797     
Title: Re:【雑談】DirectX10 か DirectX9    
DirectX11なんてものがあるのですか!
すいませんタイトルに追加します


21ポイント を落としてしまった。

Name: 御津凪 [URL]  ..ハッカー(147,723ポイント)   Date: 2010/08/12(木) 23:52   No:58809     
Title: Re:【雑談】DirectX11 か DirectX10 か DirectX9    
私が作ってる自作ライブラリは DirectX11 で作ってます。(まだ開発中ですが)
これからゲームライブラリを作ると思っているのなら、DirectX10以降にしたほうがいいでしょう。
出来上がる(実用可能なレベルまでいく)頃には XP が廃れている(サポートが終了するのが2014年4月)かもしれず、
しかもタイミング的に作り損となる可能性があります。

なお、 DirectX10.1 があるのを忘れずに。
また、 Direct2D が存在するので、それを使えば 2D ゲームも以前より楽に作れるようになってます。
Direct2D は DirectX10.1以降と共有(10は不可)して使えるので、さらに活用度がアップします。

どちらにしても動作環境は Win7 以降になりますが。


291ポイント を手に入れた。

Name: シエル  ..熟練のプログラマー(47,240ポイント)   Date: 2010/08/13(金) 00:11   No:58817     
Title: Re:【雑談】DirectX11 か DirectX10 か DirectX9    
私はDirectX9でゲームの開発をしています。

やっぱり、まだVISTAや7がそこまで普及してないと思ったのでDirectX9を選びました。
まあ、たぶんそのうちDirectX11に乗り換える予定ですけどね。

>なお、 DirectX10.1 があるのを忘れずに。 
>また、 Direct2D が存在するので、それを使えば 2D ゲームも以前より楽に作れるようになってます。 
>Direct2D は DirectX10.1以降と共有(10は不可)して使えるので、さらに活用度がアップします。

10.1もあるんですか。お詳しいですね。
Direct2Dもググって調べみたら、かなり良さそうですね。
う〜ん、まあしばらくはDirectX9で経験積みます。。。


218ポイント を手に入れた。

Name: dic  ..比類無きプログラマー(90,977ポイント)   Date: 2010/08/13(金) 06:32   No:58842     
Title: Re:【雑談】DirectX11 か DirectX10 か DirectX9    
話がそれるかもしれませんが、現在のPCの性能でDirectXを使用して60FPSなど
性能を得ていますが
DirectXでないWINAPI (StructBlt関数)などでも、そのうちPCの性能が時間とともに
向上していくので、WinAPIでもそのうち高速に処理されるのではないかなと
勝手に想像してます

脱線、失礼しました

//=================================
>シエルさん
StretchBltですね
自作のライブラリ使ってるのでうる覚えでした 編集済み


134ポイント を手に入れた。

Name: シエル  ..熟練のプログラマー(47,197ポイント)   Date: 2010/08/13(金) 08:33   No:58843     
Title: Re:【雑談】DirectX11 か DirectX10 か DirectX9    
WINAPIにStructBlt関数何てあるんですか?
ググっても無かったんですけど。StretchBltのことですか?


43ポイント を落としてしまった。

Name: DecentLove  ..上級者(15,869ポイント)   Date: 2010/08/13(金) 08:42   No:58844     
Title: Re:【雑談】DirectX11 か DirectX10 か DirectX9    
そういえば、まだDirectX11に対応しているビデオカードは少ないですよね。
対応製品でも高値ですし。
でも御津凪さんの言うとおり今からなにかしら制作するのであれば最新の物に対応させておく方がいいのではないでしょうかね。


76ポイント を手に入れた。

Name: naohiro19  ..ぴよぴよ(533ポイント)   Date: 2010/08/13(金) 09:35   No:58846     
Title: Re:【雑談】DirectX11 か DirectX10 か DirectX9    
>そういえば、まだDirectX11に対応しているビデオカードは少ないですよね。 
・GeForce GTX 460以降(NVIDIA)
・RADEON HD 5450以降(AMD)
でした。


23ポイント を手に入れた。

Name: ぬっち [URL]  ..中級者(12,450ポイント)   Date: 2010/08/13(金) 17:22   No:58890     
Title: Re:【雑談】DirectX11 か DirectX10 か DirectX9    
横から失礼します。
私は今でもDirectX9を使用していますね。
ただ、DirectX11の情報も徐々に出てきているので、そろそろ手を出してみようかと考えています。

Direct2Dは初耳でした。
一応情報もそれなりにありそうですし、Diret2DとDirectX11を混合して開発しようかと考え始めてます。
ですが、「Direct2D DirectX11 共有」でググったらいくつか条件があるようで・・・。
メインのノートPCがWin7になるまで、まだしばらくはDirectX9がメインになりそうです^^;


177ポイント を手に入れた。

Name: ISLe  ..中級者(13,038ポイント)   Date: 2010/08/14(土) 01:10   No:58927     
Title: Re:【雑談】DirectX11 か DirectX10 か DirectX9    
> 話がそれるかもしれませんが、現在のPCの性能でDirectXを使用して60FPSなど
> 性能を得ていますが
> DirectXでないWINAPI (StructBlt関数)などでも、そのうちPCの性能が時間とともに
> 向上していくので、WinAPIでもそのうち高速に処理されるのではないかなと
> 勝手に想像してます

> 脱線、失礼しました

PCのエロゲはいまでもDIBセクション使ってたりするのでしょうかね。
Direct3D使うエロゲ増えましたけど。

半透明合成無しならGDIで60FPSはけっこう余裕だと思います。
少なくともDirectDrawとGDIの速度差はほとんどありません(でした)。


2倍のポイントを手に入れた! 132ポイント を手に入れた。



Name: dic  ..比類無きプログラマー(90,583ポイント)   Date: 2010/08/12(木) 13:58   No:58762       
Title: ネットワークのプログラムのプロトコルについて(java)    
javaですいません
プログラムのネットワークプロトコルについて質問します

下のように URLConnections クラスと sockets クラスでは使用してるプロトコルが違うのか
googleからの反応が異なります
URLConnections クラスは反応を示さず
sockets クラスは読み込めます
そこで、図のように、URLConnectionsクラスとsocketsクラスが使用している
TCP/IP階層図では URLConnectionsクラスとsocketsクラスはどの階層に該当するのでしょうか?


import java.io.*;
import java.net.*;
import java.util.Date;


//================================================================================
class URLConnections
{
    public URLConnections()
    {
        try{
            int    character;
            URL    url = new URL( "http://www.google.co.jp" );
            URLConnection    urlconnection = url.openConnection();
            
            int    contentlength = urlconnection.getContentLength();
            if( contentlength > 0 )
            {
                InputStream in = urlconnection.getInputStream();
                
                while( (character = in.read() ) != -1 )
                {
                    System.out.print( (char)character );
                }
            }
        }catch(Exception e)
        {
            System.out.println( "URLConnections で例外発生");
        }
        
    }
}

//================================================================================
class    sockets
{
    public    sockets()
    {
        try {
            System.out.println( "socket start" );
            Socket s = new Socket( "www.google.co.jp", 80 );

            BufferedReader in = new BufferedReader( new InputStreamReader( s.getInputStream() ) );
            PrintWriter out = new PrintWriter( s.getOutputStream() );

            out.print( "GET /index.html\n\n" );
            out.flush();

            String line;
            while( (line=in.readLine())!= null ){
                System.out.println( line );
            }
            System.out.println( "socket end" );
        }catch(Exception e)
        {
            System.out.println( "例外発生" );
        }
    }
}


//================================================================================
public class app {
    public static void main( String[] args)
    {
        URLConnections    u = new URLConnections();
        System.out.println( "end1\n" );
        
        sockets    s = new sockets();
        System.out.println( "end2\n" );
    }

}



相互リンクさせてもらいます
http://oshiete.goo.ne.jp/qa/6105408.html 編集済み


695ポイント を手に入れた。


Name: ISLe  ..中級者(12,314ポイント)   Date: 2010/08/12(木) 23:50   No:58808     
Title: Re:ネットワークのプログラムのプロトコルについて(java)    
URLConnectionクラス→アプリケーション層
URL文字列の先頭でアプリケーションプロトコルを指定します("http:"とか)。
TCP/IPの上位層です。

Socketクラス→トランスポート層
TCP/IPで接続します。


92ポイント を手に入れた。

Name: dic  ..比類無きプログラマー(90,779ポイント)   Date: 2010/08/13(金) 06:24   No:58840 解決!     
Title: Re:ネットワークのプログラムのプロトコルについて(java)    
ISLeさん
回答ありがとうございます

指定したプロトコルで返ってくる内容が違うというのは上の例ですと
googleはトランスポート層で通信しないと、データが返ってこないということでしょうか?
会社にもよると思いますが、これはそのサーバの設定次第ということでしょうか?

通信できるサーバと通信できないサーバがありまして
混乱している状態です

というより、ネットワーク関連の知識も身に付けたいと思います
(javaかPHPか・・・悩みます)


196ポイント を手に入れた。

Name: ISLe  ..中級者(12,761ポイント)   Date: 2010/08/14(土) 00:06   No:58920     
Title: Re:ネットワークのプログラムのプロトコルについて(java)    
URLConnectionsクラスが何も出力しないのは、getContentLengthで-1が返ってくるせいです。
Content-Lengthヘッダは必ず与えられるとは限りませんので無条件に読み込めなくなるまで読み込んでください。

URLConnectionsクラスが出力するのはいわゆるブラウザに表示されるHTMLです。

socketsクラスはhttpのプロトコル文字列も含めて生のデータが出力されます。


170ポイント を手に入れた。



Name: へろり  ..プログラマー(28,292ポイント)   Date: 2010/08/11(水) 12:42   No:58701       
Title: ミニゲームを作ってみました    
DXライブラリとC++でゲームの話題が多いようなので、勉強も兼ねて便乗して作ってみました。

すごいですね、DXライブラリ。 初めて使ってみましたがこれほどまでに簡単だとは思いませんでした。


C++も、聞きかじり程度には理解してはいるつもりですが、実際にプログラムを書くのはこれが初めてになります。
ソリューション・プロジェクトファイル・ソースファイルも丸ごとアップしてますので、何かいけないところや、改善した方がいいところなどありましたら、教えていただけると幸いです。


ゲームを作るのも初めてなのですが、時間の管理? が死ぬほど面倒ですね。
ちょっと泥臭いスパゲッティーになっているようで、なんだか気持ち悪いです。
私のやり方が悪いのでしょうけども、できればそういうところも教えていただけるとうれしいです。


内容はただのぷよぷよです。 敵側の思考ルーチンが弱いのはご愛敬です。
一部絵がアレなのは仕様です。 力尽きました。
開発には3日ほどかかってますが、絵を描くのに丸2日かかりました。
想像はしてましたが、ゲームって意外に画像を必要とするのですね。
最後の方はぐだぐだです。 許してください。


何日か前のスレッドで、CPU同士のバトルロワイヤルみたいな話があったので、思考ルーチンはDLLに放り出しています。
この掲示板で頂上決戦なんてやれたら楽しそうですね。


操作方法は readme.txt に。


下記のURLからダウンロード出来ますので、よろしくお願いします。

http://firestorage.jp/download/503d71dab6896dbbab829c880a11acb689c020a5



追記です。

私の環境ではコンスタントに60FPSは出してくれるのですが、他の方の環境ではどうなのでしょう。
結構力任せに書いているもので、ちょっと心配です。 編集済み


253ポイント を手に入れた。


Name: バグ  ..ハッカー(206,884ポイント)   Date: 2010/08/11(水) 12:57   No:58702     
Title: Re:ミニゲームを作ってみました    
よくできてますね。
ただ、絵やキャラの名前がほぼそのままなのは大丈夫なのかな…と心配になってしまいます?(^_^;)


33ポイント を手に入れた。

Name: シエル  ..熟練のプログラマー(46,776ポイント)   Date: 2010/08/11(水) 12:57   No:58704     
Title: Re:ミニゲームを作ってみました    
遊ばせていただきました!おもしろかったです!
これを三日で開発ですか!?すごすぎです。

ただCPUがすぐ負けてしまうのがちょっと残念ですけど;

へろりさんってゲームは今までに何回か作成されたことあるんですか?
三日でこれだけ作れるとは本当に参りました。
あぁ…自分に自信無くなって来た。。。


追記:
あ、初めて作ったって書いてますね。
初めてでこのレベルって、すごすぎる・・・ 編集済み


34ポイント を手に入れた。

Name: シエル  ..熟練のプログラマー(46,786ポイント)   Date: 2010/08/11(水) 12:58   No:58705     
Title: Re:ミニゲームを作ってみました    
あ、FPSは常時62ぐらい出てました。

10ポイント を手に入れた。

Name: yu  ..熟練のプログラマー(43,831ポイント)   Date: 2010/08/11(水) 13:09   No:58706     
Title: Re:ミニゲームを作ってみました    
少しですが遊ばせて頂きました。
私の環境では大体 62FPS で安定しました。

エフェクトとか丁寧に作ってあるなーと感じましたし、
ぷよを落とすと下のぷよが潰れるのも再現できてて驚きました!

後、ソースコードを見させていただきました。
2日間は絵に使ったとありますので、この量のソースコードを一日で書いたんですか?
そうだとしたら、自分とは 10倍 ぐらいのスピードで書いてることに。 orz


2倍のポイントを手に入れた! 306ポイント を手に入れた。

Name: へろり  ..プログラマー(29,093ポイント)   Date: 2010/08/11(水) 13:57   No:58707     
Title: Re:ミニゲームを作ってみました    
プレイして頂いた方々本当にありがとうございます。


バグさん
>ただ、絵やキャラの名前がほぼそのままなのは大丈夫なのかな…と心配になってしまいます?(^_^;) 

私もちょっとどうかなとは思いましたが、私にはデザインセンスが無い物で、動画サイトでプレイ動画を参考に作りました。
広く一般に配布する訳ではないので、まぁ、いいかな。 と。 甘いのかなやっぱり。。。


シエルさん
>ただCPUがすぐ負けてしまうのがちょっと残念ですけど;

私も非常に残念です。 このルーチンは同じ色のぷよのつながりの個数を重要視してるはずですが、変な置き方をします。 どこかにバグがあるのでしょうが、とりあえず動いているのでよしとしました。
#なぜかブレークポイントを置くと、ステップ実行がすごく重いのですよね。 1秒間にン十回と呼ばれる関数の中でフレーム毎にブレークさせるのが非常に面倒で:-)


>初めてでこのレベルって、すごすぎる・・・
実は初めてという初めてではありません。 高専時代にはポケコンという関数電卓の親分みたいな計算機があるのですが、これでポーカーを作ったことがあります。 言語はBASICです。 Windowsではマインスイーパを作ったことがあります。 一時期はまってまして、巨大な盤面でやってみたかったのです。
私が言いたかったのは、こういうゲームゲームしいゲーム、なんて言ったらいいのでしょうね。 ちゃんとしたゲーム? というのが作ったことが無いのです。


yuさん
>エフェクトとか丁寧に作ってあるなーと感じましたし、 
>ぷよを落とすと下のぷよが潰れるのも再現できてて驚きました!

DXライブラリの描画関数ってすごく高機能なんですね。 拡大・縮小・回転にいたるまで引数でにょろっと指定するだけの楽ちん設計です。


>2日間は絵に使ったとありますので、この量のソースコードを一日で書いたんですか?

コードは全部で3000行ほどだと思いますが、だいぶ助長的な部分が多いです。
構造としては、メインループ -> シーン -> セクション と流してるだけで、エフェクトなんかは再生させたら後は放置という非常に大雑把な構造になってますので、骨組み自体は非常にシンプルです。

エフェクトなんかも何マイクロ秒後にどう動かす。 というのを書いてるだけですので、そんなに難しいものではありません。


みなさんの環境でも60FPSは出せているようで、安心しました。


801ポイント を手に入れた。

Name: パコネコ  ..プログラマー(30,605ポイント)   Date: 2010/08/11(水) 14:21   No:58708     
Title: Re:ミニゲームを作ってみました    
やってみました
皆さんの言っている弱いがよくわかりました。
せめて置くスピードふつうにしたら…と思いますが、時間稼ぎにしかなりませんね…
こちらが邪魔プよ一つも落すことできずに、相手は自爆なせれていきました…
やっぱり思考ルーチンって難しいんですね…


87ポイント を手に入れた。

Name: シエル  ..熟練のプログラマー(46,993ポイント)   Date: 2010/08/11(水) 15:18   No:58717     
Title: Re:ミニゲームを作ってみました    
一日で3000行・・・!
根気とやる気とスキルがないと無理ですね。

ソースコード非常に参考になります!
C++も現在勉強中なので、助かります!

皆さん絵描くの上手いですね〜。私は絵がヘタクソなのでフリー素材で済ますか、簡単な絵しか描きません。


113ポイント を手に入れた。

Name: へろり  ..プログラマー(29,610ポイント)   Date: 2010/08/11(水) 16:05   No:58721     
Title: Re:ミニゲームを作ってみました    
パコネコさん
>皆さんの言っている弱いがよくわかりました。 
>こちらが邪魔プよ一つも落すことできずに、相手は自爆なせれていきました…

プレイありがとうございます。 彼女にはもっとご自愛なされて欲しいものです。


シエルさん
>一日で3000行・・・! 
>根気とやる気とスキルがないと無理ですね。 

確かに多い量ですが、思いついた処理をそのまま何も考えずにコードに落とし込んだだけですから。
むしろ、これを2000行・1000行で書けと言われた方が、より多くの時間を必要とするでしょう。
思考ルーチンの数百行など、コピペな部分も結構ありますし。


>ソースコード非常に参考になります! 
>C++も現在勉強中なので、助かります! 

ソースはあまり参考にしない方がよいかと思います。 私自身C++は今回が初めてですし、つっこみどころ満載なソースのような気がします。

たとえば CField クラスですが、ちょっと大きいです。
クラスのメンバ変数ってそのクラスから利用する限りなんら制限なんて無いんですね。
肥大化したクラス内から見ると、メンバ変数はあたかもグローバル変数のように感じるんです。 だって関数スコープでもないのに、自由に扱えるわけでしょう?

私はこれが気持ち悪くて、とりあえずほとんどのメンバ関数に const を指定しました。
しかし、これはこれで不便です。 でもキャストしたら何故か const メンバ関数から変数の値を書き換えれたので、それでよしとするというかなり乱暴なコードだったりします。

本来はいけないと思うんですよね。 こういう場合の定石って何かしらあると思います。
グーグル先生に聞いても分からなかったので放置してますが。


という部分も、誰か教えてくださるととてもうれしいです。


517ポイント を手に入れた。

Name: ひよこ  ..比類無きプログラマー(86,461ポイント)   Date: 2010/08/12(木) 21:09   No:58790     
Title: Re:ミニゲームを作ってみました    
遊んでみました。
よくできてますね。ぷよを置いたときの動きとか良くできてます。
ソース付きなんで読んでみたいと思います。
みなさんにCPUが弱いとは言われていたけど、私には強かったです。(ぷよぷよに弱くて不慣れなパソコンでの操作での戦いだったからかな。
FPSは60以上出ていました。
制作お疲れ様でした。楽しかったです。


83ポイント を手に入れた。

Name: へろり  ..プログラマー(29,713ポイント)   Date: 2010/08/13(金) 21:28   No:58908     
Title: Re:ミニゲームを作ってみました    
>みなさんにCPUが弱いとは言われていたけど、私には強かったです。(ぷよぷよに弱くて不慣れなパソコンでの操作での戦いだったからかな。

プレイありがとうございます。 私はコントローラ? とか持ってませんので確認はしてませんが、一応対応は出来ているはずです。 よろしかったらチャレンジしてみてください。

それでもどうしても勝てない場合は、一切の操作をしないでみてください。 時々勝てます。 :-)


103ポイント を手に入れた。



Name: まめねこ  ..ぴよぴよ(280ポイント)   Date: 2010/08/13(金) 19:39   No:58901       
Title: プログラミングの館の方を参考に製作しているのですが    

こんにちは、皆様に比べてとても初心者な質問になってしまって
本当に申し訳ないのですが、宜しければ教えて頂けないでしょうか・・。
龍神録プログラミングの館様の方で順番にやっていってみているのですが
順調に出来ていたのが詰まってしまいました・・。

キーコンフィグの〜と書いてあるところに今居るのですが
エラーが68個も出てしまい、

:\documents and settings\\\\gameproject\project\1章\mydat\include\struct.h(19) : error C2065: 'PAD_MAX' : 定義されていない識別子です。
1>c:\documents and settings\\\gameproject\project\1章\mydat\include\struct.h(15) : error C2371: 'ch_t' : 再定義されています。異なる基本型です。
1>

と表示されているのですが、何度も確認したところ
間違いがわからなくて・・。

本当にこんな質問してしまいすみません・・!
宜しければ教えて下さい 


280ポイント を手に入れた。


Name: Dixq (管理人) [URL]  ..ウィザード(1,251,511ポイント)   Date: 2010/08/13(金) 20:04   No:58904     
Title: Re:プログラミングの館の方を参考に製作しているのですが    
> まめねこさん

館の方ご覧下さっているようでありがとうございます。
さて、エラーメッセージが確認出来ているならば、上から一つずつ解決してけば良いですよ。

今回の場合、PAD_MAXが定義されていない事が原因で最初のエラーが出ています。
struct.hから参照出来る場所にPAD_MAXが定義されていますか?確認してみてください。

次に、ch_tが二重定義されているようです。
ch_tを複数の場所で定義していないか、また、同じヘッダファイルを複数の場所から呼び出していないか、
同じヘッダファイルを複数の場所から呼ぶ場合、二重インクルード防止策をきちんと施しているか確認してみてください。


196ポイント を手に入れた。



Name:  ..ぴよぴよ(78ポイント)   Date: 2010/08/13(金) 17:33   No:58891       
Title: .exeのことで    
初めまして。
このブログをきっかけに自分でも作ってみようと思いました
ブログ主には感謝しております。

さてさて、さっそく質問なんですが…

いろいろ自分でデータを作った後にどうやったら、インストーラみたいな形にするんですか?

すいませんあまり知識がなくて…

自分で作ったデータをなにかのソフトを使ってひとつにまとめるような作業とかするのでしょうか?

ご回答のほうよろしくお願いします。


78ポイント を手に入れた。


Name: array [URL]  ..熟練のプログラマー(66,955ポイント)   Date: 2010/08/13(金) 18:05   No:58892     
Title: Re:.exeのことで    
フリーで作成するには色々制限があるかと思いますが検索してみると良いですよ。
http://www.google.co.jp/search?q=%E3%83%95%E3%83%AA%E3%83%BC+%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%A9&ie=utf-8&oe=utf-8&aq=t


有料であればInstallShieldが有名だと思います。
http://www.networld.co.jp/is/main.htm


115ポイント を手に入れた。

Name: YuO  ..熟練のプログラマー(47,565ポイント)   Date: 2010/08/13(金) 20:02   No:58903     
Title: Re:.exeのことで    
WiXというものもあります。

SITE: Windows Installer XML (WiX) toolset
http://wix.sourceforge.net/
MS製品のインストーラの作成にも使われているという話もあります。
ただし,XMLをガリガリ書いていくことになるので,慣れていないと難しい一面もあります。
とりあえず,チュートリアルの日本語版が下にあります。
SITE: WiX チュートリアル (日本語訳) — Windows Installer XML ツールセット入門
http://www.softark.net/wix/

一応,GUIでWiXのXMLを作るWiX Editなるツールもあったりします。
# 他にも探せばあると思います。
SITE: WixEdit | Download WixEdit software for free at SourceForge.net
http://sourceforge.net/projects/wixedit/


313ポイント を手に入れた。



Name: かおり  ..ぴよぴよ(20ポイント)   Date: 2010/08/13(金) 13:35   No:58863       
Title: C言語です。おねがいします。    
次の5つです。

・11/5*10/6を評価して得られる値は?

・xをint型、yをdouble型の変数とするとき、x=y=2.5を評価して得られる値は?

・int型の変数aの値が1であるとき、式a>0を評価して得られる値は?

・int型の変数aの値が0であるとき,式a>0&& a==0を評価して得られる値は?

・int型の変数aの値がどのような値であっても、式a>0 ? a>0 : a<=0を評価して得られる値は?


20ポイント を手に入れた。


Name: パコネコ  ..プログラマー(31,661ポイント)   Date: 2010/08/13(金) 13:40   No:58864     
Title: Re:C言語です。おねがいします。    
これって…自分でやらないと何にもならないタイプじゃ…
1つ目とか暗算できる気がするけど…どうしたらいいの?どうしてほしいの?
プログラム?問題の答え?…答えは書かないけど…


66ポイント を手に入れた。

Name: かをり  ..ぴよぴよ(13ポイント)   Date: 2010/08/13(金) 13:46   No:58865     
Title: Re:C言語です。おねがいします。    
ぷろぐらむをおねがいします。

13ポイント を手に入れた。

Name: パコネコ  ..プログラマー(31,782ポイント)   Date: 2010/08/13(金) 13:57   No:58867     
Title: Re:C言語です。おねがいします。    
微妙に名前変わってる…
評価して得られる値というのは、真か偽かってことでいいんですか?
値だから…0か、0以外かとしかわからないけど…
自分でやってみてわからないところを質問して欲しいんですけど…
if文の条件式に入れて実行されたら、0以外です。
elseが実行されたら偽なので、0です。

できれば、わからなかった部分を質問してください。

=========
ちゃんと値を求めることができた場合はすみません… 編集済み


121ポイント を手に入れた。

Name: バグ  ..ハッカー(206,980ポイント)   Date: 2010/08/13(金) 14:02   No:58871     
Title: Re:C言語です。おねがいします。    
>>カオリさん
これって、プログラムもなにも、問題の文章をそのまんま実行すれば答えがでるじゃない?
何も考える必要なんてありませんよ?
パコネコさんも書いているけど、これの何が分からないのかをハッキリさせないと、誰も答えようがないです。
ここの掲示板の規約を読んで、それに従った質問の仕方をしてくださいね。


96ポイント を手に入れた。

Name: フリオ  ..プログラマー(35,275ポイント)   Date: 2010/08/13(金) 14:12   No:58874     
Title: Re:C言語です。おねがいします。    
>評価して得られる値というのは、真か偽かってことでいいんですか?
 評価して得られる値とは、その式が返す値です。
 
a = 1、b = 2 のとき、a + b を評価して得られる値は、3 です。


82ポイント を手に入れた。

Name: パコネコ  ..プログラマー(32,008ポイント)   Date: 2010/08/13(金) 14:19   No:58875     
Title: Re:C言語です。おねがいします。    
条件式にしか見えなかったから…どうやったらわかるんですか?

多分違うと思いますが…
printf("%d",a>0);
こんなのですか?
すごくエラーって出そうな感じですね…
わからないです…

========
意外とうごきました…知らなかった。
でも真と偽の1もしくは0しか出ませんでした… 編集済み


86ポイント を手に入れた。

Name: がくせい  ..ぴよぴよ(947ポイント)   Date: 2010/08/13(金) 14:21   No:58877     
Title: Re:C言語です。おねがいします。    
またまるごと投げですか
昨日も女性でしたね
名前は女性という方が正しいでしょう
皆が誠意ある対応をしてくれることをここに願う


47ポイント を手に入れた。

Name: ぽこ  ..プログラマー(28,667ポイント)   Date: 2010/08/13(金) 14:34   No:58881     
Title: Re:C言語です。おねがいします。    
> ぷろぐらむをおねがいします。

規約の順守をお願いします。


15ポイント を手に入れた。

Name: パコネコ  ..プログラマー(32,098ポイント)   Date: 2010/08/13(金) 14:35   No:58882     
Title: Re:C言語です。おねがいします。    
これ全部試してみたけど…printfしか使わないんですね…
if文をわざわざ書いてた自分が恥ずかしいです。

かおるさん?かをるさん?どっちかはわかりませんが、printf("%d",式);で実行してみてください。
全部答え出ましたよ…


90ポイント を手に入れた。

Name: フリオ  ..プログラマー(35,330ポイント)   Date: 2010/08/13(金) 14:42   No:58885     
Title: Re:C言語です。おねがいします。    
>条件式にしか見えなかったから…どうやったらわかるんですか?
 関係演算子も演算子なので+、-、*、/等と同じように演算した結果の値を返します。
それが、"真と偽の1もしくは0しか出ませんでした"です。


55ポイント を手に入れた。

Name: toyo  ..熟練のプログラマー(57,537ポイント)   Date: 2010/08/13(金) 14:56   No:58886     
Title: Re:C言語です。おねがいします。    
最後の問題とか見るとこれは頭で考えて答えを書く問題じゃないのでしょうか
printf("%d",式);だと評価値をint型と決め打ちなので適切ではないような


67ポイント を手に入れた。

Name: パコネコ  ..プログラマー(32,228ポイント)   Date: 2010/08/13(金) 15:03   No:58887     
Title: Re:C言語です。おねがいします。    
そういえば%dって書いちゃってましたね。
%.2fにでもします?
小数点以下2ぐらいまで見れば大丈夫だと思う。
2問目だけでいい気もしますけど…

頭で考えるにしても知らないと解けないタイプが多い気がします。
知ってたらすごく簡単な問題もありますけど…
プログラムのほうが勉強にはなると思います。
めんどいこともありますけどね。


120ポイント を手に入れた。

Name: かおり  ..ぴよぴよ(35ポイント)   Date: 2010/08/13(金) 16:21   No:58888     
Title: Re:C言語です。おねがいします。    
できました。

ありがとうございます(^_-)-☆


15ポイント を手に入れた。

Name: かおり  ..ぴよぴよ(43ポイント)   Date: 2010/08/13(金) 16:26   No:58889 解決!     
Title: Re:C言語です。おねがいします。    
ありがとうございます

8ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..ウィザード(1,251,047ポイント)   Date: 2010/08/13(金) 18:11   No:58894     
Title: Re:C言語です。おねがいします。    
> かおりさん

複数の名前を使うことは規約で禁止させて頂いています。
どれか決まった名前で投稿して下さい。
また、課題の丸投げも禁止とさせて頂いております。
規約を守った利用をお願いします。

かおりさんはC言語について苦手意識をお持ちなのでしょうか?
もしそうであれば、先入観にとらわれず、少しずつ解くことに挑戦してみませんか?

複雑な問題が解けなかったとしても、簡単な問題に分割すれば案外簡単に解けることもあります。
また、環境の用意の仕方や基本はなかなか完全に初心者であればハードルが高いと感じるかもしれません。
環境の用意の仕方を初め、わからないことがあれば一つ一つ解決してみましょう。

学習意欲さえあれば皆さん非常に熱心に答えてくださると思います。
最初は皆難しいと思うものです、頑張りましょう。


196ポイント を手に入れた。

Name: Mist  ..比類無きプログラマー(85,302ポイント)   Date: 2010/08/13(金) 18:48   No:58898     
Title: Re:C言語です。おねがいします。    
> かおりさん

「できました」じゃなくて「やってもらいました」ですよね?

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1145214416


31ポイント を手に入れた。

Name: シエル  ..熟練のプログラマー(48,244ポイント)   Date: 2010/08/13(金) 18:56   No:58899     
Title: Re:C言語です。おねがいします。    
Mistさん。よく見つけましたね。

しかもその知恵袋のほかの質問を見てみると、
下の方にあるスレの正整数を逆転する〜みたいな質問も知恵袋でしてますね。
このスレでその質問はsaki太郎さんという名前で質問してますが、それもかおりさんだったんですね。
マルチポスト、複数の名前の使用、まったくマナーを守らない人が増えましたね。
課題の丸投げをしてきた時点で、一切手伝うべきではないでしょう。 編集済み


127ポイント を手に入れた。



Name: Cビギナー  ..ぴよぴよ(67ポイント)   Date: 2010/08/13(金) 05:52   No:58838       
Title: ランダムウォークに関して    
C言語のプログラミングで以下のような課題が出されたのすが、全くの素人で・・・助けてください。
ランダムウォークにおいて
1 右側区画の滞在期間の平均及び滞在期間の割合
2 出発点から5マス以上離れるまでの時間
です。


67ポイント を手に入れた。


Name: dic  ..比類無きプログラマー(90,843ポイント)   Date: 2010/08/13(金) 06:28   No:58841     
Title: Re:ランダムウォークに関して    
まったく、推測ですが
1は左側と右側の領域を考え
ランダムに左か、右に移動させ
どれだけ左にいたか、右にいたかの割合だと思います


64ポイント を手に入れた。

Name: バグ  ..ハッカー(207,209ポイント)   Date: 2010/08/13(金) 14:08   No:58872     
Title: Re:ランダムウォークに関して    
もう少し細かい仕様が欲しいですね。
1度に動ける距離に制限はあるのか?とか…
多分1なんでしょうけど。

それで、全くの素人とありますが、この問題の何が分からないのでしょうか?

ランダムウォークの実装?

エリアごと滞在時間のカウント?

出発地点から5マス離れるまでの時間の計算?


全部分からないのならば、C言語についてどこまで分かっていますか?使っていい関数と使っては駄目な関数は?
聞く側がもっと情報を開示しないと答えようがありませんので。


229ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..ウィザード(1,251,315ポイント)   Date: 2010/08/13(金) 18:25   No:58895     
Title: Re:ランダムウォークに関して    
> Cビギナーさん

こんにちは。
もう少し情報が欲しいのですが、以下お答えいただけますか?

1. どの程度C言語を理解されていますか?(習った・使える構文や分野などは?)
2. 自宅にコンパイル環境はありますか?ある場合それは何ですか?
3. 現在作っているプログラムコードはありますか?ある場合提示してもらえますか?
4. ランダムな値はどうやって生成しますか?

バグさんが仰っている通り、何がわからないかを明確にしてみましょう。
わからないことを一つずつ解決してけば必ず解けると思いますよ。


2倍のポイントを手に入れた! 268ポイント を手に入れた。



Name: saki太郎  ..ぴよぴよ(158ポイント)   Date: 2010/08/13(金) 13:15   No:58859       
Title: 正整数nを読み込んで、それを逆転して表示するプログラムなのですが。    
#include <stdio.h>

int main(void)
{
int  n;
do {
printf("正整数n: "); scanf("%d", &n);
} while (n■0);
 while (■) {
  printf("%d, n■10;
  n■10;
 }
 putchar(■);
 return (0);
}


■のところの部分が私にはよくわからないのですが、どなたかわかりませんかorz


158ポイント を手に入れた。


Name: パコネコ  ..プログラマー(31,595ポイント)   Date: 2010/08/13(金) 13:26   No:58861     
Title: Re:正整数nを読み込んで、それを逆転して表示するプログラムなのですが。    
逆転の意味がよくわからないです…
printfのとこ間違えてるし…
==========
逆転って桁だったんですね…
===========
whileの条件って「n<=0」こうじゃないんですか?
どっちでもいいっちゃいいと思いますけど… 編集済み


22ポイント を落としてしまった。

Name: Yperia  ..ぴよぴよ(669ポイント)   Date: 2010/08/13(金) 13:27   No:58862     
Title: Re:正整数nを読み込んで、それを逆転して表示するプログラムなのですが。    
こんにちは。
ちょっと私用で急ぎですので、コードのみですいません;

#include <stdio.h>

int main(void)
{
    int  n = 0;
    do {
        printf("正整数n: ");
        scanf("%d", &n);
    } while (n == 0);

    while (n!=0) {
        printf("%d", n%10);
        n/=10;
    }
    putchar('E');    // 意味不明。必要ない

    return (0);
} 


78ポイント を手に入れた。

Name: saki太郎  ..ぴよぴよ(177ポイント)   Date: 2010/08/13(金) 13:48   No:58866     
Title: Re:正整数nを読み込んで、それを逆転して表示するプログラムなのですが。    
ありがとうごさいます!!

"E"はなぜ必要ないのですか?


19ポイント を手に入れた。

Name: パコネコ  ..プログラマー(31,796ポイント)   Date: 2010/08/13(金) 13:58   No:58868     
Title: Re:正整数nを読み込んで、それを逆転して表示するプログラムなのですが。    
なんで必要なの?って聞き返してみます。



14ポイント を手に入れた。

Name: saki太郎  ..ぴよぴよ(196ポイント)   Date: 2010/08/13(金) 14:01   No:58869     
Title: Re:正整数nを読み込んで、それを逆転して表示するプログラムなのですが。    
じゃあputcharはいらないのですか?

19ポイント を手に入れた。

Name: フリオ  ..プログラマー(35,193ポイント)   Date: 2010/08/13(金) 14:02   No:58870     
Title: Re:正整数nを読み込んで、それを逆転して表示するプログラムなのですが。    
>ありがとうごさいます!! 
 本当ですか?
これは、穴埋め問題ではないのですか?
もしそうなら、Yperiaさんの回答は問題文を書き換えてます。
 
>なんで必要なの?って聞き返してみます。
 このプログラムを考えた人が"そのように"表示したかったからではないでしょうか。
 


5ポイント を落としてしまった。

Name: パコネコ  ..プログラマー(31,922ポイント)   Date: 2010/08/13(金) 14:10   No:58873     
Title: Re:正整数nを読み込んで、それを逆転して表示するプログラムなのですが。    
私は必要ないと思ったのは、すでに答えの描写はprintfで行われていたので…
必要だとしても、nしか宣言されていないようなので…nを描写しても0だろうし…

>これは、穴埋め問題ではないのですか? 
だとしたら、新しく宣言するわけにも行きませんし…

>回答は問題文を書き換えてます
どっちにしても、書き間違えてる部分もありますよ…
=======
いまされですけど…プログラムの終了のEなんですかね。
気がつきませんでしたが…
========解決後====
ほんとに必要ないかはわかりませんよ…問題とかで提出するなら書いとかないと… 編集済み


126ポイント を手に入れた。

Name: saki太郎  ..ぴよぴよ(219ポイント)   Date: 2010/08/13(金) 14:21   No:58876     
Title: Re:正整数nを読み込んで、それを逆転して表示するプログラムなのですが。    
だから必要ないんですね。わかりました。ありがとうございます!!


23ポイント を手に入れた。

Name: saki太郎  ..ぴよぴよ(210ポイント)   Date: 2010/08/13(金) 14:22   No:58878 解決!     
Title: Re:正整数nを読み込んで、それを逆転して表示するプログラムなのですが。    
解決です!!

9ポイント を落としてしまった。

Name: toyo  ..熟練のプログラマー(57,470ポイント)   Date: 2010/08/13(金) 14:27   No:58879     
Title: Re:正整数nを読み込んで、それを逆転して表示するプログラムなのですが。    
最後に改行したいのでは
putchar('\n');


21ポイント を手に入れた。

Name: Yperia  ..ぴよぴよ(734ポイント)   Date: 2010/08/13(金) 14:34   No:58880     
Title: Re:正整数nを読み込んで、それを逆転して表示するプログラムなのですが。    
>whileの条件って「n<=0」こうじゃないんですか? 
確かに、最初のwhileに関してはそうですね。
ミスしました、すいません。


>最後に改行したいのでは
なるほど。
確かにそんな気がします。


65ポイント を手に入れた。

Name: saki太郎  ..ぴよぴよ(245ポイント)   Date: 2010/08/13(金) 14:36   No:58883     
Title: Re:正整数nを読み込んで、それを逆転して表示するプログラムなのですが。    

putchar('\n');

入れてみたのですが、実行できませんでした・・・


35ポイント を手に入れた。

Name: パコネコ  ..プログラマー(32,108ポイント)   Date: 2010/08/13(金) 14:38   No:58884     
Title: Re:正整数nを読み込んで、それを逆転して表示するプログラムなのですが。    
コピーしたけど改行されたよ…

10ポイント を手に入れた。



Name: uni  ..ぴよぴよ(637ポイント)   Date: 2010/08/13(金) 05:53   No:58839       
Title: ジャンプのコード    
↑でジャンプをするコードを書きたいんですが。
ジャンプをどうしたらいいかわからなくてとまっています。
#include"../include/GV.h"

void calc_ch(){
        ch.cnt++;
        
}

void ch_move(){
        int i,sayu_flag=0,joge_flag=0;
        double x,y,mx,my,naname=1;
        double move_x[4]={-4.0,4.0,0,0},move_y[4]={0,0,4.0,-4.0};
        int inputpad[4];
        inputpad[0]=CheckStatePad(configpad.left); inputpad[1]=CheckStatePad(configpad.right);
        inputpad[2]=CheckStatePad(configpad.down); inputpad[3]=CheckStatePad(configpad.up);

        if(CheckStatePad(configpad.left)>0)
               ch.img=(ch.cnt%64)/8;
        else if(CheckStatePad(configpad.right)>0)
               ch.img=(ch.cnt%64)/8;

        for(i=0;i<2;i++)//左右分
                if(inputpad[i]>0)
                        sayu_flag=1;
        for(i=2;i<4;i++)//上下分
                if(inputpad[i]>0)
                        joge_flag=1;
        if(sayu_flag==1 && joge_flag==1)
                naname=sqrt(2.0);

        for(int i=0;i<4;i++){
                if(inputpad[i]>0){
                        x=ch.x , y=ch.y;
                        mx=move_x[i];   my=move_y[i];
                        if(CheckStatePad(configpad.slow)>0){
                                mx=move_x[i]/3; my=move_y[i]/3;
                        }
                        x+=mx/naname , y+=my/naname;
                        if(!(x<10 || x>FIELD_MAX_X-10 || y<5 || y>FIELD_MAX_Y-5)){
                                ch.x=x , ch.y=y;
                        }
                }
        }
}

できれば if(CheckStatePad(configpad.up)>0)のにジャンプを設定したいと思っています
それでこのcppファイルに直接ジャンプの計算式みたいな何かを書くんでしょうか?
それとも.hとかに何か書くんでしょうか?
教えてください。


575ポイント を手に入れた。


Name: ひよこ  ..比類無きプログラマー(86,525ポイント)   Date: 2010/08/13(金) 08:47   No:58845     
Title: Re:ジャンプのコード    
普通は実装は.cpp、宣言は.hで行います。
グローバル変数なら、他の所でも出来ます。
例えば、キーが押されたらフラグが立って、
フラグが立ったらjump.cppのjump_calc関数で計算するみたいな感じです。


64ポイント を手に入れた。



Name: みけCAT  ..かけだし(2,167ポイント)   Date: 2010/08/12(木) 15:50   No:58770       
Title: char型配列にint型のデータを書き込む    
C言語でゲームを作って見ようと思い、Dev-Cpp4.9.9.2でプログラムを書いています。
ランキングを実装しようと思い、一つのchar型配列でデータを管理しようと思いました。
配列の宣言は
char ranking[14*5];
です。 この配列を初期化しようと思い、
FillMemory(ranking,sizeof(ranking),0)
*((int*)(ranking+10))=100000;/*エラーが出る行*/
*((int*)(ranking+24))=100000;
*((int*)(ranking+38))=100000;
*((int*)(ranking+52))=100000;
*((int*)(ranking+66))=100000;
のように書いたら、
invalid operands to binary * 

というエラーメッセージが出ました。
どうすればchar型配列でint型のデータも扱えるか教えてくださるとありがたいです。
この配列をそのままファイルに保存するので、
すいませんが構造体を使えばいいというのはなしでお願いします、


2倍のポイントを手に入れた! 486ポイント を手に入れた。


Name: めるぽん  ..中級者(12,932ポイント)   Date: 2010/08/12(木) 16:07   No:58772     
Title: Re:char型配列にint型のデータを書き込む    
構造体を使いましょう。

そのエラーが何であるかは分かりませんが、そもそも char 配列に int データを書き込む場合はアライメントの問題が発生する可能性が高いです。
この場合、int のデータを書き込みたいのであれば、そのデータを char に分割して書き込むか、int が配置可能な位置であるというのを何らかの方法で調べた上でデータを書き込むべきです。

そういうわけで、char 配列に int を書き込むのはそれなりに手間なので、
struct ranking_data
{
    char c[10]; // 何かのデータ?
    int value;
};
ranking_data ranking[5];

FillMemory(ranking, sizeof(ranking), 0)
ranking[0].value = 100000;
ranking[1].value = 100000;
ranking[2].value = 100000;
ranking[3].value = 100000;
ranking[4].value = 100000;

// 何かに保存する
save((char*)ranking, sizeof(ranking));

とかやるのがいいのではないでしょうか。
構造体をそのままファイルに保存すればいいだけなので、わざわざ char 配列を使う必要はありません。


348ポイント を手に入れた。

Name: パコネコ  ..プログラマー(30,617ポイント)   Date: 2010/08/12(木) 16:15   No:58773     
Title: Re:char型配列にint型のデータを書き込む    
使えそうなの探してみましたが…
sprintfというものは使えないのでしょうか?
勘違いならすいません。


2倍のポイントを手に入れた! 38ポイント を手に入れた。

Name: toyo  ..熟練のプログラマー(57,449ポイント)   Date: 2010/08/12(木) 16:29   No:58774     
Title: Re:char型配列にint型のデータを書き込む    
構造体にすればと思ったら最後にお願いが・・・
同じ構造体でファイルの読み書きする分にはパディングに関しても問題ないと思いますが
パディングがいやならパディングなしで構造体を定義すればいいです
gccなら__attribute__ ((packed))でしたっけ


16ポイント を手に入れた。

Name: みけCAT  ..入門者(2,631ポイント)   Date: 2010/08/12(木) 17:01   No:58775     
Title: Re:char型配列にint型のデータを書き込む    
構造体を使う方法でうまくいきました。
/*宣言*/
struct ranking_data
{
    char name[10];
    int kyori;
};

/*ランキングデータ読み込み*/
wsprintf(stagefile,"%s\\ranking.dat",folder);
hfile=CreateFile(stagefile,GENERIC_READ,0,NULL,
    OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
if(hfile==INVALID_HANDLE_VALUE) {
    /*ランキングデータ初期化*/
    FillMemory(ranking,sizeof(ranking),0);
    ranking[0].kyori=100000;
    ranking[1].kyori=100000;
    ranking[2].kyori=100000;
    ranking[3].kyori=100000;
    ranking[4].kyori=100000;
    status=9;
} else {
    /*ランキングデータ読み込み*/
    ReadFile(hfile,ranking,sizeof(ranking),(DWORD*)&readsize,NULL);
    if(readsize!=sizeof(ranking))status=-3; else status=9;
    CloseHandle(hfile);
}
/*自分が何位にランクインしたか*/
for(rank=0;rank<5;rank++) {
    if(ranking[rank].kyori>=kyori)break;
}
if(rank<5) {
    memcpy(&ranking[rank+1],&ranking[rank],sizeof(ranking[0])*(4-rank));
    FillMemory(&ranking[rank],sizeof(ranking[rank]),0);
    ranking[rank].kyori=kyori;
    ranklast=37;
}

/*ランキングの保存*/
wsprintf(stagefile,"%s\\ranking.dat",folder);
hfile=CreateFile(stagefile,GENERIC_WRITE,0,NULL,
    CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
if(hfile==INVALID_HANDLE_VALUE) {
    status=-4;
} else {
    /*ランキングデータ書き込み*/
    WriteFile(hfile,ranking,sizeof(ranking),(DWORD*)&readsize,NULL);
    if(readsize!=sizeof(ranking))status=-5; else status=12;
    CloseHandle(hfile);
}


464ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(219,050ポイント)   Date: 2010/08/13(金) 03:35   No:58836     
Title: Re:char型配列にint型のデータを書き込む    
> invalid operands to binary * 

> というエラーメッセージが出ました。 

エラーの直接の原因は、FillMemoryの行の末尾にセミコロンがないからです。
MinGWなので、(移植性を除けば)境界調整の問題もおきないと思いますので、それで何とかなるのでは?


2倍のポイントを手に入れた! 134ポイント を手に入れた。



Name: hitomi  ..ぴよぴよ(12ポイント)   Date: 2010/08/13(金) 01:40   No:58829       
Title: 無題    
非負整数n(int型)と実数x(double型)を入力し、式
f(x)=Σ(k=0〜n) (-1)^k x^2k+1/(2k+1)!
の値を表示するプログラムを作成しなさい。という問題なのですが、答え方がよくわかりません。
(-1)^k x^2x+1/(2k+1)!=(-1)^k-1 x^2(k-1)+1/{2(k-1)+1}! *(-1) x^2/2k(2k+1)
を使えば良いということには気付いたのですが。


12ポイント を手に入れた。


Name: reghorn  ..かけだし(1,118ポイント)   Date: 2010/08/13(金) 01:44   No:58830     
Title: Re:無題    
Σはループに直せばそのまま計算できると思います。
例えば
Σ(k=0〜n)(k+1)をプログラムで計算する場合
ans = 0;
for(k=0;k<=n;k++)
ans += k+1;

のようにしてやればいいです。
 編集済み


70ポイント を手に入れた。

Name: hitomi  ..ぴよぴよ(66ポイント)   Date: 2010/08/13(金) 01:59   No:58831     
Title: Re:無題    
なかなか難しいんですね。すごく失礼ですが、できれば初めからの流れを載せていただくとすごく助かりますorz

54ポイント を手に入れた。

Name: reghorn  ..かけだし(1,218ポイント)   Date: 2010/08/13(金) 02:12   No:58832     
Title: Re:無題    
変数宣言
入力
ループで計算
出力

こんだけですねー
ループで計算計算はさっき書いたfor文のk+1ところをいじってください
入力とか出力はscanfとかprintfとかで適当にやればいいと思います
 編集済み


100ポイント を手に入れた。

Name: hitomi  ..ぴよぴよ(82ポイント)   Date: 2010/08/13(金) 02:14   No:58833     
Title: Re:無題    
ありがとうございます。おそらくいけるかと・・・

16ポイント を手に入れた。



Name: あや  ..かけだし(1,953ポイント)   Date: 2010/08/12(木) 22:04   No:58792       
Title: 任意の値です    
すみません。

任意の値を読み込み最高点と最低点を求めるプログラムを教えてください。

c言語で、Linuxを使ってます。



45ポイント を手に入れた。


Name: s-rush  ..熟練のプログラマー(63,198ポイント)   Date: 2010/08/12(木) 22:13   No:58793     
Title: Re:任意の値です    
なんか、丸投げのような感じになっていますね。
基本的に「教えてください」というのは禁止です。
詳しくは規約を読んでください。

できるだけあやさん自身でプログラムを書いて、
そのうえで分からない個所を聞くようにしないと力がつきませんよ。
それに、答える側としてもあやさんの能力(知識)がどの程度なのか分からないので、
回答しづらいです。

あと、問題の意味がよくわかりません^^;
テキストファイルか何かに複数個の得点が書かれていて、
そのファイルを読み込んだうえで最高点および最低点を求めるプログラム・・・
ということなのでしょうか?
できれば、もう少し詳しく教えていただかないとお答えできないかと思います。


174ポイント を手に入れた。

Name: あや  ..かけだし(1,988ポイント)   Date: 2010/08/12(木) 23:02   No:58796     
Title: Re:任意の値です    
すいません。C言語の知識が全くないので・・・なんとかお願いできないですか。

35ポイント を手に入れた。

Name: softya [URL]  ..ハッカー(192,142ポイント)   Date: 2010/08/12(木) 23:07   No:58798     
Title: Re:任意の値です    
なぜ、C言語の知識のない人がC言語のプログラムが必要なのか理由を教えていただけますか。
それと、 s-rushさん と同様ですが問題の詳しい説明をしてください。
規約と注意事項にあるテンプレートに従っていただくと話が早いです。


67ポイント を手に入れた。

Name: あや  ..かけだし(1,949ポイント)   Date: 2010/08/12(木) 23:22   No:58799     
Title: Re:任意の値です    
大学の課題なんですが、私もこれをC言語でやれと言われちんぷんかんぷんで・・・何も情報なくてすいません。

39ポイント を落としてしまった。

Name: s-rush  ..熟練のプログラマー(63,681ポイント)   Date: 2010/08/12(木) 23:22   No:58800     
Title: Re:任意の値です    
C言語の知識が全くないと言われると困るのですが・・・^^;

こちらのサイトで言うとどのあたりまで理解できていますか?
http://www.kumei.ne.jp/c_lang/index_c.html

大学での課題なのかもしれませんが、
他人が作ったものを理解せずにそのまま提出するということを繰り返していると、
いづれ本当に困ったことになってしまいますよ?

とりあえず、先ほど私がした質問に対する回答をください。


>任意の値を読み込み最高点と最低点を求めるプログラムを教えてください。
これだけじゃ仕様が不足していて回答できません。
任意の値を読み込む方法が曖昧で分かりませんし、
値の個数に関しても何も書かれていません。

コマンドラインからの入力ですか?
それともテキストファイルからの読み込みですか?
読み込む値の個数は10個ですか?100個ですか?それとも任意ですか?

大学の課題であるなら、その問題文をそのまま書かれた方が、
よりよい回答が得られると思いますよ。


ちなみに、私は2、3日プログラムできない環境にいるので、
プログラムのソースを直接教えるということはできません。
なので、ほかの方に任せる形になってしまうかもしれませんorz


483ポイント を手に入れた。

Name: パコネコ  ..プログラマー(30,700ポイント)   Date: 2010/08/12(木) 23:31   No:58801     
Title: Re:任意の値です    
やりたいことはなんとなくわかりますが…
>>すいません。C言語の知識が全くないので・・・なんとかお願いできないですか。
この中で知っているものはありますか?
・scanf
・if
・for
・printf
大学で出されたということは教えてもらったことはあるはずと思います。(何か事情がある場合はすいません)
なので知っていそうなものとかありますか?
========
上の質問は、どのぐらい知識があるのかの質問なので…
皆さんの言っている問題文も忘れずに…


 編集済み


142ポイント を落としてしまった。

Name: s-rush  ..熟練のプログラマー(63,772ポイント)   Date: 2010/08/12(木) 23:32   No:58802     
Title: Re:任意の値です    
書きこみしてる間に2件増えてたorz
大学の課題なんですね。
では、その課題の問題をそのまま書いていただけないでしょうか?
あと、できれば提出期限も書いていただければ
回答する側にしても期日を意識しながら回答できると思うので、教えてほしいです。


91ポイント を手に入れた。

Name: softya [URL]  ..ハッカー(192,252ポイント)   Date: 2010/08/12(木) 23:40   No:58803     
Title: Re:任意の値です    
C言語は分からないにしても何らかのプログラミング言語はご存知だと思いますが、それで問題を解くことは出来ますか?(それさえ知らない人にC言語の課題を出すのは論外でしょう)


2倍のポイントを手に入れた! 110ポイント を手に入れた。

Name: あや  ..かけだし(1,998ポイント)   Date: 2010/08/12(木) 23:43   No:58804     
Title: Re:任意の値です    
・scanf 
・if 
・for 
・printf

これは使ってもいいっていってたような・・・・orz

提出期限は明日の朝なんです…orz

任意の個数です。

テストの点数の話で、30点、50点、90点

って、いれたら、最高点が90点。最低点30点っと結果をだしたいです。


49ポイント を手に入れた。

Name: パコネコ  ..プログラマー(30,749ポイント)   Date: 2010/08/12(木) 23:45   No:58805     
Title: Re:任意の値です    
>これは使ってもいいっていってたような・・・・orz 
みたことはあるんですね。
使い方を知っているものはありますか?


49ポイント を手に入れた。

Name: あや  ..かけだし(1,998ポイント)   Date: 2010/08/12(木) 23:48   No:58806     
Title: Re:任意の値です    
たぶん本を見ればわかると思います。

Name: s-rush  ..熟練のプログラマー(63,870ポイント)   Date: 2010/08/12(木) 23:49   No:58807     
Title: Re:任意の値です    
明日の朝ですか・・・
ちょとキツイかもしれませんね^^;

任意の個数ってのが、意外と厄介かもしれません。

mallocで配列確保して、ソートする・・・のがいいのかな?

とりあえず、配列ってわかりますか?


98ポイント を手に入れた。

Name: パコネコ  ..プログラマー(30,909ポイント)   Date: 2010/08/12(木) 23:52   No:58810     
Title: Re:任意の値です    
>任意の個数ってのが、意外と厄介かもしれません。 
ある数を入れるまで無限ループ使いましょう。
ソートいらないでしょう…多分
今回は最大と最小を出すだけのようなので…
入力の後、代入という形はどうですか?
あやさん
今言っている意味わかりますか?
わからなかったら言ってくださいね、わからないままが一番ダメですよ?


160ポイント を手に入れた。

Name: あや  ..かけだし(2,009ポイント)   Date: 2010/08/12(木) 23:53   No:58811     
Title: Re:任意の値です    
配列も本を見ればわかると思います。

11ポイント を手に入れた。

Name: パコネコ  ..プログラマー(31,031ポイント)   Date: 2010/08/12(木) 23:55   No:58812     
Title: Re:任意の値です    
配列使わなくてもできると思いますけど…
でもできるのはいいことです。
ただ「もし」ループでやるならwhile文も必要だと思います。
いけます?


2倍のポイントを手に入れた! 122ポイント を手に入れた。

Name: あや  ..かけだし(2,045ポイント)   Date: 2010/08/13(金) 00:04   No:58813     
Title: Re:任意の値です    
While文・・・本に載ってました!!たぶん大丈夫です。
あと全く関係ないんですが、パコネコさんのポイントなんで2倍になったんですか?笑


36ポイント を手に入れた。

Name: シエル  ..熟練のプログラマー(47,022ポイント)   Date: 2010/08/13(金) 00:04   No:58814     
Title: Re:任意の値です    
>ある数を入れるまで無限ループ使いましょう。

ん?任意の数だったら動的確保する必要があると思うけど。


29ポイント を手に入れた。

Name: s-rush  ..熟練のプログラマー(63,902ポイント)   Date: 2010/08/13(金) 00:07   No:58815     
Title: Re:任意の値です    
>ん?任意の数だったら動的確保する必要があると思うけど。 
ですよね^^;
動的確保しない方法が思い浮かばないですorz


32ポイント を手に入れた。

Name: パコネコ  ..プログラマー(31,157ポイント)   Date: 2010/08/13(金) 00:09   No:58816     
Title: Re:任意の値です    
とりあえず
時間がないとのことですので、
日本語でプログラム書いてみます。

宣言 最大=0、最小=100、なんか;

ループ(条件){
 入力;
 もし(入力の値が条件ではないなら){
  もし(入力の値が最小より小さいなら)最小に代入;
  もし(入力の値が最大より大きいなら)最大に代入;
 }

結果を出力;

こんな感じで、プログラム作れますか?
=========
あれ?
任意の数ってことは「好きなだけ入力してよいぞ」的なやつじゃなかったですか?
わ〜、恥ずかしい…勘違いだったみたいで、もうすいませんとしか言えません…
=========
一応直しました。
2倍に理由があるのかもわかりませんが…たまになります。
ときどき落すことも… 編集済み


126ポイント を手に入れた。

Name: s-rush  ..熟練のプログラマー(63,949ポイント)   Date: 2010/08/13(金) 00:13   No:58818     
Title: Re:任意の値です    
ああ、そう言われてみれば配列必要ありませんでしたね^^;


補足
ループに入る前に初期化(0を代入)することをお忘れなく。


47ポイント を手に入れた。

Name: あや  ..かけだし(2,051ポイント)   Date: 2010/08/13(金) 00:21   No:58819     
Title: Re:任意の値です    
ぱぴねこさん・・・

日本語をプログラムになおせないです・・・

どんなふうになるんですか?


6ポイント を手に入れた。

Name: パコネコ  ..プログラマー(31,303ポイント)   Date: 2010/08/13(金) 00:25   No:58820     
Title: Re:任意の値です    
え〜と、pとkって結構近いですもんね。
拗ねてないですよー(泣)
と、冗談はさておき
わかりやすく書いたつもりだったんですが…
「もし」はif文を意味してます。
「入力」はscanfです。
「出力」はprintfです。
「ループ」はwhileです。
意味を理解しながら書いてみてください。
きっと勉強になるはずです。
============
結局あってたのかな?
一応忘れてたもの
「宣言」はintでいいと思います。

最初に#includeとか忘れないように気をつけてください。 編集済み


146ポイント を手に入れた。

Name: あや  ..かけだし(2,007ポイント)   Date: 2010/08/13(金) 00:34   No:58821     
Title: Re:任意の値です    
ぱこねこさん

宣言 最大=0、最小=100、なんか;

の、なんかってなんですか?


44ポイント を落としてしまった。

Name: パコネコ  ..プログラマー(31,369ポイント)   Date: 2010/08/13(金) 00:36   No:58822     
Title: Re:任意の値です    
ごめんなさい
一応、なんかはなんかです。
aでいいんじゃないでしょうか?

使うときは、scanfで入力するときにでも…

あ、ポイント落しましたね。
=========
そういえば、課題の問題は結局… 編集済み


66ポイント を手に入れた。

Name: あや  ..かけだし(2,045ポイント)   Date: 2010/08/13(金) 00:49   No:58823     
Title: Re:任意の値です    
ぱぴねこさん。

わかりました。ちょっとやってみますね(@_@)

ありがとうございます。


38ポイント を手に入れた。

Name: パコネコ  ..プログラマー(31,395ポイント)   Date: 2010/08/13(金) 00:52   No:58824     
Title: Re:任意の値です    
また…(泣)

完成したら、解決マーク付けておいてくださいね。
そして、がんばってくださいね。
=========
で、問題は… 編集済み


26ポイント を手に入れた。

Name: あや  ..かけだし(2,051ポイント)   Date: 2010/08/13(金) 01:06   No:58826 解決!     
Title: Re:任意の値です    
(>_<)

6ポイント を手に入れた。

Name: パコネコ  ..プログラマー(31,341ポイント)   Date: 2010/08/13(金) 01:09   No:58827     
Title: Re:任意の値です    
意味がわかりません。
完成したと思っていいのですね。

最後まで問題書きませんでしたね…

お疲れ様でした…


54ポイント を落としてしまった。



Name: (´・ω・`)  ..ぴよぴよ(72ポイント)   Date: 2010/08/01(日) 01:02   No:57910       
Title: シューティングゲーム作製について    
現在2名でシューティングゲームの作製に取り組んでいます。


プログラムを組んでいく中でわからないことがありました。
ステージ1というのを仮に完成させたとして、次ステージに移り変わる時にどのような関数を駆使して作製していけばよいか悩んでいます。

また、ステージの移り変わりの際にどのようなファイル構造で作製していったら良いのか知りたいので、参考になるファイル構造などがあれば教えて頂けたら幸いです。

回答よろしくお願いします。

 編集済み


72ポイント を手に入れた。


Name: jay  ..上級者(19,797ポイント)   Date: 2010/08/01(日) 11:54   No:57920     
Title: Re:シューティングゲーム作製について    
僕もそれには苦労しましたねぇ・・・。
そのアルゴリズム(考え方)だけ書いてみますね。

まずステージをクリアしたら(ボスを倒したら?)
clear_flagでもなんでもいいので、変数を1にします(フラグを立てる)
clear_flagは普段0にしておく訳ですね。

そしてclear_flagが1になったらステージを変更するための処理をする関数を作動させる訳ですね。

その関数でやるべきことは大きく3つです
 ・余計なものを消す
   ステージ1で使われた敵の情報やBGMなどステージ2で使わないものは消します。

 ・必要なものを初期化
   自機の位置を初期位置に戻すなど、必要な値を初期化します。
   自機のパワーや残機など、消さずに引き継ぐべきものは消さないように注意して下さい。

 ・次のステージのデータを読み込む
   次のステージの背景や敵の情報など、必要な情報を読み込みます。
   
(いずれもプログラムの使用によっては他のタイミングで行うこともります)

ステージを変更した後はclear_flagを0にすることを忘れないように。


まぁ、あくまでも考え方なので
これを参考に自分なりのやり方でやればいいと思いますよ。


441ポイント を手に入れた。

Name: (´・ω・`)  ..ぴよぴよ(254ポイント)   Date: 2010/08/01(日) 23:09   No:57950     
Title: Re:シューティングゲーム作製について    
返答ありがとうございます!

わかりやすくまとめて頂けたので
おかげでゲーム作製を進める大きなヒントとなりました。

今後とも質問していくと思うで
その時はよろしければ返答よろしくお願いします。


2倍のポイントを手に入れた! 182ポイント を手に入れた。

Name: (´・ω・`)  ..ぴよぴよ(453ポイント)   Date: 2010/08/06(金) 00:05   No:58152     
Title: 新しく質問です    
○自機の移動自に上下は表示してくれるんですが、左右は表示してくれません。

龍神録のサンプルプログラムを取り、章通りに作製を進めていました。
とりあえず自機の移動をさせようと思い、章9までは順調に進んでいます。

そこで画像を差し替えてみようとし、戦闘機の画像を追加しました。
上下移動は動いている間も表示してくれるんですが、左右となるとキーを押している間自機が消えてしまいます。また、キーを離すと移動された先で表示してくれます。


動いている間も表示し続けたいのですがどうすればいいでしょうか。

変更した点は以下の通りです。


○char.cpp

#include "../include/GV.h"

void calc_ch(){
        ch.cnt++;
        ch.img=(ch.cnt%24)/12;  ← 6から12に変更
}


○load.cpp

 LoadDivGraph( "../dat/img/char/p2.png", 2 , 2 , 1 , 60 , 60 , img_ch[0] ) ;
}                ↑   
        (保存した名前に変更)
戦闘機1枚につき、計2枚の画像(ブーストの表現)。横には2枚。縦には1枚。縦横は60ピクセルです。
                       



199ポイント を手に入れた。

Name: 白い時空  ..入門者(4,731ポイント)   Date: 2010/08/06(金) 00:34   No:58155     
Title: Re:新しく質問です    
おそらくch_move()の中にある

if(CheckStatePad(configpad.left)>0)//左キーが押されていたら
        ch.img+=4*2;//画像を左向きに
else if(CheckStatePad(configpad.right)>0)//右キーが押されていたら
        ch.img+=4*1;//画像を右向きに

この部分が原因です。ここで、左右移動時の画像に変更しています。
差し替えた画像では左右移動時の画像がないので、表示されなくなっているのだと思います。
削除してないなら、削除してみてください。


169ポイント を手に入れた。

Name: wing  ..中級者(12,499ポイント)   Date: 2010/08/06(金) 03:50   No:58158     
Title: Re:新しく質問です    
int img_ch[2][12] ←これも変更する必要があると思います。
(「変更した点は以下の通りです。」になかったので。)


15ポイント を手に入れた。

Name: (´・ω・`)  ..ぴよぴよ(493ポイント)   Date: 2010/08/08(日) 00:40   No:58254     
Title: Re:新しく質問です    
問題解決しました。

削除していないとちゃんと表示されないんですねー
配列の中身も変更しておきました。

みなさん回答ありがとうございます!


40ポイント を手に入れた。

Name: (´・ω・`)  ..ぴよぴよ(623ポイント)   Date: 2010/08/10(火) 00:14   No:58537     
Title: 新しく質問です    
11章の「エクセルを使って敵の出現データを作ってみよう」を実践しました。

敵機が10機出現して戻って終わり。という流れなのですが、19機も出現してきてしかも敵機同士の間隔が結構
開いています。

追加、変更等も指示された通りに行ったのですが上手くいかず…

まだ変更するべき点などがあればご教授お願いします。



130ポイント を手に入れた。

Name: jay  ..上級者(20,748ポイント)   Date: 2010/08/10(火) 15:52   No:58597     
Title: Re:新しく質問です    
えっと、まず質問に答える前に(´・ω・`)さんに言わなければならないことがありますね。
掲示板の規約にも書いてある通り、原則として一度質問して問題が解決したら”解決マーク”をつけなければなりません
そして別の質問をしたい時は新しくスレを立てる、これがこの掲示板のやり方だそうです。
あなたはこの掲示板を利用し始めてまだそんなに間がたっていないようですし、これ以上は僕からとやかく言いません
でも次からは気をつけて下さいね(ついでに利用規約をちゃんと読んで下さいね)


で、質問の答えですが
「エクセルを使って敵の出現データを作ってみよう」
に書いてあるとおり、通常の敵はエクセルによってデータを管理されています

プログラム上に問題が無いのならエクセルデータに問題があるのではないでしょうか?
エクセルに19機分のデータが登録されていれば敵も19機出てきます。

まずはそこを確認してみて下さい 編集済み


342ポイント を手に入れた。

Name: (´・ω・`)  ..ぴよぴよ(714ポイント)   Date: 2010/08/12(木) 21:41   No:58791 解決!     
Title: Re:新しく質問です    
回答ありがとうございます!

現在共にゲーム開発しているメンバーが不在なので後に確認することにします。
指摘ありがとうございます。

利用規約を読まずこの掲示板を利用していました。申し訳ありません・・・
次回から気をつけます。
 編集済み


91ポイント を手に入れた。



Name: ぬっち [URL]  ..中級者(11,905ポイント)   Date: 2010/08/11(水) 20:17   No:58730       
Title: pimplイディオムの使用場所    
ご無沙汰しております。

久々に、DirectX9のライブラリを作りなおしてみようと考え、プログラミングを始めました。
今回は、Effective C++ 第3版に載っている、実装とインターフェイスの分離をするための、pimplイディオムについてお聞きしたいと思います。
私は、ある基底クラスで「実装の隠蔽」+「ファイル間の依存関係によるコンパイル時間増大の防止」を行うために、pimplイディオムを使用しました。
その基底クラスから継承した時、基底クラスにある実装クラスも継承しなければならないことがわかりました。
しかし、基底クラスを継承したものを別ファイルに置きたいと思ったのですが、基底クラスの実装クラスは隠蔽されているため、もちろん基底クラスの実装クラスを継承する事は出来ませんでした。
別のファイルに継承クラスを作ることにすると実装クラス用のヘッダーファイルを作ることになりますが、これは実装の隠蔽に反してしまいます。

私が考えたのは、pimplイディオムは、
・継承に使われるクラスには使用しない。
・全てのクラスに使うのではなく、それらのクラスをまとめたパッケージとしてのクラス(インターフェイスクラス?)に使用する。
であるべきだと思いました。

皆さんはどのようにお考えですか?
今回勉強ついでに、初めてpimplイディオムを使用したのですが、よくわかっていないことがまだ多いため、ここで質問させていただきました。

よろしくお願いします。


220ポイント を手に入れた。


Name: たかぎ [URL]  ..ハッカー(218,698ポイント)   Date: 2010/08/11(水) 20:29   No:58733     
Title: Re:pimplイディオムの使用場所    
> 別のファイルに継承クラスを作ることにすると実装クラス用のヘッダーファイルを作ることになりますが、これは実装の隠蔽に反してしまいます。 

公開用のヘッダと実装内部でしか使わないヘッダにわければよいのでは?


22ポイント を手に入れた。

Name: ぽこ  ..プログラマー(27,430ポイント)   Date: 2010/08/11(水) 20:34   No:58735     
Title: Re:pimplイディオムの使用場所    
>基底クラスから継承した時、基底クラスにある実装クラスも継承しなければならないことがわかりました。

実装クラスに依存しないように、設計を見直すべきです。

>別のファイルに継承クラスを作ることにすると実装クラス用のヘッダーファイルを作ることになりますが、
>これは実装の隠蔽に反してしまいます。 

誰に対して隠蔽しようとしていますか?
隠蔽すべき相手はパッケージ利用者であって、
パッケージの提供者には隠蔽する必要ないですよね?


218ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(218,706ポイント)   Date: 2010/08/11(水) 20:37   No:58736     
Title: Re:pimplイディオムの使用場所    
> 実装クラスに依存しないように、設計を見直すべきです。 

それは無理だと思います。


8ポイント を手に入れた。

Name: ぽこ  ..プログラマー(27,461ポイント)   Date: 2010/08/11(水) 21:27   No:58740     
Title: Re:pimplイディオムの使用場所    
> それは無理だと思います。

無理ですか?
Bridgeパターンを適用することで、問題は解決するように見えますが。 編集済み


31ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(218,811ポイント)   Date: 2010/08/11(水) 21:49   No:58742     
Title: Re:pimplイディオムの使用場所    
> Bridgeパターンを適用することで、問題は解決するように見えますが。

Pimplイディオムでは、クラスの定義では

class foo
{
public:
    ...
private:
    struct impl;
    imple* pimpl;
}

のように、実装クラス(上ではimpl)を不完全型として宣言することで、仮想関数さえも隠蔽します。
ここでBridgeパターンを使ってしまうと、うまみが半減してしまいます。


105ポイント を手に入れた。

Name: ぽこ  ..プログラマー(27,512ポイント)   Date: 2010/08/11(水) 22:18   No:58743     
Title: Re:pimplイディオムの使用場所    
> Pimplイディオムでは、クラスの定義では

> class foo
> {
> public:
>     ...
> private:
>     struct impl;
>     imple* pimpl;
> }

> のように、実装クラス(上ではimpl)を不完全型として宣言することで、仮想関数さえも隠蔽します。
> ここでBridgeパターンを使ってしまうと、うまみが半減してしまいます。

クラス定義内での隠蔽という点に関して、同様のことがBridgeパターンでも
出来る気がするのですが。

class imple;

class foo
{
public:
    virtual void setImpl(imple * pimpl);
    ...
private:
    imple* pimpl;
}
 編集済み


51ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(218,840ポイント)   Date: 2010/08/11(水) 23:05   No:58744     
Title: Re:pimplイディオムの使用場所    
> クラス定義内での隠蔽という点に関して、同様のことがBridgeパターンでも
> 出来る気がするのですが。

> class imple;

> class foo
> {
> public:
>     virtual void setImpl(imple * pimpl);
>     ...
> private:
>     imple* pimpl;
> }


これだと、外部からpimplを破壊できるので、カプセル化が破綻しませんか?
あとから実装をすり替えられるのは、Pimplイディオムとはちょっと違うと思います。


29ポイント を手に入れた。

Name: めるぽん  ..中級者(11,207ポイント)   Date: 2010/08/11(水) 23:30   No:58746     
Title: Re:pimplイディオムの使用場所    
自分は pimpl は基本的に使わないのですが、もし実装を隠蔽した状態でポリモフィックな処理を行いたいということになれば、template や Type Erasure を使うでしょうね。

あと、少し前に半分遊びで以下のようなコードを書きましたが、さすがに書くのがめんどすぎるのでやめました。参考までに。
http://ideone.com/FaSbJ


108ポイント を手に入れた。

Name: ぽこ  ..プログラマー(27,717ポイント)   Date: 2010/08/11(水) 23:50   No:58749     
Title: Re:pimplイディオムの使用場所    
> これだと、外部からpimplを破壊できるので、カプセル化が破綻しませんか?

意図的な破壊(正式な手続きを踏んだ破壊)になるんで、破綻に当てはまらないと思います。


> あとから実装をすり替えられるのは、Pimplイディオムとはちょっと違うと思います。

仰る通りです。
しかし、ぬっちさんの質問は「Pimplイディオムの使い方」ですが、
質問のポイントは「実装の隠蔽とインタフェースの拡張性の両立するには?」に
あると思います。

そうすると、自作ライブラリ/パッケージの利用者に対して隠蔽し、かつ拡張を認める場合は
Bridgeパターンが適切だと思います。

#ちなみに、自作ライブラリ/パッケージの利用者に対して隠蔽し、かつ利用者/提供者に拡張を認めない場合は
#Pimplイディオムが適切だと思います。
#また、自作ライブラリ/パッケージの利用者に対して隠蔽し、かつ提供者に拡張を認める場合は
#たかぎさんの仰るように、ヘッダを公開用と実装用で分けるのが適切だと思います。


205ポイント を手に入れた。

Name: めるぽん  ..中級者(12,584ポイント)   Date: 2010/08/12(木) 06:27   No:58757     
Title: Re:pimplイディオムの使用場所    
Bridge パターンにするということであれば、pimpl イディオムも必要なく、インターフェースを公開するだけでいいですね。

// ここら辺は公開する
// ユーザはこの interface の実装と hoge の機能を適当に拡張することができる
struct interface
{
    virtual ~interface() { }
    virtual void foo() = 0;
};

struct hoge
{
    interface* p_;
    hoge(interface* p) : p_(p) { }
    interface* operator->() const { return p_; }
    void bar() { /* 何か便利な実装 */ }
};

// ここら辺は公開しない(でいいのかな?そうなるとこのクラスを生成するためのファクトリが必要になるけど)
struct interface_default : interface
{
    virtual void foo() { /* 何かの実装 */ }
    int a; // 何かのデータ
};



371ポイント を手に入れた。

Name: ぬっち [URL]  ..中級者(12,273ポイント)   Date: 2010/08/12(木) 21:09   No:58789 解決!     
Title: Re:pimplイディオムの使用場所    
たかぎさん、ぽこさん、めるぽんさん 返信ありがとうございます。

私の質問のポイントは、ぽこさんの仰るとおり「実装の隠蔽とインタフェースの拡張性の両立するには?」ということです。
このポイントに対しては、Bridgeパターンを多少勉強してみましたが、これが一番望む結果を生むと思われます。

皆様の親切な回答のため、この問題を解決できそうです。

Bridgeパターンを知ったところで疑問が生じてきました。
・Bridgeパターンはpimplイディオムと同様に、コンパイル時のファイル依存性の防止は同じように実現できるのか?
・Bridgeパターンとpimplイディオムの主な違いは?(具体的には、どのような場所でそれぞれ使い分けるのか?)
この2つです。

ここで質問させていただいたことでデザインパターンの重要性に改めて気づかされました。
どうもありがとうございました。


368ポイント を手に入れた。



Name: C++  ..ぴよぴよ(6ポイント)   Date: 2010/08/12(木) 17:43   No:58776       
Title: 選択画面。    
OS:XPhome
visualC++2010



http://dixq.net/g/36.html

上記のサイトでC++で選択画面は作れましたが、好きな項目まで行きエンタキーを押すとまた項目が出てくるようにしたいのですがどうすればいいのでしょうか?




 NEW GAME
 CONTINUE1
 CONTINUE2
 CONTINUE3
○CONTINUE4
 CONTINUE5
 CONTINUE6
 LOG OUT




CONTINUE4でエンタキーを押す。




 CONTINUE4-1
 CONTINUE4-2
○CONTINUE4-3
 CONTINUE4-4
 CONTINUE4-5
 EXIT




こんな感じです。




あとEXITでエンタキーを押すと前の選択画面に戻るようにしたいのですがどうすればいいですか?


 編集済み


6ポイント を手に入れた。


Name: パコネコ  ..プログラマー(30,842ポイント)   Date: 2010/08/12(木) 20:19   No:58786     
Title: Re:選択画面。    
汚らしいけど…
do{
 if(furagu==0){
  選択画面最初
 }
 if(furagu==10){
  選択画面で1を選んだ場合
 }
 else if(furagu==20){
  選択画面で2を選んだ場合
 }
 else if(furagu==30){
  選択画面で3を選んだ場合
 }
}while(furagu==0);
で選択画面で〜を選んだ場合のときに2回目の選択画面とする。
ここで選んだものをfuraguに+する。
4-1を選んだら最後には41になってるはず…
EXITを選んだらfuraguを0にする。

スイッチのほうがきれいだけど…
めんどいかもですが…ダメですか?


225ポイント を手に入れた。



Name: AMU  ..ぴよぴよ(420ポイント)   Date: 2010/08/12(木) 18:02   No:58779       
Title: キー入力制限    
DXライブラリを使用しています。

龍神録のプログラムに自分なりに変身機能をつけようと思ったのですが、
毎フレームごとにキーの処理がされて、タラララララっと変身してしまいます。

良いキー制限の方法はありませんか?


66ポイント を手に入れた。


Name: 白い時空  ..入門者(4,949ポイント)   Date: 2010/08/12(木) 18:36   No:58783     
Title: Re:キー入力制限    
龍神録で毎フレーム処理されるということは、
変身条件が
CheckStatePad(configpad.change)>0
にでもなっているんでしょうか?

変身条件を
CheckStatePad(configpad.change)==1
に変更してみてください。


77ポイント を手に入れた。

Name: AMU  ..ぴよぴよ(369ポイント)   Date: 2010/08/12(木) 18:50   No:58784 解決!     
Title: Re:キー入力制限    
白い時空さんのおっしゃる通りCheckStatePad(configpad.change)==1 にしたら出来ました。

早い回答ありがとうございます。


51ポイント を落としてしまった。



Name: Yperia  ..ぴよぴよ(194ポイント)   Date: 2010/08/12(木) 15:42   No:58769       
Title: メモリリーク:オブジェクトを要素とするvector    
こんにちは。

以下のコードで、メモリリークが検知されてしまいます。
intsが保持しているアドレスは*aと等しいにも関わらず、deleteしてもメモリリークが発生してしまいます。
どのようにしたら、メモリリークを回避できますでしょうか。

#include <vector>

// メモリリーク用
#ifdef    _DEBUG
#define    _CRTDBG_MAP_ALLOC
#include    <stdlib.h>
#include    <crtdbg.h>
#endif

int main(){
    int *a = new int;

    std::vector<int*> ints;
    ints.push_back(a);

    delete ints[0];


// メモリリーク検査
#ifdef    _DEBUG
    _CrtDumpMemoryLeaks();
#endif
}



検知内容:
 Detected memory leaks!
 Dumping objects ->
 {125} normal block at 0x00214EC0, 4 bytes long.
  Data: < N! > 80 4E 21 00 
 Object dump complete.


194ポイント を手に入れた。


Name: Justy  ..伝説なるハッカー(561,896ポイント)   Date: 2010/08/12(木) 16:02   No:58771     
Title: Re:メモリリーク:オブジェクトを要素とするvector    
 ints.push_backしたときの内部のバッファが解放されていません。
 
 例えば

{
    int *a = new int;
    {
        std::vector<int*> ints;
        ints.push_back(a);
        delete ints[0];
    }
    
// メモリリーク検査
#ifdef    _DEBUG
    _CrtDumpMemoryLeaks();
#endif
}
このように intsを破棄するなどすれば内部のバッファも解放されます。


197ポイント を手に入れた。

Name: Yperia  ..ぴよぴよ(305ポイント)   Date: 2010/08/12(木) 17:48   No:58777     
Title: Re:メモリリーク:オブジェクトを要素とするvector    
仰ることが完全に理解できてない(vectorの内部バッファがどうなっているのか分からない)ので、見当違いのことを言ってたらすいません。
内部バッファはintsが破棄されれば解放されるということは、私が記述しましたコードでも、_CrtDumpMemoryLeaks()の後にはちゃんとメモリリークが解消されているということでしょうか。
単に_CrtDumpMemoryLeaks()時点ではメモリリークが起こっていただけで、その後で(何故か)解放できた、という感じなのでしょうか。


111ポイント を手に入れた。

Name: MNS  ..プログラマー(38,679ポイント)   Date: 2010/08/12(木) 17:53   No:58778     
Title: Re:メモリリーク:オブジェクトを要素とするvector    
単純に、
intsが解放されるのはmain関数が終了する時であり、
_CrtDumpMemoryLeaks()が、main関数が終了する前に呼ばれているので、
intsが解放されてないと出力されているだけです。

こういう場合には、_CrtDumpMemoryLeaks()を使うよりも、
冒頭で
_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
を呼び出すのが良いと思います。


158ポイント を落としてしまった。

Name: Yperia  ..ぴよぴよ(585ポイント)   Date: 2010/08/12(木) 18:20   No:58781     
Title: Re:メモリリーク:オブジェクトを要素とするvector    
>単純に、
intsが解放されるのはmain関数が終了する時であり、
_CrtDumpMemoryLeaks()が、main関数が終了する前に呼ばれているので、
intsが解放されてないと出力されているだけです。 


ありがとうございます。
おかげで理解できました。
しかし、となりますと_CrtDumpMemoryLeaks()はメモリリークを検知するというより、使用しているヒープ領域を出力する関数ということになりますね。
    int *a = new int;
    _CrtDumpMemoryLeaks();
    delete a;

上記コードでも、確かに検知されてしまいました。
こんなんでメモリリークって言うのかな……;;



_CrtSetDbgFlagというのがあるということをお教えいただき、ありがとうございます。
どういった便利なものがあるのか、というのは探しづらいので、とても助かります。


280ポイント を手に入れた。

Name: Yperia  ..ぴよぴよ(591ポイント)   Date: 2010/08/12(木) 18:21   No:58782 解決!     
Title: Re:メモリリーク:オブジェクトを要素とするvector    
すいません解決でした。

6ポイント を手に入れた。



Name: 阿久津  ..ぴよぴよ(48ポイント)   Date: 2010/08/12(木) 14:06   No:58764       
Title: 使用するVisual Studioについて    
はじめまして、阿久津と申します。

今回、こちらのサイト様を見つけて
弾幕シューティングに興味があったので
作ってみようと思ったのですが
Visual Studio 2008(2005)を参考に作られているそうなのですが
Visual Studio 2010で製作しても此方のサイトで配布している素材などは
問題なく、使えますでしょうか?

また、BccDevでも製作はできますか?
なんとも初歩的な質問でごめんなさい。
失礼いたしました。


48ポイント を手に入れた。


Name: Dixq (管理人)  ..ウィザード(1,250,851ポイント)   Date: 2010/08/12(木) 14:32   No:58766     
Title: Re:使用するVisual Studioについて    
こんにちは。

問題ないですよ。
VC++は下位互換性があります。
ただ、配布しているプロジェクトがVCなのでBCCなら自分でプロジェクトを作り直す必要があります。
BCCを使用したい理由は何かありますか?



58ポイント を手に入れた。

Name: softya [URL]  ..ハッカー(192,075ポイント)   Date: 2010/08/12(木) 14:54   No:58767     
Title: Re:使用するVisual Studioについて    
VisualStudio2008ExpressEdtionでしたら今のところ入手可能です。
VisualStudio2010はちと重いと言う問題を持ってますので、2010じゃなきゃ許せない理由がない限り2008をお勧めします。
http://cvwww.ee.ous.ac.jp/vc08inst.html


104ポイント を手に入れた。

Name: 阿久津  ..ぴよぴよ(215ポイント)   Date: 2010/08/12(木) 15:19   No:58768 解決!     
Title: Re:使用するVisual Studioについて    

>>Dixq様
お答え下さってありがとうございます!
VisualStudio2010をインストールしたところ、
お恥ずかしいことに容量が足りなくてDL出来なかったので
既にインストール済みのBccDevを使おうと思いまして・・・。
教えてくださり、ありがとうございます^^*
頑張ってみます!

>>softya様
お答え下さってありがとうございます!
2010だと重いんですか・・!
絶対2010でないといけないわけでもないので
教えて下さったアドレスからDLしてみようと思います。

ありがとうございましたm(_ _)m!


167ポイント を手に入れた。



Name: JAA  ..ぴよぴよ(18ポイント)   Date: 2010/08/11(水) 15:05   No:58711       
Title: 初めまして    
大学生で情報にはいったJAAです。こんどともよろしくお願いします。

このたびは学校の課題でわからなかったところがあるので、相談のために来ました。


#include <iostream.h>

main()
{
int toshi ;
cout <<"あなたの好きな年を西暦を入力してください \n";
cin >> toshi ;
if(toshi mod 4 =0) ; ←9行目
{
cout << "うるう年です\n" ;
}
return 0;
}

メッセージ
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
kadai31.cpp:
エラー E2377 kadai31.cpp 9: If文に ) がない(関数 main() )
*** 1 errors in Compile ***

不完全ですが、仮組としてやっています。
エラーが出てくるんですがどうやれば対処できるでしょうか?

あと、「かつ」とか「または」を命令する場合、どうやればいいでしょうか?
例、toshi%4=0かつtoshi%100!=0またはtoshi%400=0


18ポイント を手に入れた。


Name: Mist  ..比類無きプログラマー(85,135ポイント)   Date: 2010/08/11(水) 15:07   No:58712     
Title: Re:初めまして    
http://www9.plala.or.jp/sgwr-t/c/sec06-1.html

で勉強してください。


21ポイント を手に入れた。

Name: パコネコ  ..プログラマー(30,505ポイント)   Date: 2010/08/11(水) 15:22   No:58718     
Title: Re:初めまして    
質問のようになっちゃうのですが…
>>例、toshi%4=0かつtoshi%100!=0またはtoshi%400=0
これは
例、(toshi%4=0かつtoshi%100!=0)またはtoshi%400=0
こうでしょうか?
例、toshi%4=0かつ(toshi%100!=0またはtoshi%400=0)
こうでしょうか?
また
=でいいのでしょうか?
=は代入という意味だと思うのですが…条件で使うのを何度かみたことありましたが、今回の場合間違っていると思ったのですが…何か意味があってやっているのでしたらすいません。

かつ、または、についてはMistさんの張っていただいたところに書いてましたのでいいと思いますが…
私の知らない関数があったので私が間違っていたらすいません。
===========
あってたんですか…すいません
私の知らないものだったようですね
==じゃないと無理だと思ったんですが、経験不足ですみません。 編集済み


235ポイント を落としてしまった。

Name: JAA  ..ぴよぴよ(107ポイント)   Date: 2010/08/11(水) 15:27   No:58719 解決!     
Title: Re:初めまして    
toshi%4=0かつ(toshi%100!=0またはtoshi%400=0) であってます。

Mistさんから教えていただいたページのおかげで出来ました。ありがとうございます。
今後ともよろしくお願いします。


89ポイント を手に入れた。

Name: ISLe  ..中級者(11,788ポイント)   Date: 2010/08/11(水) 18:27   No:58725     
Title: Re:初めまして    
パコネコさん
> あってたんですか…すいません
> 私の知らないものだったようですね
> ==じゃないと無理だと思ったんですが、経験不足ですみません。

コードは==じゃないとコンパイルエラーになりますよ。

他にも;が変なところにありますし本当に解決したのでしょうかね。


余談ですがBorland C++ 5.5.1が採用している言語規格は時代遅れなのでC++の勉強に使うのはよしたほうが良い気がします。


103ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(218,676ポイント)   Date: 2010/08/11(水) 18:29   No:58726     
Title: Re:初めまして    
> 余談ですがBorland C++ 5.5.1が採用している言語規格は時代遅れなのでC++の勉強に使うのはよしたほうが良い気がします。

その観点では、Visual C++ 2010のCコンパイラも時代遅れだと思いますが...


2倍のポイントを手に入れた! 24ポイント を手に入れた。

Name: box  ..ハッカー(156,950ポイント)   Date: 2010/08/11(水) 23:08   No:58745     
Title: Re:初めまして    
> >>例、toshi%4=0かつtoshi%100!=0またはtoshi%400=0
> これは
> 例、(toshi%4=0かつtoshi%100!=0)またはtoshi%400=0
> こうでしょうか?

そうです。
&& は || よりも優先順位が高いです。
= が1個だとコンパイルエラーが出るのは、他のかたの回答どおりです。


30ポイント を手に入れた。

Name: ISLe  ..中級者(11,876ポイント)   Date: 2010/08/12(木) 01:35   No:58754     
Title: Re:初めまして    
たかぎさん
> その観点では、Visual C++ 2010のCコンパイラも時代遅れだと思いますが...

いつのまにやらBorland C++ Compiler 5.5では
#include <iostream.h>
形式しか使えないと思い込んでいました。

またやっちまいました。ごめんなさい。

質問者さんへ
#include <iostream>
にしてstd名前空間を使うようにしたほうが良い気がします。
と訂正します。


27ポイント を手に入れた。



Name: dom  ..ぴよぴよ(590ポイント)   Date: 2010/08/10(火) 23:14   No:58672       
Title: 画像読み込みエラー    
 以下のようにTestクラスを作り,コンストラクタで画像を読み込もうとすると失敗してしまいます。
ちなみにメンバ関数Draw()内で読み込んだ場合は失敗しませんでした。
 なぜコンストラクタでの読み込みは失敗するのでしょうか?

#include "DxLib.h"

class Test
{
private:
    int img_handle;    //画像ハンドル
public:
    Test();
void Draw();    //画像描写
};

Test::Test()
{
    img_handle = LoadGraph( "パス" );    //エラー(-1を返す)
}
void Test::Draw()
{
/*       ここでLoadGraphを使うとエラーなし    */
    DrawGraph( 0, 0, img_handle, TRUE );    //読み込んだ画像を表示
}

Test test;

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{


    if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ){
        return -1;
    }


    test.Draw();

    WaitKey();

    DxLib_End();

    return 0;
}


223ポイント を手に入れた。


Name: シエル  ..熟練のプログラマー(46,742ポイント)   Date: 2010/08/10(火) 23:20   No:58673     
Title: Re:画像読み込みエラー    
DXライブラリはよく分かりませんが、DxLib_Initが実行されるまえにコンストラクタが
実行されてるからではないでしょうか。


46ポイント を手に入れた。

Name: dom  ..ぴよぴよ(621ポイント)   Date: 2010/08/11(水) 09:46   No:58696 解決!     
Title: Re:画像読み込みエラー    
アドバイスのおかげで上手くいきました。
ありがとうございます!


31ポイント を手に入れた。

Name: naohiro19  ..ぴよぴよ(510ポイント)   Date: 2010/08/11(水) 20:37   No:58737     
Title: Re:画像読み込みエラー    
Test::Test() 
{ 
    this->img_handle = LoadGraph( "パス" );    //エラー(-1を返す) 
}

でも同様な結果を得ることができます。


65ポイント を手に入れた。



Name: DG [URL]  ..かけだし(2,271ポイント)   Date: 2010/08/10(火) 23:31   No:58676       
Title: ゲーム作りました&通信対戦について    
お世話になっております。
このサイトを参考にしたり、掲示板で助言して頂いたおかげでなんとかゲームが出来ました。
ここの掲示板ほど治安が良くて協力的な人が多くいるところはそう無いので非常に助かりました。
対戦シューティングみたいなものを作ったんですけど、紹介動画を作ったのでよろしければ御覧ください.
http://www.nicovideo.jp/watch/sm11701300
配布はここ↓で行っています.
http://v400dig.web.fc2.com/


それで、通信対戦機能を付けられたらいいな〜なんてちょっと思ってるんですけど、
DXライブラリの機能を用いた通信ではルータを使用しているPCでの通信は難しいみたいなので
軽く行き詰ってしまいました。
TCP/IPでやってみようかと思っていたんですが、どうせ結構手間がかかるのならサーバーを用いた
ものにするかな〜、いやでもそれだと金かかっちゃうしまた一段と難しいかな〜、といった感じで悩んでいます。
プログラミングなどは初心者で、Cを1年ちょっとやっただけで、
ネットワークの知識も基本的なことが少しわかるくらいなんですけど、
勉強しながらちょろちょろ頑張ってみようかと思っています。

このサイト
http://x68000.q-e-d.net/~68user/net/
あたりでとりあえず勉強してみようかと思っているんですが、他におすすめのサイトや本などあれば
教えて頂けると有り難いです。


447ポイント を手に入れた。


Name: ぬるぽ  ..初心者(6,317ポイント)   Date: 2010/08/11(水) 00:00   No:58679     
Title: Re:ゲーム作りました&通信対戦について    
DLしてさらっとだけやってみました。
3Dの部分良いですね。制作お疲れ様です。

ここから思ったことですが

readme.txtより、
>ソフトの操作方法などについては、私のサイトや動画にて解説しておりますので、
>よろしければそちらを御覧ください。

これは出来るだけやめたほうがいいですよ。
readme内に記述するべきだと思います。
人によってはネットにつなげられない方もいらっしゃるので。


125ポイント を手に入れた。

Name: shiro4ao  ..中級者(9,526ポイント)   Date: 2010/08/11(水) 00:24   No:58683     
Title: Re:ゲーム作りました&通信対戦について    
楽しいゲームですね〜
とっても面白いです。
自分は上手くないので、全く勝てませんが・・・・

本は「猫でもわかるネットワークプログラミング」
http://www.amazon.co.jp/%E7%8C%AB%E3%81%A7%E3%82%82%E3%82%8F%E3%81%8B%E3%82%8B%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-Neko-%E7%B2%82%E4%BA%95-%E5%BA%B7%E5%AD%9D/dp/4797323604
がおすすめです。
これ一冊で、HTTP,FTP,ソケットプログラミング,SMTP/POP3,TCP通信,UDP通信とかなり盛り沢山です。
WinAPIの知識があれば簡単に読み進めることができると思います。
/*編集箇所*/
ただし、本ですので一応本屋さんで中身を確認されてからお考えになったほうがいいと思います。


ルーターに関してですが、対戦する2名のどちらかがインターネットから接続できればいいので、
少なくともどちらか一方のユーザーがルータの設定さえしておけば基本的にはどこでもプレイ可能です。
例えば、プレーヤー1が大学の中にいてルータの制御権がない場合でも、プレーヤー2がルータの設定ができる環境にいて
アクセス出来るようにすれば、プレイ可能です。

>いやでもそれだと金かかっちゃうし
ゲームをするときだけホストになってあげればいいので、サーバー用の大きなパソコンなんて
特別なこと(四六時中アクセス可能なゲームにするとか企業みたい大々的ににサービスを行うとか)
を考えない場合はいらないと思います。

DXライブラリに詳しくないので間違っていたらすみません。


 編集済み


510ポイント を手に入れた。

Name: 白い時空  ..入門者(4,872ポイント)   Date: 2010/08/11(水) 01:52   No:58687     
Title: Re:ゲーム作りました&通信対戦について    
やらせていただきました。
システム的にもよく出来ていますね。すごいです。
3Dも使っているのは感心しました。

ただ…操作説明書は同梱してほしいです。readme.txtにも書かれてないですし。
ゲームパッドがつながっていると、キーボード操作できなかったので、起動したとき「あれ?」って思ってしまいました。

また、HPのキャラ性能表もダウンロードしてみましたが、エクセル用ファイルですね。
エクセル持ってない人は見れない可能性があるので、テキストかHTMLにしたほうがいいですね。
これもHPに置くのではなくソフトに同梱したほうがいいと思います。


215ポイント を手に入れた。

Name: DG [URL]  ..入門者(2,587ポイント)   Date: 2010/08/11(水) 20:26   No:58732 解決!     
Title: Re:ゲーム作りました&通信対戦について    
>>ぬるぽさん
ご指摘ありがとうございます。
そのとおりだと思います。自分もそう思って、ネットに接続せずともゲームの説明が
見れるようにしようといろいろ考えたのですが、ちゃんと説明するには動画でないとなかなか難しく、
かといって説明用の動画を同梱すると容量がかなり増えてしまうのであの様にしていました。
とりあえず入力関係のことについてはreadme内に記すようにしました。

>>shiro4ao さん
ご助言ありがとうございます。
Amazonで、ご紹介して頂いた本やその分野の他の本のレビューを幾らか見てきたのですが、
やはりその本がよさそうだと思いました。今度本屋に行って見てみようと思います。
ルータの設定は片方だけでよいのですね・・・思ってたよりは楽なような気がしてきたので、
とりあえずTCP/IPでやってみようかと思います。

>>白い時空さん
ご指摘ありがとうございます。
>ゲームパッドがつながっていると、キーボード操作できなかったので、起動したとき「あれ?」って思ってしまいました。
これについては、どこかに記しておこうと思っていたのですが、忘れていました(*´ ェ`)
キャラ性能表についてですが、エクセルの形式では見れない人がいるだろうというのはその通りだと思い、
HTML形式にしておきました。ただ、エクセルの表をHTML形式にすると罫線が消えちゃうんですよね……


316ポイント を手に入れた。



Name: HK  ..ぴよぴよ(633ポイント)   Date: 2010/08/11(水) 15:09   No:58713       
Title: 3次元グラフを作る(2)    
HKと申します。プログラムというより数学的な質問になるかもしれませんが、
お手柔らかにお願いします。

WINAPIで以下のサイトにあるような3次元グラフを書くことが目的です。 
http://homepage3.nifty.com/ishidate/vcpp05_23/vcpp05_23.htm

このサイトの方法では視点(θとφに依存)を固定しているみたいですが、
私は、θとφを変数にしてユーザー側から入力できるようにしたいと考えています。

そこで以下のような問題が発生しました。
このサイトでは、隠線を処理するため、手前から奥に向かって点をプロットしています。
θ、φを変数にした場合、どのように隠線処理するべきでしょうか。
やはり面倒臭いですが場合分けですかね……

ほとんど数学みたいな問題ですいません



224ポイント を手に入れた。


Name: HK  ..初心者(5,375ポイント)   Date: 2010/08/11(水) 15:11   No:58715     
Title: Re:3次元グラフを作る(2)    
大学のPCから投稿したため、名前をミスりました

14ポイント を手に入れた。

Name: ISLe  ..中級者(11,849ポイント)   Date: 2010/08/11(水) 18:32   No:58727     
Title: Re:3次元グラフを作る(2)    
プロットした点の奥行き情報を記録するZバッファを用意するのはどうでしょう。

メモリは消費しますがプログラムは複雑にならないと思います。


61ポイント を手に入れた。

Name: HK  ..初心者(5,564ポイント)   Date: 2010/08/11(水) 19:15   No:58728 解決!     
Title: Re:3次元グラフを作る(2)    
奥行きを記録していった場合、その後、手前にある順に並び変えて描画ということになりますよね。たぶん。
そうなると、時間的な問題であまり良くないことになりそうです。

実は先ほど自己解決しまして、θの値によって4つの場合分けをすることで解決できました。
驚くべきことにφには依らないようです。

次に、新たな問題が発生しました。
約30000000個の点をプロットするのに時間がかかり過ぎてしまうという点です。

添付画像はその表示結果です。

プロットする点の数を減らして、間をポリゴンで補間するという方法を取りたいのですが、
どうもうまくいきません。

また施行錯誤してみようと思います。

解決マークを付けておきますが、なにか良い案があれば教えていただけないでしょうか。


189ポイント を手に入れた。



Name: パコネコ  ..プログラマー(29,987ポイント)   Date: 2010/08/10(火) 21:31   No:58646       
Title: 基本的なゲーム    
勉強になるゲームプログラミングってどんなものがあると思いますか?
私が知っている(思っている)のは、
・ブロック崩し
・シューティング
・迷路
・落ちもの(「テトリス」とか「ぷよぷよ」とか)
後は…
いろんなパズルですかね。
数あてゲーム(ヒントを元に数を当てる)
ライフゲームといわれるシュミレーションのようなものも面白かったですし…
最後は、トランプですかね

自分で思いつくものは書いてみたのですが…
他にも作ってみたら勉強になりそうなもの(おすすめ)ってありますか?
できれば基本的なものがいいのですが…(シューティングはOK、でもシューティングの派生形みたいなのはNG

こんなのどうですか?という方がいましたら教えてください。
お願いします。


209ポイント を落としてしまった。


Name:  ..入門者(3,807ポイント)   Date: 2010/08/10(火) 21:46   No:58647     
Title: Re:基本的なゲーム    
意図した回答になるかわかりませんが
シューティングはゲームプログラミングの基本かと思います。
これが作れれば2Dでしたら作れないものがない気がします。

シューティングが作れるようになったらアクションとかはどうでしょうか?
シューティングの当たり判定(敵と弾)等のほかに地面の判定等も必要になるかと思います。

パズルやトランプなどはプログラムというよりロジックを考えるものかと思います。
基本的なプログラムを理解しているのであれば挑戦する価値はあるかと。


118ポイント を手に入れた。

Name: MNS  ..プログラマー(38,837ポイント)   Date: 2010/08/10(火) 21:53   No:58649     
Title: Re:基本的なゲーム    
恐らくは全然、"基本的なもの"ではないですが、一応。

あまり経験があるわけではありませんが、
ジャンルとしては、RTS(リアルタイムストラテジー)のゲームを製作するのが、
個人的には、最も勉強になったと思います。

PCゲームでは有名なジャンルですが、家庭用ゲームではあまり存在しないので、
ピンとこないのなら余りオススメしませんが、(複雑で、実体がつかみにくいジャンルなのです)
有名どころでは、マイクロソフトの「Age of Empires」、
任天堂の「ピクミン」もRTSの一種かもしれません。

かくいう私はこのジャンルのゲームを完成させたことはないので、(すいません)
製作の方法とかを指南することは出来ないのですが、(ネットにもほぼ情報はないと思います)
作るのが非常に難しいゲームジャンルであることは確かです。
それは、要求される技術が非常に多様であることに起因します。
私が勧める理由はこのことからですね。

ちなみに、これで身につくスキルはあくまでゲームプログラミングのスキルであって、
通常のプログラミングに使えるスキルはあまり無いかも知れません。


10ポイント を手に入れた。

Name: パコネコ  ..プログラマー(30,309ポイント)   Date: 2010/08/10(火) 21:57   No:58650     
Title: Re:基本的なゲーム    
はい、ありがとうございます。

アクションというとマリオのようなものでしょうか?
確かにあたり判定を考えたりするのすごく楽しかったです…と、じつはもう作ったことがありました、すいません。
書き忘れてました…
特にジャンプの後、上に壁があった時がよく考えました…

ロジックと言うとパズルの仕掛けのことですか?アルゴリズムですか?
どっちにしても考えるの楽しいですが…


2倍のポイントを手に入れた! 322ポイント を手に入れた。

Name: パコネコ  ..プログラマー(30,441ポイント)   Date: 2010/08/10(火) 22:02   No:58652     
Title: Re:基本的なゲーム    
ピクミンは知ってますが…家庭用ゲームしかやったことのない私には難しそうですね…
AIみたいなものですか?

/*
ちなみに、これで身につくスキルはあくまでゲームプログラミングのスキルであって、 
通常のプログラミングに使えるスキルはあまり無いかも知れません。
*/
ある意味そういうスキルがほしいので助かるのですが…どういうゲームなのかわからないことには…
説明も難しい感じのものって結構ありますよね…でもピクミンを作るのはちょっと私には難しすぎましたかね…




132ポイント を手に入れた。

Name: シエル  ..熟練のプログラマー(46,543ポイント)   Date: 2010/08/10(火) 22:04   No:58656     
Title: Re:基本的なゲーム    
便乗して質問します。

ゲームプログラマーになるために、作っといたほうがいいゲームでは何がいいですかね?
それと、作成するならC++でしょうか?



61ポイント を手に入れた。

Name: パコネコ  ..プログラマー(30,418ポイント)   Date: 2010/08/10(火) 22:08   No:58660     
Title: Re:基本的なゲーム    
場合によりますかね…
C言語で作るかDXライブラリでC++で作るかですね…
私の環境的に…

C関係が勉強になるとは聞きましたが…グラフィック関係で他の言語に負けてる気がします…


87ポイント を落としてしまった。

Name: softya [URL]  ..ハッカー(191,484ポイント)   Date: 2010/08/10(火) 22:15   No:58664     
Title: Re:基本的なゲーム    
思いつくのは、

1.アクションゲーム。
ボスとか動く敵は必ず作った方が良いでしょうね。

2.思考ルーチンのあるもの。オセロとか。
高度な思考ルーチンはSLGなどに必要です。

3.スクリプトを必要とするもの。ADVとか簡易なRPGとか。
あくまでシステムを一通り構築するのが目的なので、演出やゲームデザインに凝る必要はないです。


137ポイント を落としてしまった。

Name: パコネコ  ..プログラマー(30,453ポイント)   Date: 2010/08/10(火) 22:23   No:58665     
Title: Re:基本的なゲーム    
思考ルーチンが必要なものはほとんど作ったことないんですよね…
作ってみますね。
ただSLGとはなんですか?
ゲームのジャンルですか?


35ポイント を手に入れた。

Name: softya [URL]  ..ハッカー(191,857ポイント)   Date: 2010/08/10(火) 22:27   No:58666     
Title: Re:基本的なゲーム    
>>シエルさん

>ゲームプログラマーになるために、作っといたほうがいいゲームでは何がいいですかね?
>それと、作成するならC++でしょうか?

今時だと即戦力求められる会社では、C++と3Dスキルは必須ですね。
実際ゲームは何でも良いのですが、アクションとか実力が分かりやすいものが良いかなと思います。
丁寧に処理しているなとか、バグちゃんと取ってるなぁとか分かりますから。
絵としての完成度ではなく、プログラムとしてできることをしているかって事が重要ですよ。
ソースコードも出しますので、プログラム全体の出来やプログラミングの理解度も見られます。

あとここの情報は抑えておいた方が良いでしょう。
http://game.watch.impress.co.jp/docs/series/3dcg/
http://journal.mycom.co.jp/column/graphics/index.html
内容もすごくも面白いですよ。


373ポイント を手に入れた。

Name: softya [URL]  ..ハッカー(191,971ポイント)   Date: 2010/08/10(火) 22:30   No:58667     
Title: Re:基本的なゲーム    
>ただSLGとはなんですか? 

失礼しました。つい略しちゃいました。
リアルタイム性のないシミュレーションゲームです。
ファミコンウォーズとかRPG要素が入っちゃいますがファイヤーエンブレム等です。
ファイナル・ファンタジー・タクティクスやタクティクス・オウガでも可。


114ポイント を手に入れた。

Name: シエル  ..熟練のプログラマー(46,696ポイント)   Date: 2010/08/10(火) 22:36   No:58669     
Title: Re:基本的なゲーム    
>>softyaさん

返答ありがとうございます!
C++と3Dですか。。。
まだ全然できないですね。
今作ってるシューティングが終わったら、C++と3Dに挑戦するつもりです。
目標はテイルズのような戦闘ができるRPGかな。あれならアクションの要素も入ってると思うので。
まあ、いつになるか分かりませんけどw
まあコツコツとやっていきます。
リンク先のサイトも確認させていただきました。面白そうです!
参考にさせていただきます!


142ポイント を手に入れた。

Name: 御津凪 [URL]  ..ハッカー(147,432ポイント)   Date: 2010/08/10(火) 22:38   No:58670     
Title: Re:基本的なゲーム    
こちらから申しますと、それぞれのゲームジャンルに勉強になるような内容(分野)は、

・アドベンチャー(ADV)
  フラグ管理
・アクション(ACT)
  入力に対するさまざまな事象の処理
・迷路系(ローグライクなど)
  自動生成アルゴリズムの実装
・シューティング(STG)
  当たり判定や物体(敵・弾等)の管理
・戦略(SLG)、対戦系
  AI、アルゴリズムの実装
・RPG系
  ゲームバランス(敵・味方の強さのバランスや、ゲームシステムのバランスなど)
・3D系
  座標系、ポリゴンモデル、変換行列、ポリゴンアニメーション、シェーダ、その他色々

大体こんな感じかなと。
適当ですが、一応上から簡単な順にしてます。


286ポイント を手に入れた。

Name: パコネコ  ..プログラマー(30,518ポイント)   Date: 2010/08/10(火) 22:41   No:58671     
Title: Re:基本的なゲーム    
やっと理解しました。
ですがあれは、結構難しそうですね。
作れそうなら作ってみたいですが…今の段階でも作れるかどうか…

まずはオセロ作ってそれから作ってみます。
情報ありがとうございます。


65ポイント を手に入れた。

Name: ムンバ  ..中級者(10,976ポイント)   Date: 2010/08/10(火) 23:44   No:58677     
Title: Re:基本的なゲーム    
こんばんはっ!

以前、こちちらの掲示板で「自分で作りたいゲームがあるのですが、どうやったら作れるのか・・・?」
の様な質問をさせて頂いた時に(C・C++言語超初心者で、こちらにお邪魔したての頃です。)

こちらで(DXライブラリを使用して)
・じゃんけんゲーム
・落ち物ゲーム
・簡単なシューティングゲーム
を作れる様になれば、「自分の作りたいゲームが作れるのではないでしょうか。」
と、アドバイス頂きました。
その節は、ありがとうございました。(_ _)

自分は反射神経が鈍い(ほぼ無い)ので、シューティングゲームが苦手で
未だに作れずに過ごしてしまいました。せっかくアドバイス頂いたのにすみません。(汗

こちらの「ゲームプログラミングの館」<全部 と
「龍神録プログラミングの館」<第5章 までを勉強させて頂いて
・じゃんけんゲーム
・すごろくゲーム
・超簡単なRPG
が作れる様になりました。
本当に、簡単なものですが。^^;

アドバイス頂いた内容とは、反れてしまったので申し訳無いと思っているのですが
私は「すごろくゲーム」の作成に、一時期とんでもなくハマっていました。
サイコロ振って駒を進めるだけなのですが(進んだり戻ったり)、作っててとても楽しかったです。w

>ゲームプログラマーになるために、作っといたほうがいいゲームでは何がいいですかね?

 私の職種は、プログラミング関係では無いので、プログラマーさんの事は何とも言えませんが<(_ _)>
 私事ですが、どうしても働いている中で好き嫌いや得意・不得意の部分が出てしまいます。
 (一番大変で大切だと思うのは、人間関係だと思う今日この頃です。^^)
 ので、偉そうな事は言えませんが
 ご自分が、「作っといたほうがいいゲーム」より「作りたいゲーム」を作った方が
 今後のためになるのではないかと思います。
 「興味がある事をやる事」って、すごく吸収力があるんですよね。
 一方、苦手な分野だと、自ずと避け気味(さけぎみ)になってしまい、授業でもそうでしたし。(自爆
 学生の時に「もっとこの分野、勉強しておけば良かったな。」
 って思う事が、今でもたくさんあります。

 私は幸い?、今の仕事が気に入ってますので
 仕事をしながら少しずつでも勉強してますが、興味を持つ分野に関しては、いまだに吸収力抜群です。(笑
 
 一意見として、参考にして頂ければ幸いです。
 また日記みたいになってしまった事、どうかご勘弁下さい。
 
 PS:がんばってると、たまに?でも、良い事ありますよっ♪(^ー^)

---↓追加---
 Name: パコネコさん  Date: 2010/08/10(火) 22:23   No:58665 
 以降の皆さんの投稿、踏んでしまいました。
 相変わらず、投稿遅くてすみません。(謝
 失礼します。おやすみなさい。(∪。∪)。。。zzzZZ
  編集済み


1,078ポイント を手に入れた。

Name: パコネコ  ..プログラマー(30,583ポイント)   Date: 2010/08/11(水) 16:20   No:58722 解決!     
Title: Re:基本的なゲーム    
このままだと解決にする前に落っこちちゃいそうなので解決にしたいと思います。
皆さんの話は大変勉強になりました。
いくつか作ってみます。

そういえば、すごろく作るの忘れてました…そのうちすごろくも作りたいです。
いろいろ教えていただき、
ありがとうございました。
=========
肝心な解決マーク忘れてました。 編集済み


78ポイント を手に入れた。



Name: ザッソウ  ..初心者(5,448ポイント)   Date: 2010/08/10(火) 15:50   No:58596       
Title: 求人2    
このスレッドは管理人により移行されました。
200件以上のレスに対応していないので、「求人」トピに関して以後はこちらにお書きください。


39ポイント を手に入れた。


Name: DecentLove  ..中級者(14,584ポイント)   Date: 2010/08/10(火) 15:59   No:58598     
Title: Re:求人2    
ウディタってRPGツクールのようなものと考えていいのですよね。
それにしてもsoftyaさん、すごい偶然ですよね。
向こうの掲示板での謝り方を見てもザッソウさん本人と見て差し支えないでしょう。謝り方でというのもなんですがねw。

ザッソウさん、さすがに憤りを覚えます。
(ウディタの掲示板より)
>あの初投稿なのですが。
>まったくの初心者でどう使ったらいいかわからないのですが
>まず、聞いておきたいのが、ウディタでDQMJ……(後略
この時点でパコネコさんに対する裏切りじゃないでしょうか?
もう自分で作っちゃえばいいじゃないですか?

パコネコさん、もうメンバーを抜けちゃってもいいんじゃないでしょうかね?僕ならこういう事があったら抜けると思いますし。


一度ザッソウさんに話を聞いてみたいものですね


271ポイント を手に入れた。

Name: s-rush  ..熟練のプログラマー(61,682ポイント)   Date: 2010/08/10(火) 16:02   No:58600     
Title: Re:求人2    
なんかもうめちゃくちゃですね^^;

投稿時間から見た感じ、このことはパコネコさんは知らないのではないでしょうか?


はじめからやりとりを見ていましたが、まとまりがないというかなんというか・・・
もう一度、見つめなおしたほうがいいように思えます。


131ポイント を手に入れた。

Name: DecentLove  ..中級者(14,631ポイント)   Date: 2010/08/10(火) 16:04   No:58601     
Title: Re:求人2    
一応、パコネコさんは追記にウディタについて書いていましたから、記事数限界の関係で新たにレスできなかっただけで、把握できてると思いますよ。

47ポイント を手に入れた。

Name: s-rush  ..熟練のプログラマー(61,699ポイント)   Date: 2010/08/10(火) 16:08   No:58602     
Title: Re:求人2    
>一応、パコネコさんは追記にウディタについて書いていましたから、記事数限界の関係で新たにレスできなか
>っただけで、把握できてると思いますよ。

それならいいのですが・・・

けど、このプロジェクト・・・本当にうまく行くのか不安ですよね^^; 編集済み


17ポイント を手に入れた。

Name: シエル  ..熟練のプログラマー(46,419ポイント)   Date: 2010/08/10(火) 16:09   No:58604     
Title: Re:求人2    
いえ、間違いなくうまくいかないでしょう。
考えなくても分かります。


6ポイント を手に入れた。

Name: パコネコ  ..プログラマー(29,906ポイント)   Date: 2010/08/10(火) 16:09   No:58605     
Title: Re:求人2    
>>DecentLove 
正直、自分で作ろうとしてるようにしか見えませんし…抜けてしまいたい気持ちもあるのですが…
でも抜けるってことは、責任放棄?みたいになってしまう気がしてしまします。
それに信用が一番大事だと思うんですよね…抜けちゃうのは無責任な気がしてしまいます…
無責任な人をだれも信用してくれないように思えます…そんな人になりたくないです。
それにたくさんの人に迷惑かけて結局無駄だったみたいになっては皆さんに失礼な気がしてしまいます。
もう一度ザッソウさんと話をしてみなければいけないようです…
抜けるかはそれからになるでしょう…
>>管理人さん、
200までだったんですね、埋めてしまってすいません…わざわざもう1つ作ったりしてもらってますし…



201ポイント を落としてしまった。

Name: softya [URL]  ..ハッカー(191,403ポイント)   Date: 2010/08/10(火) 16:12   No:58606     
Title: Re:求人2    
まったく別件だったんですけどねぇ。

>>s-rushさん
無料のsubversionレポジトリサーバを使うのはどうでしょうか?
https://www.projectlocker.com/
ここは使ったことがないので、ずっと使える保証はできませんが。

subversionを使えば共有管理やバージョン管理が出来ます。
http://ja.wikipedia.org/wiki/Subversion
Windowsの場合はクライアントしてTortoiseSVNが便利です。
http://www.gside.org/Gentoo/subversion/subversion_client.html
万能ではないので、同じソースファイルを同時に変更するのは避けるのが無難です。



225ポイント を手に入れた。

Name: s-rush  ..熟練のプログラマー(61,792ポイント)   Date: 2010/08/10(火) 16:13   No:58607     
Title: Re:求人2    
>>シエルさん
ですよね^^;

>>パコネコさん
>責任放棄?みたいになってしまう気がしてしまします。
そのようなことはないと思いますよ。
ザッソウさんにはきついこと言っちゃいますが、
むしろザッソウさんの方が無責任だと思います。

でも、抜ける前に一度話し合うことはいいことだと思いますよ^^b


93ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(218,652ポイント)   Date: 2010/08/10(火) 16:13   No:58608     
Title: Re:求人2    
かなりきついことをいうようですが...

(少なくとも日本においては)子供のネット利用の危険性というのは、ザッソウさんのような人がいることが原因の多くだという気がしています。
パコネコさんは、これ以上ザッソウさんには関わらないほうが身のためだと思います。


2倍のポイントを手に入れた! 204ポイント を手に入れた。

Name: DecentLove  ..中級者(14,731ポイント)   Date: 2010/08/10(火) 16:15   No:58609     
Title: Re:求人2    
いえ、さきに放棄したのはザッソウさんです。
パコネコさんは、募集がかかったから参加した。のに、ザッソウさんに裏切られた形になった。ただそれだけです。無責任になった人はほかでもないザッソウさんです。気に病む必要は有りませんよ!


100ポイント を手に入れた。

Name: s-rush  ..熟練のプログラマー(61,899ポイント)   Date: 2010/08/10(火) 16:17   No:58610     
Title: Re:求人2    
>>softyaさん
おおおおお
こんな便利そうなものがあったのですね><

私はプロデューサー担当ではないので管理はしていないのですが、
今度勧めてみますね^^

わざわざありがとうございますm(_ _)m

ちなみに、今はサーバー(?)にて管理していただいてます。



本トピと全く関係ない話題が出てしまって、申し訳ないです。


107ポイント を手に入れた。

Name: DecentLove  ..中級者(14,892ポイント)   Date: 2010/08/10(火) 16:18   No:58611     
Title: Re:求人2    
編集キーを登録し忘れてしまったので。連投しつれいします。

>(少なくとも日本においては)子供のネット利用の危険性というのは、
>ザッソウさんのような人がいることが原因の多くだという気がしています。
>パコネコさんは、これ以上ザッソウさんには関わらないほうが身のためだと思います。

これには僕も同感ですね。(お前もまだ子供だろと言われればそれまでですが。^^;)


161ポイント を手に入れた。

Name: softya [URL]  ..ハッカー(191,545ポイント)   Date: 2010/08/10(火) 16:21   No:58612     
Title: Re:求人2    
パコネコさん、責任感のあるのは良いことですがパコネコさんが背負いこむべき責任ではありませんよ。ここで止めてもパコネコさんの信頼が揺らぐことは1つもありません。背負いこむべきでない責任を背負うのは社会に出たときに大変苦労することになると思いますので、パコネコさんが心配です。
すべての人に信頼を得ることは不可能ですので、それよりは自分と同じ価値観を持つ人たちに社会的に信頼される事を優先してください。


142ポイント を手に入れた。

Name: パコネコ  ..プログラマー(30,134ポイント)   Date: 2010/08/10(火) 16:23   No:58613     
Title: Re:求人2    
>>でも、抜ける前に一度話し合うことはいいことだと思いますよ^^b
>>パコネコさんは、これ以上ザッソウさんには関わらないほうが身のためだと思います。 
一度話を聞きたいです…それから関わらないか決めるべきだと思います。
せめて無責任な形で(逃げるような形)抜けるのはいやです。
この前張っていただいた、トラブルなどのやつで突然消えるのはあんまりだと思いました。
せめてなぜ抜けるのかの説明はしないといけないような気がします。それがけじめな気がします。
忠告していただいてありがとうございます。
心配かけてすいません。
=========
>>がくせいさん
そうですね。すいません。
私もまだまだ子供のようです…でも失敗からじゃないと学べないこともあると思います。
今回の件でも少なからず、勉強になったと思います。

う〜、皆さんの文章読んでると、軽く泣きそうなんすけど…
 編集済み


228ポイント を手に入れた。

Name: がくせい  ..ぴよぴよ(859ポイント)   Date: 2010/08/10(火) 16:23   No:58614     
Title: Re:求人2    
わたくしはこの展開は読めていました
パコネコさんがわたくしの忠告を無視されたのが残念です


36ポイント を手に入れた。

Name: 通りすがり  ..上級者(22,553ポイント)   Date: 2010/08/10(火) 16:30   No:58615     
Title: Re:求人2    
え、自分で作りたくなったからパコネコさんいらなくなったとかそういう落ち?

25ポイント を手に入れた。

Name: DecentLove  ..中級者(14,942ポイント)   Date: 2010/08/10(火) 16:31   No:58616     
Title: Re:求人2    
他の方々もおっしゃられるように、背負いこむ必要はないです。
もし、ザッソウさんに抜けることを責められたとしても、みなさんはパコネコさんの見方になってくださるはずです!


50ポイント を手に入れた。

Name: DecentLove  ..上級者(15,078ポイント)   Date: 2010/08/10(火) 16:32   No:58617     
Title: Re:求人2    
また編集キー忘れてた^^;

通りすがりさん
>え、自分で作りたくなったからパコネコさんいらなくなったとかそういう落ち?
いえ、まだザッソウさんの考えが分かりかねていてまだなんとも言えません。


2倍のポイントを手に入れた! 136ポイント を手に入れた。

Name: s-rush  ..熟練のプログラマー(62,024ポイント)   Date: 2010/08/10(火) 16:34   No:58618     
Title: Re:求人2    
こんな私でよければ相談にも乗りますよ^^

実際、複数人でゲーム開発してますし、
ザッソウさんはなんとなくナメてる感じがします。

他の方も同じようにゲームを作られてるかと思うのでご存じかと思いますが、
ゲーム1本作るのに、そんな甘くはありません。


125ポイント を手に入れた。

Name: さんg  ..かけだし(1,586ポイント)   Date: 2010/08/10(火) 17:02   No:58621     
Title: Re:求人2    
 
ザッソウさんのとにかくゲームを作りたい!という気持ちは分からないでも無いですが…。
パコネコさんは聖人君子ですか;; 優しいとかそういうレベルではないですねー。

チャットの場は確保できているのですよね…? お二人でゆっくり話し合ってみてください。

    //そういえば、少し前に「ゲームクリエイターになるんだ!→プログラムも絵もできない→プランナーになるんだ!のなんと多い事か」
    //というスレッドのまとめが…ゲフン。失礼しました。


226ポイント を手に入れた。

Name: 通りすがり  ..上級者(22,595ポイント)   Date: 2010/08/10(火) 18:01   No:58629     
Title: Re:求人2    
>がくせいさん
>わたくしはこの展開は読めていました

いや、ここにいる人はみんな読めていましたが発言しなかっただけです。
ここはネガティブな発言はなるべくしないという慣習があるようですので、みな空気をよんだだけです。


42ポイント を手に入れた。

Name: DecentLove  ..上級者(15,132ポイント)   Date: 2010/08/10(火) 21:51   No:58648     
Title: Re:求人2    
ザッソウさん達、どうなったんでしょう?
事の顛末だけでも、知っておきたい気が…。
相談したいことがあったら、相談しますよ!


54ポイント を手に入れた。

Name: パコネコ  ..プログラマー(30,486ポイント)   Date: 2010/08/10(火) 22:03   No:58653     
Title: Re:求人2    
まだ連絡付いてないんです…
実は一度こっちに顔を出してからチャットで打ち合わせしましょうという話になっていて…
多分明日になるのではないかと…


45ポイント を手に入れた。

Name: Tororo  ..中級者(9,797ポイント)   Date: 2010/08/11(水) 06:56   No:58689     
Title: Re:求人2    
>>パコネコs

もう連絡無いかもしれませんよ^^;


31ポイント を手に入れた。

Name: 真等 [URL]  ..かけだし(2,235ポイント)   Date: 2010/08/11(水) 07:05   No:58690     
Title: Re:求人2    
>パコネコさん
こんばんは。
初めまして。
同人で共同制作してるものです。


私も今回の事に似たような経験がありまして、そのせいで気になります。
(最初に断っておきますが、私は皆様とは若干違い、パコネコさんがザッソウさんにとことんお付き合いされるのに対して、それほど反対ではありません。
その際、利用規約を超えた掲示板のご利用は勘弁していただきますと嬉しいです。)



パコネコさんご自身、もう既に「ザッソウさんとパコネコさんのどちらに非があるか」についてはお分かりなのではないでしょうか。
恐らく、ご心中では「相手の方が相当悪い」と思われているのではないでしょうか。
わずかでも客観的視点があれば、容易に判断されるべき結論だと思います。

そして私には、あなたが「“無理してまで”責任感のある人であろうとしている」ようにしか見えません。
(これに関しても、ご無理をされていることをご自身で把握されてるかもしれません。)
もし、あなたがそれに該当されるとして、そのお考えが良いか悪いかは、少なくとも私には判断つきません。

例えばの話で恐縮ですが。
パコネコさんがザッソウさんにお付き合いすると決めた、というお話です。
パコネコさんはザッソウさんに散々振り回された結果、ザッソウさんが音信不通になってしまったとします。
それでも責任感のあるパコネコさんは、遂にはご自身の手でゲームを完成させてしまいます。

――という結果になったとしますと、パコネコさんは、「ご自身の手でDQMJほどのゲーム制作を完結させられる能力」を証明されたことになります。
更には、「余程のことがあっても最後までやり抜く責任感」のおまけ付きです。
素晴らしいと思います。

……もちろん、他にもどういう結末になるかは幾通りも考えられると思います。


私は、ここの皆様があなたに対して確実に仰れることは、ただ「自分の知識・経験からして、この集団が取り組んだとしても、DQMJほどのゲームが完成する確率は非常に低いと思われる」ということだけなのだと思います。
それに対し、どういうアクションされるかは、あなた次第ではないでしょうか。



(今はもう枯れてしまっているのですが、もし16歳ぐらいの私なら、皆様の反対を押し切ってでも参加していると思います 笑
過去のことを後悔することもありますが、「ああいうことがあったからこそ」と思うこともあります。)


ご参考になれば幸いです。
――長々と書いてしまいましたが、私も「もう連絡ない」に賭けます 笑


570ポイント を手に入れた。

Name: DecentLove  ..上級者(15,156ポイント)   Date: 2010/08/11(水) 07:09   No:58691     
Title: Re:求人2    
僕も、もう連絡無いのではないかと思います。
ザッソウさんが一度こっちに書き込もうとしたけどウディタの件がばれていて、もう書き込むのはやめた。
そんな感じかな?


24ポイント を手に入れた。

Name: ookami  ..プログラマー(39,925ポイント)   Date: 2010/08/11(水) 07:41   No:58693     
Title: Re:求人2    
私も「この流れならまずザッソウさんからの連絡はないだろう」と思いつつ、
ザッソウさんなら...逆にケロッとした顔で来る可能性も捨てきれない^^;

「求人」の最初から見てました。
ゲーム制作支援サイトを作ろうとしているので、非常に考えさせられました。
こういう場合、サイト側では何ができるんだろうかと。
規約でしばるのも、なんだかナンセンスな気がしますよね…
だいたい、読んでくれないですしね^^;

特定のレビュワーの評価を受けて、良判定をもらわないとメンバー募集の
ステップへ進めないようにするとか、そんなことを妄想しています。

と、こう、いろいろと新しいアイデアが浮かんできたのは、パコネコさんのおかげです^^
変な流れですが、お礼申し上げます。


174ポイント を手に入れた。

Name: s-rush  ..熟練のプログラマー(62,608ポイント)   Date: 2010/08/11(水) 08:45   No:58695     
Title: Re:求人2    
私ももう連絡がないような気がします。


ザッソウさん、まだ掲示板見に来ていますか?
おそらく書き込みしづらい雰囲気になってしまい、書き込みをしていないだけかもしれませんね^^;

もしまだ読みに来られているのであれば、最低でもパコネコさんには連絡してあげてください。
これではあまりにもパコネコオさんが可哀そうです。

この企画を持ち出し、人を募集したのはザッソウさん・・・あなたです。
このまま音信不通にするようなことであれば無責任すぎますよ。
パコネコさんに対する裏切りだし、これまで助言をしてくださった方々に対しても失礼です。
まだ学生のようなので軽く考えているのかもしれませんが、
社会に出てこういうことをしていては許されません。

私もまだ学生(大学院生)なので、偉そうなことを言える身分ではないですが、
契約社員として働いていた経験もあるので、
学校内と職場(社会)の違いというものを少しは理解しているつもりです。


企画を持ち出したのにうまくいかず(嫌なこと言われ)、
だから仕事を放棄した。
このままだと、このように思われても仕方ないですよ。
ザッソウさん自身もこう思われては気分悪いでしょ?

考えが甘く、ゲーム制作はすこし先送り(中止)でも構わないと思うので、
何らかの行動を起こしてください。


誠意のある対応をよろしくお願いします。


584ポイント を手に入れた。

Name: DecentLove  ..上級者(15,221ポイント)   Date: 2010/08/11(水) 14:43   No:58709     
Title: Re:求人2    
ザッソウさ〜ん!見てますぁか?
見てたら書き込みくださぁ〜い!
今なら、まだやり直せますよ〜!
「まだ」、みんな寛大ですよ〜!


65ポイント を手に入れた。

Name: Mist  ..比類無きプログラマー(85,114ポイント)   Date: 2010/08/11(水) 14:51   No:58710     
Title: Re:求人2    
> ザッソウさ〜ん!見てますぁか?
> 見てたら書き込みくださぁ〜い!
> 今なら、まだやり直せますよ〜!
> 「まだ」、みんな寛大ですよ〜!

そういう叩いて楽しむことが目的の無意味な追い討ちは感心しません。
このスレが過去ログに行ってしまうほど下がったのであればまだしも、大して下がってもいないじゃないですか。
DecentLoveさんがされていることは、私信でスレ上げまっくてたザッソウさんと同じレベルですよ。


68ポイント を手に入れた。

Name: パコネコ  ..プログラマー(30,740ポイント)   Date: 2010/08/11(水) 15:10   No:58714     
Title: Re:求人2    
ザッソウさんがまだ掲示板をみてないかもしれないじゃないですか…

ザッソウさんは今日ここに一度顔を出すと昨日言ってました…明日になってからならともかく、
まだ掲示板をみていない可能性は十分にあると思います。

あまり追い詰めて出てきずらいこと書かないでほしいです…生意気なこと言っちゃってすいません。
私は今日は待ってます。
=============
ザッソウさんへ
9時にチャットで待ってます。
===========いま9時です=======
9時30分までは待たしていただきます。
このスレをこれ以上、上げたくないので編集で書かせていただいてます。
=============9時30分=========
残念ですがあきらめさせていただきます。
本当はお話をしてからにしたかったんですが…今回のゲーム制作から抜けさせていただきます。
ご迷惑おかけしました。
皆さんもご迷惑おかけしました。
この書き込みに気がついた方も、知らない振りしてもらうと幸いです。
スレを上げたくないので…また迷惑がかかってしまいますから。
勝手なこと言ってしまってすいません。
 編集済み


135ポイント を手に入れた。

Name: シエル  ..熟練のプログラマー(46,880ポイント)   Date: 2010/08/11(水) 15:14   No:58716     
Title: Re:求人2    
このスレはもう下げるべきでしょう。また荒れるだけです。
どうせザッソウさんからの連絡はもう来ないか、パコネコさんに直接連絡を取るでしょう。
もう私たちは関わらないほうがいいです。
子供のやりとりを見ていると、私の性格上いらつくのでもうやめにして下さい。

>>DecentLoveさん。
・・・もう、何も言いません。

#もうすぐ1000万アクセスなんだから、気持ちの良い状態で迎えましょうよ。


94ポイント を手に入れた。

Name: DecentLove  ..上級者(15,285ポイント)   Date: 2010/08/11(水) 15:39   No:58720     
Title: Re:求人2    
すみません、叩くつもりじゃなかったんです。
ただ、ザッソウさんが戻ってきやすくしたかったんですが…。すみません、言い訳じみてますね。


64ポイント を手に入れた。



Name: 未来のプログラマー  ..ぴよぴよ(879ポイント)   Date: 2010/08/10(火) 08:07   No:58552       
Title: DxDirectX.h 890: 宣言の構文エラー    
BCCにて
私は「C言語を始めよう」を使っていますが、
DXライブラリのDxLib.hファイルを使うと「参考」

B#include "DxLib.h"

// プログラムは WinMain から始まります
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
                        LPSTR lpCmdLine, int nCmdShow )
{
    if( DxLib_Init() == -1 )        // DXライブラリ初期化処理
    {
        return -1 ;            // エラーが起きたら直ちに終了
    }

    DrawPixel( 320 , 240 , 0xffff ) ;    // 点を打つ

    WaitKey() ;                // キー入力待ち

    DxLib_End() ;                // DXライブラリ使用の終了処理

    return 0 ;                // ソフトの終了 
}
と 入れると

orland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
.c:
エラー E2141 DxDirectX.h 890: 宣言の構文エラー
警告 W8094 DxLib.h 93: #pragma comment( <type> [,"string"] ) の使用法に誤りがある
警告 W8094 DxLib.h 94: #pragma comment( <type> [,"string"] ) の使用法に誤りがある
警告 W8094 DxLib.h 95: #pragma comment( <type> [,"string"] ) の使用法に誤りがある
警告 W8065 .c 7: プロトタイプ宣言のない関数 'DxLib_Init' の呼び出し(関数 WinMain )
警告 W8065 .c 12: プロトタイプ宣言のない関数 'DrawPixel' の呼び出し(関数 WinMain )
警告 W8065 .c 14: プロトタイプ宣言のない関数 'WaitKey' の呼び出し(関数 WinMain )
警告 W8065 .c 16: プロトタイプ宣言のない関数 'DxLib_End' の呼び出し(関数 WinMain )
警告 W8057 .c 19: パラメータ 'hInstance' は一度も使用されない(関数 WinMain )
警告 W8057 .c 19: パラメータ 'hPrevInstance' は一度も使用されない(関数 WinMain )
警告 W8057 .c 19: パラメータ 'lpCmdLine' は一度も使用されない(関数 WinMain )
警告 W8057 .c 19: パラメータ 'nCmdShow' は一度も使用されない(関数 WinMain )
*** 1 errors in Compile ***
------ コンパイル終了 ------
といわれます
警告のほうは問題ないと思いますが・・・
どうやらDxDirectX.hファイルに問題がありそうです
エラーが取れるにはどうしたらいいでしょうか。
よろしくお願いします


778ポイント を手に入れた。


Name: ookami  ..プログラマー(39,917ポイント)   Date: 2010/08/10(火) 08:47   No:58554     
Title: Re:DxDirectX.h 890: 宣言の構文エラー    
DxDirectX.hの890行目近辺を見てみましたが、
#define が並んでいるだけなので
エラーが出るとは思えないんですよね。

DXライブラリは、最新版ですか?
http://homepage2.nifty.com/natupaji/DxLib/dxdload.html

...くらいしか思いつきませんでした。


114ポイント を手に入れた。

Name: naohiro19  ..ぴよぴよ(445ポイント)   Date: 2010/08/10(火) 08:49   No:58555     
Title: Re:DxDirectX.h 890: 宣言の構文エラー    
まさかとは思いませんがVisual Studio用じゃないですよね?

25ポイント を手に入れた。

Name: toyo  ..熟練のプログラマー(57,429ポイント)   Date: 2010/08/10(火) 09:13   No:58557     
Title: Re:DxDirectX.h 890: 宣言の構文エラー    
namespace DxLib
の行じゃないでしょうか
拡張子を.cppにしたらどうでしょう


40ポイント を手に入れた。

Name: 未来のプログラマー  ..ぴよぴよ(892ポイント)   Date: 2010/08/10(火) 17:42   No:58626     
Title: Re:DxDirectX.h 890: 宣言の構文エラー    
皆さんの意見で試してみたいと思います

13ポイント を手に入れた。

Name: 未来のプログラマー  ..かけだし(1,708ポイント)   Date: 2010/08/10(火) 17:50   No:58627     
Title: Re:DxDirectX.h 890: 宣言の構文エラー    
toyoさんの意見をしてみたところ




Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
無題1.cpp:
警告 W8022 DxDirectX.h 6749: 'D_CTransInPlaceFilter::Transform(D_IMediaSample *)' が仮想関数 'D_CTransformFilter::Transform(D_IMediaSample *,D_IMediaSample *)' を隠蔽する
警告 W8094 DxLib.h 93: #pragma comment( <type> [,"string"] ) の使用法に誤りがある
警告 W8094 DxLib.h 94: #pragma comment( <type> [,"string"] ) の使用法に誤りがある
警告 W8094 DxLib.h 95: #pragma comment( <type> [,"string"] ) の使用法に誤りがある
警告 W8057 無題1.cpp 19: パラメータ 'hInstance' は一度も使用されない(関数 __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) )
警告 W8057 無題1.cpp 19: パラメータ 'hPrevInstance' は一度も使用されない(関数 __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) )
警告 W8057 無題1.cpp 19: パラメータ 'lpCmdLine' は一度も使用されない(関数 __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) )
警告 W8057 無題1.cpp 19: パラメータ 'nCmdShow' は一度も使用されない(関数 __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) )
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: 'C:\DOCUMENTS AND SETTINGS\「ユーザー名」\デスクトップ\DXLIB_VC\プロジェクトに追加すべきファイル_VC用\LIBTHEORA_STATIC.LIB' contains invalid OMF record, type 0x21 (possibly COFF)
------ コンパイル終了 ------
となりました
こちらのほうはどうでしょうか?
「Error: 'C:\DOCUMENTS AND SETTINGS\「ユーザー名」\デスクトップ\DXLIB_VC\プロジェクトに追加すべきファイル_VC用\LIBTHEORA_STATIC.LIB' contains invalid OMF record, type 0x21 (possibly COFF)
」の文字列が怪しそうですが。。。


816ポイント を手に入れた。

Name: Mist  ..比類無きプログラマー(85,202ポイント)   Date: 2010/08/10(火) 17:59   No:58628     
Title: Re:DxDirectX.h 890: 宣言の構文エラー    
「DXLIB_VC」って、VC用使っているじゃないですか。
BCC使っているのだからBCC用のDXライブラリを使用してください。


38ポイント を手に入れた。

Name: toyo  ..熟練のプログラマー(57,433ポイント)   Date: 2010/08/10(火) 18:01   No:58630     
Title: Re:DxDirectX.h 890: 宣言の構文エラー    
DXLIB_VC
が怪しいですね(VCはVisualC++の略でBCC用はDXLIB_BCCとなるはず)
naohiro19さんのレスは確認されましたか


4ポイント を手に入れた。

Name: 未来のプログラマー  ..かけだし(1,774ポイント)   Date: 2010/08/10(火) 18:20   No:58632     
Title: Re:DxDirectX.h 890: 宣言の構文エラー    
えーっと
BCC用のhファイルおよびLIZファイルは
BCC55フォルダ
includeフォルダと
libフォルダに入れていますが
なぜかデスクトップを参照にしています
確かにデスクトップには
VC用がありますが。。。


66ポイント を手に入れた。

Name: 未来のプログラマー  ..かけだし(1,811ポイント)   Date: 2010/08/10(火) 18:26   No:58634     
Title: Re:DxDirectX.h 890: 宣言の構文エラー    
出来ましたが
ファイル MSACM32.LIB が開けません
となってしまいます


37ポイント を手に入れた。

Name: がくせい  ..ぴよぴよ(889ポイント)   Date: 2010/08/10(火) 18:36   No:58635     
Title: Re:DxDirectX.h 890: 宣言の構文エラー    
関係ないですが、ザッソウさんと喋り方がシンクロしてますね

30ポイント を手に入れた。

Name: nanashi  ..ぴよぴよ(562ポイント)   Date: 2010/08/10(火) 18:54   No:58636     
Title: Re:DxDirectX.h 890: 宣言の構文エラー    
> がくせいさん

あなたのその不必要な発言はなんとか成らないんですか?
冗談言いたいなら回答の一つでもしてからにしてください。


36ポイント を落としてしまった。

Name: 未来のプログラマー  ..かけだし(1,834ポイント)   Date: 2010/08/10(火) 19:21   No:58637     
Title: Re:DxDirectX.h 890: 宣言の構文エラー    
>がくせいさん

やめてください





23ポイント を手に入れた。

Name: 白い時空  ..入門者(4,657ポイント)   Date: 2010/08/10(火) 20:28   No:58641     
Title: Re:DxDirectX.h 890: 宣言の構文エラー    
>>ファイル MSACM32.LIB が開けません 
私も最初、このエラーが出ましたね。エラー名で検索かけると解決法が出ました。

ここに書いてあります。(DXライブラリ本家の掲示板です)
http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=649


74ポイント を落としてしまった。

Name: 未来のプログラマー  ..かけだし(1,868ポイント)   Date: 2010/08/11(水) 07:38   No:58692     
Title: Re:DxDirectX.h 890: 宣言の構文エラー    
>白い時空さん
ありがとうございます。
参考にさせていただきます。


34ポイント を手に入れた。

Name: 未来のプログラマー  ..かけだし(1,980ポイント)   Date: 2010/08/11(水) 07:47   No:58694 解決!     
Title: Re:DxDirectX.h 890: 宣言の構文エラー    
白い時空さんの意見をしたら、無事エラーが取れました、ありがとうございます。
そのほかの皆さんもご意見ありがとうございました。


2倍のポイントを手に入れた! 112ポイント を手に入れた。



Name:  ..ぴよぴよ(282ポイント)   Date: 2010/08/10(火) 00:17   No:58538       
Title: 関数の再帰呼び出しについて    
質問させていただきます。

正の整数a,nを入力し
aのn乗を計算し表示するプログラムを作ろうとしています。
条件は数学関数powを使わないことと関数の再帰呼び出しを使うことです。

x=a*x(a,n-1);の部分で代入文が変ですという旨のエラー(?)が出てしまうのですが
何をいれていいかわかりません、またそこが正しくなれば
正常に動くのかもわかりません…
どうすれば正常に実行できるのか教えていただけたら嬉しいです。





#include<stdio.h>


int x(int a, int n){
 if(0==n){
 return a*x(a,n-1);
 }
 else{
 return 1;
}
}


main(){
int a,n,fact;
int x(int a, int n);

x=a*x(a,n-1);

printf("a?");
scanf("%d",&a);
printf("n?");
scanf("%d",&n);


printf("%d^%d = %d\n",a,n,x);


}


282ポイント を手に入れた。


Name: ぽこ  ..プログラマー(27,181ポイント)   Date: 2010/08/10(火) 00:25   No:58541     
Title: Re:関数の再帰呼び出しについて    
xは変数ですか?関数ですか?
関数に値を代入できません。
別変数を使ってください。


25ポイント を手に入れた。

Name: パコネコ  ..プログラマー(29,598ポイント)   Date: 2010/08/10(火) 00:59   No:58546     
Title: Re:関数の再帰呼び出しについて    
ついでに場所もできれば入力した後のほうが、いいと思うのですが・・・

28ポイント を手に入れた。

Name: すいそ  ..ぴよぴよ(213ポイント)   Date: 2010/08/10(火) 01:37   No:58549     
Title: Re:関数の再帰呼び出しについて    
訂正してみました。たぶんこれでうまくいくと思います。


#include<stdio.h> 

int x(int a, int n){  
 if(0!=n){        // ==を!=に変えました。  n=0の時、x(m,0)=1 (mは任意)。
 return a*x(a,n-1);
 } 
 else{ 
 return 1; 



int main(){ 
int a,n,fact; 
int x(int a, int n); 

//x=a*x(a,n-1);   不要です。

printf("a?"); 
scanf("%d",&a); 
printf("n?"); 
scanf("%d",&n);

fact=x(a,n); //ここでaのn乗を計算します。

printf("%d^%d = %d\n",a,n,fact); //  xをfactに変えました。

}


213ポイント を手に入れた。

Name: naohiro19  ..ぴよぴよ(420ポイント)   Date: 2010/08/10(火) 07:46   No:58551     
Title: Re:関数の再帰呼び出しについて    
出力結果:
a?2
n?2
2^2 = 4

問題なく動いています。


22ポイント を手に入れた。

Name: 初級者  ..初心者(8,661ポイント)   Date: 2010/08/10(火) 21:19   No:58644     
Title: Re:関数の再帰呼び出しについて    
べき乗を求めた結果を、
fact という階乗(factorial)を連想させそうな
変数に格納するのはイマイチ。

名が体を表わしていない。


35ポイント を手に入れた。

Name:  ..ぴよぴよ(299ポイント)   Date: 2010/08/11(水) 03:29   No:58688 解決!     
Title: Re:関数の再帰呼び出しについて    
無事にプログラムを動かすことができました!
みなさんアドバイスやご指摘本当にありがとうございました!


17ポイント を手に入れた。



Name: HK  ..ぴよぴよ(325ポイント)   Date: 2010/08/10(火) 18:23   No:58633       
Title: WinAPI32で、3次元グラフを作る    
何度かお世話になっておりますHKと申します。

WINAPIで以下のサイトにあるような3次元グラフを書くことが目的です。
http://homepage3.nifty.com/ishidate/vcpp05_23/vcpp05_23.htm

現在の進行状況ですが以下のようになってます。
視点(θ、φ)を変更するスクロールバーを作成。
実空間での3次元座標から、画面出力に用いる2次元座標にする関数の作成。
それを用いてXYZ軸を描画。
次に、x,y座標をforループで細かく指定していき、z座標を得る。
z座標を描画

という感じです。

問題点は、ある矩形領域にだけ、点が描画されないということです。

画像を添付しているので、ごらんください。画面の右半分が描画されていません。
(なぜか線は描写される)

一応、原因を調べようとして、青点を横一線になるように打点したところ、
右の端っこに青点が描画されているのは確認できました。これもなぜだかわかりません

打点する関数は以下のようになっています。

void graph_dots(HWND hWnd){
int i;
   //X軸、Y軸方向を細かくスキャンし、打点していく
for(xx=1;xx>=-1;xx-=0.02){
        for(yy=-1;yy<=1;yy+=0.02){
         //理論空間→実際の空間
         x=xx*size;
         y=yy*size;
         //関数の計算
         z=func(x,y);
         //実際の空間→理論空間
         zz=z/size;
         //打点する
         point=ChangeTo2D(x,y,z);
         SetPixelV(hdc,point.x,point.y,RGB(0,(y>0? 255:0),0));

      }
}
//----------テスト
for(i=0;i<800;i+=3) SetPixel(hdc,i,100,RGB(0,0,255));
//----------
}

ちなみに 3次元グラフは以下
double func(double x, double y){
return 40*cos(pow(((x*x+y*y)/50.0),0.5)); 
}


Windows Vista
VC++2008 
を使っております


325ポイント を手に入れた。


Name: HK  ..ぴよぴよ(409ポイント)   Date: 2010/08/10(火) 21:58   No:58651     
Title: Re:WinAPI32で、3次元グラフを作る    
自己解決しました

Vista で Aero を OFF にすると SetPixel系 がうまく動かないそうです

こんなので1日悩んでいた自分がばかばかしい。そして時間の無駄だった。

ところで、確かこのまえ2000ポイントくらい溜まってたのですが
またぴよぴよに戻ったのはIP変動のせいですか?


84ポイント を手に入れた。

Name: シエル  ..熟練のプログラマー(46,482ポイント)   Date: 2010/08/10(火) 22:03   No:58654     
Title: Re:WinAPI32で、3次元グラフを作る    
たぶんポイントは名前だけしか見てないと思いますよ。

名前間違ってませんか?
大文字だったり小文字だったり、スペース入ってたりとかないですかね?


13ポイント を手に入れた。

Name: fatens  ..上級者(17,726ポイント)   Date: 2010/08/10(火) 22:04   No:58655     
Title: Re:WinAPI32で、3次元グラフを作る    
名前の全角・半角の違いではないでしょうか。


9ポイント を手に入れた。

Name: パコネコ  ..プログラマー(30,505ポイント)   Date: 2010/08/10(火) 22:05   No:58657     
Title: Re:WinAPI32で、3次元グラフを作る    
昇進状態というので名前の確認できますよ…

19ポイント を手に入れた。

Name: シエル  ..熟練のプログラマー(46,554ポイント)   Date: 2010/08/10(火) 22:06   No:58658     
Title: Re:WinAPI32で、3次元グラフを作る    
どうやら以前までは全角だったようですね。

追記:
いつの間にか熟練のプログラマーに。。
まだ初級者レベルなんだけどなぁ。 編集済み


11ポイント を手に入れた。

Name: HK  ..初心者(5,339ポイント)   Date: 2010/08/10(火) 22:13   No:58662     
Title: Re:WinAPI32で、3次元グラフを作る    
test

6ポイント を手に入れた。

Name: HK  ..初心者(5,361ポイント)   Date: 2010/08/10(火) 22:14   No:58663 解決!     
Title: Re:WinAPI32で、3次元グラフを作る    
本当ですね。
ありがとうございました。


2倍のポイントを手に入れた! 22ポイント を手に入れた。

Name: ISLe  ..中級者(11,685ポイント)   Date: 2010/08/11(水) 01:36   No:58686     
Title: Re:WinAPI32で、3次元グラフを作る    
修正プログラムを入手することができます。
ただしWindowsUpdateでの公開(一般公開)はされていないようです。

Vista SP1
http://support.microsoft.com/kb/983184/ja
Vista SP2
http://support.microsoft.com/kb/978545/ja


65ポイント を手に入れた。



Name:  ..入門者(3,582ポイント)   Date: 2010/08/10(火) 10:37   No:58559       
Title: Mac OpenGL ESでの開発    
質問ばかりで申し訳ないです。

Mac OpenGL ESでiPhoneアプリの開発をしております。

ここの方々にアドバイスを頂きながらライブラリを作ってみました。
しかし問題が御座いましてシーンチェンジする際に残像が出てしまいます。
残像がでるのは一度でも表示したシーンです。
これを止めたいのですが何処を直せばよいのかがわかりません。
サンプルのゲームを作ってみました。
タイトル→ゲーム→タイトル→ゲームとシーンを変えていくと1フレームだけ残像が残ってしまいます。

お手数お掛け致しますがソースを見ては頂けないでしょうか?

http://www1.axfc.net/uploader/Si/so/81416
Pass:ren


272ポイント を手に入れた。


Name:  ..入門者(3,623ポイント)   Date: 2010/08/10(火) 19:25   No:58638     
Title: Re:Mac OpenGL ESでの開発    
色々試しては見たのですがやはり解決できません。
ここで聞くことではないかと思うのですがお助けいただけますと助かります。


41ポイント を手に入れた。

Name: softya [URL]  ..ハッカー(191,621ポイント)   Date: 2010/08/10(火) 19:56   No:58639     
Title: Re:Mac OpenGL ESでの開発    
ここで聞いていただくのは全く問題ないのですが、たぶん過去にも何度か回答しているJustyさんしか回答できないかと思います。
Justyさんもお忙しいようなので、申し訳ないですがお待ちいただくしか無いかと思います。


76ポイント を手に入れた。

Name:  ..入門者(3,689ポイント)   Date: 2010/08/10(火) 20:12   No:58640     
Title: Re:Mac OpenGL ESでの開発    
>>softya様
ご回答ありがとうございます。
ここで聞いても大丈夫なんですね・・・安心しました。
Justyさんを始めとしてこちらの方々にはお世話になりっぱなしで申し訳がないです><


66ポイント を手に入れた。

Name: めるぽん  ..中級者(11,099ポイント)   Date: 2010/08/10(火) 22:06   No:58659     
Title: Re:Mac OpenGL ESでの開発    
実行環境が無いのでソースを眺めただけですけど、
ES1Renderer.mm: 140 行目あたり
    if( System.InitFlag ){
        [self LoadDefault];
        if( sceneFunc->init ) sceneFunc->init();
        System.InitFlag = false;
    }else{
        if( sceneFunc->loop ) sceneFunc->loop();
        if( sceneFunc->draw ) sceneFunc->draw();
    }
この部分、シーンが切り替わった後 init してから、draw を行わずにループを抜けちゃってるのが怪しい気がしますね。 else を除けて、
    if( System.InitFlag ){
        [self LoadDefault];
        if( sceneFunc->init ) sceneFunc->init();
        System.InitFlag = false;
    }
    if( sceneFunc->loop ) sceneFunc->loop();
    if( sceneFunc->draw ) sceneFunc->draw();

とかやればちゃんと表示されたりしませんかね?


266ポイント を手に入れた。

Name: Justy  ..伝説なるハッカー(561,695ポイント)   Date: 2010/08/11(水) 00:13   No:58680     
Title: Re:Mac OpenGL ESでの開発    
>softyaさん
>Justyさんしか回答できないかと思います。
 多分他にも回答できそうな方はいると思うんですけどね。
 まぁ絶対数は少ないんでしょうけど……。


>蓮さん
>タイトル→ゲーム→タイトル→ゲームとシーンを変えていくと1フレームだけ残像が残ってしまいます
 sceneFunc->loop()で sceneFuncが変更されてしまっているからです。

 つまり、1回目の「ゲーム」シーケンスで何かものを表示した後、タイトルに遷移し、再度ゲームに遷移するわけですが
「タイトル」シーケンスの sceneFunc->loop内で 「ゲーム」シーケンスの sceneFuncに変更されてしまっているので、
次の sceneFunc->drawは「ゲーム」シーケンスの初期化が成される前に「ゲーム」シーケンスの描画が走ってしまっています。
(当然前回の終了した時点のパラメータがそのまま残っていますので、前の「ゲーム」シーケンスの描画が
表示されます)

 この仕組みで作るなら、sceneFunc->loop内で行うシーケンス変更はリクエスト形式にして、何ら影響を及ぼさないところで
そのリクエストがあったらシーケンスを変更するようにすればいいかと。


 あと、めるぽんさんの指摘通りなんですが今のコードだと initを行ったフレームの描画が行われず
真っ暗になってしまいますので、initを行った後更新と描画を行うようにすれば、うまくいくのでは
ないかと思います。


12ポイント を手に入れた。

Name:  ..初心者(5,097ポイント)   Date: 2010/08/11(水) 01:21   No:58685 解決!     
Title: Re:Mac OpenGL ESでの開発    
皆様ご回答ありがとうございます。

>>ぬるぽん様
良く考えてみるとおかしい挙動を起こしそうですね・・・
ただ私レベルでは数十分考えないと解けないかったですww
ご指摘ありがとうございます。

>>Justy様
わかりやすい解説ありがとうございます。
お陰さまで想像していた通りの動きになりました。
ソースを読む能力が半端ないですね・・・
前から尊敬をしておりましたがやはり凄すぎます・・・。
本当にありがとうございました。

一応、修正後のソースを貼らせて頂きます。
まずかったらアドバイスを頂けますと助かります。


#import "ES1Renderer.h"
#include "title_scene.h"
#include "game_scene.h"
#include "ranking_scene.h"

@implementation ES1Renderer
@synthesize glView;

// シーンIDから呼び出す関数の情報を取得 

const SceneFunc *sceneFunc = nil;
SYSTEM System;

const SceneFunc *GetSceneFunc(int id){
 const SceneFunc *sceneFunc; 
 switch(id){ 
  case SCENE_TITLE:
   sceneFunc = GetSceneFunc_Title(); 
   break;
  case SCENE_GAME:
   sceneFunc = GetSceneFunc_Game(); 
   break;
  case SCENE_RANKING:
   sceneFunc = GetSceneFunc_Ranking();
   break;
  default: 
  // sceneFunc = NULL; 
  break; 
 }
 System.SceneNum = id;
 return sceneFunc; 
}

void SceneChange(int id){
 System.SceneNum = id;
 // System.InitFlag = true;
 System.FinishFlag = true;
}

void SceneChangeFinish( void ){
 sceneFunc = GetSceneFunc( System.SceneNum );
}

// Create an OpenGL ES 1.1 context
- (id)init
{
    if ((self = [super init]))
    {
        context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES1];

        if (!context || ![EAGLContext setCurrentContext:context]){
            [self release];
            return nil;
        }

        // Create default framebuffer object. The backing will be allocated for the current layer in -resizeFromLayer
        glGenFramebuffersOES(1, &defaultFramebuffer);
        glGenRenderbuffersOES(1, &colorRenderbuffer);
        glBindFramebufferOES(GL_FRAMEBUFFER_OES, defaultFramebuffer);
        glBindRenderbufferOES(GL_RENDERBUFFER_OES, colorRenderbuffer);
        glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, colorRenderbuffer);
  
  // 乱数の初期化
  srand( time(nil) );
  sceneFunc = GetSceneFunc( START_SCENE );
  [self ReadFile];
  
  System.InitFlag = true;
  System.FinishFlag = false;
//  if( sceneFunc->init ) sceneFunc->init();
  
    }

    return self;
}

- (void)render
{
 
    // Replace the implementation of this method to do your own custom drawing
    
 // static float transY = 0.0f;

    // This application only creates a single context which is already set current at this point.
    // This call is redundant, but needed if dealing with multiple contexts.
    [EAGLContext setCurrentContext:context];

    // This application only creates a single default framebuffer which is already bound at this point.
    // This call is redundant, but needed if dealing with multiple framebuffers.
    glBindFramebufferOES(GL_FRAMEBUFFER_OES, defaultFramebuffer);
    glViewport(0, 0, backingWidth, backingHeight);

    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
 
 // 座標系の変更
 glOrthof( 0.0f, WIN_H, WIN_W, 0.0f, 0.5f, -0.5f );
 
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();

 //  glClearColor(0.5f, 0.5f, 0.5f, 1.0f);
    glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
    glClear(GL_COLOR_BUFFER_BIT);
 
 if( System.InitFlag ){
  [self LoadDefault];
  if( sceneFunc->init ) sceneFunc->init();
  System.InitFlag = false;
 }
 
 if( sceneFunc->loop ) sceneFunc->loop();
 if( sceneFunc->draw ) sceneFunc->draw();
 
 if( System.FinishFlag ){
  if( sceneFunc->finish ) sceneFunc->finish(); 
  [self SaveDefault];
  SceneChangeFinish();
  System.FinishFlag = false;
  System.InitFlag = true;
 }
 
 // スコア更新ならセーブ
 if( System.SaveFlag ) [self WriteFile];
 System.SaveFlag = false;
    System.TouchFlag = false;

 // This application only creates a single color renderbuffer which is already bound at this point.
    // This call is redundant, but needed if dealing with multiple renderbuffers.
    glBindRenderbufferOES(GL_RENDERBUFFER_OES, colorRenderbuffer);
    [context presentRenderbuffer:GL_RENDERBUFFER_OES];
}




1,290ポイント を手に入れた。




 
[ 1 , ... ]
 
 
管理者画面   RSS   + Powered By 21style +