|
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: みすた ..ぴよぴよ(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: みすた ..ぴよぴよ(644ポイント)
Date: 2010/08/15(日) 13:44
No:59010
| 解決!
|
Title: Re:1、0の反転
|
|
そうだったんですか!知りませんでした。
ありがとうございました。 
32ポイント を手に入れた。
|
|
|
|
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: ルファー ..入門者(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: たかぎ [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: 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: 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: たかぎ [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: バズー ..ぴよぴよ(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: こもりん ..ぴよぴよ(198ポイント)
Date: 2010/08/14(土) 13:20
No:58944
|
|
Title: bcc32コンパイラー
|
|
http://dixq.net/rp/1.html
今↑のところまでやってきたんですけど、ここでダウンロードできるファイルにはVisualStudio用のプロジェクトファイルしかありません。
VisualStudioでプログラミングしたいのはやまやまなんですけど、どうもインストールの方法が分かりませんし使いなれないのでどなたかBccDEV統合開発環境をお使いの方はどうやってやっているんでしょうか??
教えてください。後よければプロジェクトファイルを作って送付していただきたいです。
198ポイント を手に入れた。
|
|
|
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: 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: シエル ..熟練のプログラマー(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: yamataka ..かけだし(1,940ポイント)
Date: 2010/08/12(木) 22:53
No:58794
|
|
Title: 【雑談】DirectX11 か DirectX10 か DirectX9
|
|
DirectX10は色々とDirectX9より凄いらしいのですが、
みなさんがゲームを作るとしたらどれを使いますか?
DirectXなら何でも(8、9、・・・)いいです。 
47ポイント を手に入れた。
|
|
|
|
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: 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: かおり ..ぴよぴよ(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: パコネコ ..プログラマー(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: パコネコ ..プログラマー(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: Dixq (管理人) [URL] ..ウィザード(1,251,047ポイント)
Date: 2010/08/13(金) 18:11
No:58894
|
|
Title: Re:C言語です。おねがいします。
|
|
> かおりさん
複数の名前を使うことは規約で禁止させて頂いています。
どれか決まった名前で投稿して下さい。
また、課題の丸投げも禁止とさせて頂いております。
規約を守った利用をお願いします。
かおりさんはC言語について苦手意識をお持ちなのでしょうか?
もしそうであれば、先入観にとらわれず、少しずつ解くことに挑戦してみませんか?
複雑な問題が解けなかったとしても、簡単な問題に分割すれば案外簡単に解けることもあります。
また、環境の用意の仕方や基本はなかなか完全に初心者であればハードルが高いと感じるかもしれません。
環境の用意の仕方を初め、わからないことがあれば一つ一つ解決してみましょう。
学習意欲さえあれば皆さん非常に熱心に答えてくださると思います。
最初は皆難しいと思うものです、頑張りましょう。
196ポイント を手に入れた。
|
|
|
|
|
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: 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: 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: 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: あや ..かけだし(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: あや ..かけだし(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: 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: パコネコ ..プログラマー(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: パコネコ ..プログラマー(31,157ポイント)
Date: 2010/08/13(金) 00:09
No:58816
|
|
Title: Re:任意の値です
|
|
とりあえず
時間がないとのことですので、
日本語でプログラム書いてみます。
宣言 最大=0、最小=100、なんか;
ループ(条件){
入力;
もし(入力の値が条件ではないなら){
もし(入力の値が最小より小さいなら)最小に代入;
もし(入力の値が最大より大きいなら)最大に代入;
}
}
結果を出力;
こんな感じで、プログラム作れますか?
=========
あれ?
任意の数ってことは「好きなだけ入力してよいぞ」的なやつじゃなかったですか?
わ〜、恥ずかしい…勘違いだったみたいで、もうすいませんとしか言えません…
=========
一応直しました。
2倍に理由があるのかもわかりませんが…たまになります。
ときどき落すことも… 
126ポイント を手に入れた。
|
|
|
|
|
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: (´・ω・`) ..ぴよぴよ(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: ぽこ ..プログラマー(27,430ポイント)
Date: 2010/08/11(水) 20:34
No:58735
|
|
Title: Re:pimplイディオムの使用場所
|
|
>基底クラスから継承した時、基底クラスにある実装クラスも継承しなければならないことがわかりました。
実装クラスに依存しないように、設計を見直すべきです。
>別のファイルに継承クラスを作ることにすると実装クラス用のヘッダーファイルを作ることになりますが、
>これは実装の隠蔽に反してしまいます。
誰に対して隠蔽しようとしていますか?
隠蔽すべき相手はパッケージ利用者であって、
パッケージの提供者には隠蔽する必要ないですよね?
218ポイント を手に入れた。
|
|
|
|
|
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: 阿久津 ..ぴよぴよ(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: 阿久津 ..ぴよぴよ(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: パコネコ ..プログラマー(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: 白い時空 ..入門者(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: 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,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: s-rush ..熟練のプログラマー(61,699ポイント)
Date: 2010/08/10(火) 16:08
No:58602
|
|
Title: Re:求人2
|
|
>一応、パコネコさんは追記にウディタについて書いていましたから、記事数限界の関係で新たにレスできなか
>っただけで、把握できてると思いますよ。
それならいいのですが・・・
けど、このプロジェクト・・・本当にうまく行くのか不安ですよね^^; 
17ポイント を手に入れた。
|
|
|
|
|
Name: パコネコ ..プログラマー(29,906ポイント)
Date: 2010/08/10(火) 16:09
No:58605
|
|
Title: Re:求人2
|
|
>>DecentLove
正直、自分で作ろうとしてるようにしか見えませんし…抜けてしまいたい気持ちもあるのですが…
でも抜けるってことは、責任放棄?みたいになってしまう気がしてしまします。
それに信用が一番大事だと思うんですよね…抜けちゃうのは無責任な気がしてしまいます…
無責任な人をだれも信用してくれないように思えます…そんな人になりたくないです。
それにたくさんの人に迷惑かけて結局無駄だったみたいになっては皆さんに失礼な気がしてしまいます。
もう一度ザッソウさんと話をしてみなければいけないようです…
抜けるかはそれからになるでしょう…
>>管理人さん、
200までだったんですね、埋めてしまってすいません…わざわざもう1つ作ったりしてもらってますし…
201ポイント を落としてしまった。
|
|
|
|
|
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: 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: 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: パコネコ ..プログラマー(30,486ポイント)
Date: 2010/08/10(火) 22:03
No:58653
|
|
Title: Re:求人2
|
|
まだ連絡付いてないんです…
実は一度こっちに顔を出してからチャットで打ち合わせしましょうという話になっていて…
多分明日になるのではないかと…
45ポイント を手に入れた。
|
|
|
|
|
Name: 真等 [URL] ..かけだし(2,235ポイント)
Date: 2010/08/11(水) 07:05
No:58690
|
|
Title: Re:求人2
|
|
>パコネコさん
こんばんは。
初めまして。
同人で共同制作してるものです。
私も今回の事に似たような経験がありまして、そのせいで気になります。
(最初に断っておきますが、私は皆様とは若干違い、パコネコさんがザッソウさんにとことんお付き合いされるのに対して、それほど反対ではありません。
その際、利用規約を超えた掲示板のご利用は勘弁していただきますと嬉しいです。)
パコネコさんご自身、もう既に「ザッソウさんとパコネコさんのどちらに非があるか」についてはお分かりなのではないでしょうか。
恐らく、ご心中では「相手の方が相当悪い」と思われているのではないでしょうか。
わずかでも客観的視点があれば、容易に判断されるべき結論だと思います。
そして私には、あなたが「“無理してまで”責任感のある人であろうとしている」ようにしか見えません。
(これに関しても、ご無理をされていることをご自身で把握されてるかもしれません。)
もし、あなたがそれに該当されるとして、そのお考えが良いか悪いかは、少なくとも私には判断つきません。
例えばの話で恐縮ですが。
パコネコさんがザッソウさんにお付き合いすると決めた、というお話です。
パコネコさんはザッソウさんに散々振り回された結果、ザッソウさんが音信不通になってしまったとします。
それでも責任感のあるパコネコさんは、遂にはご自身の手でゲームを完成させてしまいます。
――という結果になったとしますと、パコネコさんは、「ご自身の手でDQMJほどのゲーム制作を完結させられる能力」を証明されたことになります。
更には、「余程のことがあっても最後までやり抜く責任感」のおまけ付きです。
素晴らしいと思います。
……もちろん、他にもどういう結末になるかは幾通りも考えられると思います。
私は、ここの皆様があなたに対して確実に仰れることは、ただ「自分の知識・経験からして、この集団が取り組んだとしても、DQMJほどのゲームが完成する確率は非常に低いと思われる」ということだけなのだと思います。
それに対し、どういうアクションされるかは、あなた次第ではないでしょうか。
(今はもう枯れてしまっているのですが、もし16歳ぐらいの私なら、皆様の反対を押し切ってでも参加していると思います 笑
過去のことを後悔することもありますが、「ああいうことがあったからこそ」と思うこともあります。)
ご参考になれば幸いです。
――長々と書いてしまいましたが、私も「もう連絡ない」に賭けます 笑
570ポイント を手に入れた。
|
|
|
|
|
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: 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: 未来のプログラマー ..ぴよぴよ(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: 未来のプログラマー ..かけだし(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: がくせい ..ぴよぴよ(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,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: すいそ ..ぴよぴよ(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: 初級者 ..初心者(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: シエル ..熟練のプログラマー(46,554ポイント)
Date: 2010/08/10(火) 22:06
No:58658
|
|
Title: Re:WinAPI32で、3次元グラフを作る
|
|
どうやら以前までは全角だったようですね。
追記:
いつの間にか熟練のプログラマーに。。
まだ初級者レベルなんだけどなぁ。 
11ポイント を手に入れた。
|
|
|
|
|
Name: HK ..初心者(5,361ポイント)
Date: 2010/08/10(火) 22:14
No:58663
| 解決!
|
Title: Re:WinAPI32で、3次元グラフを作る
|
|
本当ですね。
ありがとうございました。
2倍のポイントを手に入れた! 22ポイント を手に入れた。
|
|
|
|
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ポイント を手に入れた。
|
|
|
|
|