Windowsゲームプログラミング 質問スレ
■ このスレッドは過去ログ倉庫に格納されています
0001うゆ ◆vvvK3Fcqdg
2008/11/06(木) 21:28:45ID:lNn2skuQ【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
「ググれ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。
【 質問する香具師 】
・ どんな事で躓いているのか明確にしる。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書け。
0002名前は開発中のものです。
2008/11/06(木) 21:30:16ID:lNn2skuQ/ / ハ 「 ヽ、 、 \ \へ `ヽゝ
/ ノ / /´ \ \ ヽ ヽ 、 ヽ \\ } }
/イ / / / ,| ヽ ヘ、 ヽ } ヘ l ヽ ト、 \イ ノ
,/ / / / l | l ヽ 、\ }_ェl,,ュ_l_ l ハ l \ `゙ ヽ
/ / / l l l | l ト、\_ヽ´lノ イ `/l _lヘ_l_ ヽヘ \
,/ l / l l l l | ,.k | `ー-ゝソ r _,.= ._ ソyハヽ`Y }ヽ 、 }、
| l l l l l l ヘイ ゝノ ≠" ̄`゙ |l l人 } l l }/丿
| i | トヘゝ ト、 rメ r _二_ 〃〃 |l l lイ / / /
| l l l \j、ゝィ'、 ≠ ̄` 丶 . - =y、 ノj} l l | ∧{ /
ヘ ハ 、l l / /|ハ ′〃 , ´ l ハノ lリ lヘ(
トイl l {八l| ヘゝ く / // / ィ l丿 Y >>1 乙♪
| l l l\| l "、 丶._ / /ィ イ´ノノ
| ヘ ヽ ハルァl ヽヘ、  ̄ / |从/
l ヘY 、ヽ_ル‐-、廴_≧==ェ-、-イ |
∨ヘ ト'/ ‐、: : l`ヽ二トミーニ._二 | __
\ベ/ : : :\: l \ `゙´ ̄~ ̄. :/
`゙/ : : : : : : : l \ \ .,,_.: : : : : /
/´ : : : : : : : : : | ヽ、ヽ ー=: : /`ー--‐、
/ /: : : : : : : : : :l \ / イ `)\: : : }
/゙/: : : : : : : /l: : : : :| ∨ メ、ヘ : :|
/ : : : : : : :): }: : : / /´/ヘハ: :l
‐'´ : : : : : : : : : : l: / l lο: \ : {
: : : : : : : : : : : : l | |:. :. ゙l: `l
\ : : : : : : : : : : : : :{ l l:. :. | : : \
/\ : : : : : : : : : : : : : : :| \ \:. . / : : : : |
0003名前は開発中のものです。
2008/11/06(木) 21:45:18ID:MY0vkdOy0004名前は開発中のものです。
2008/11/07(金) 11:26:17ID:zpZ6H2po0005名前は開発中のものです。
2008/11/08(土) 02:44:21ID:HuLbUvGnグラフィックの表示まで分かれば十分作れると思う。
まあ、本気で勉強すれば半年で、物分りの悪い人でも1年やればできると思うよ。
多分、以下のソースがなにやろうとしてるか分かれば制御文については大丈夫だと思う。
(もちろん実行しないで。2分ぐらいで作ったんでscanf使っててスマソ)
#include<stdio.h>
void main(void)
{
int a,b,i,j
a=1;
b=0;
i=0;
scanf("%d",&j);
while(i<j)
{
switch(i%2)
{
case 0:
a+=b;
printf("%d\n",a);
i++;
break;
case 1:
b+=a;
printf("%d\n",b);
i++;
break;
}
}
}
0006名前は開発中のものです。
2008/11/08(土) 02:46:36ID:HuLbUvGnX方向120、Y方向100のマップがあったら
$define MAPX 120
$define MAPY 100
$define MAP_SIZE MAPX*MAPY
int main(void) {
int map[MAP_SIZE];
int x=0,Y=0;
for(i=0;i<MAP_SIZE;i++) map[i]=0;
// もし X:54 Y:33 の位置に1を代入したければ
x=54; y=33;
map[x+(y*MAPX)]=1;
}
でいいんだよね??
2次元使ったほうがいいかいな?
76 名前:名前は開発中のものです。 投稿日:02/08/11 23:35 ID:YyqnVN0I
>>73
サイズが大きかったり可変長だったりすると配列ではなくalloc系で取得する
ことになるだろうし、1次元のほうがいいとおもう。
77 名前:名前は開発中のものです。 投稿日:02/08/12 14:35 ID:???
>>76
callocだと0クリアしてくれるから便利だよな
0007名前は開発中のものです。
2008/11/08(土) 02:51:52ID:HuLbUvGnhttp://pc11.2ch.net/test/read.cgi/gamedev/1020417733/
110 名前:名前は開発中のものです。 投稿日:03/05/29 11:44 ID:xadUaM2+
まともだよね
Cがテーマだったりすると厨房は書きこまないのかな
0008名前は開発中のものです。
2008/11/08(土) 02:58:07ID:dxRdOPSU2次元のデータを1次元配列で管理しようとするのは、
俺みたいな昔の貧乏性のプログラマだけでいい。
斜め移動でも座標計算1回で済むとか、そんな貧乏臭い発想。
コンパイル時にサイズ不定でも、簡単なラッパ作ればいい。
2次元のものは2次元のまま扱った方が、デバッグもしやすい。
0009名前は開発中のものです。
2008/11/08(土) 09:53:33ID:UXTY631e『延々と西に向かってたら、いつのまにか北極に立っていた』
な…、何をいっているのかわからねーと思うが(ry
0010名前は開発中のものです。
2008/11/10(月) 07:44:57ID:qLM/iweq1次元でも2次元でもバイナリ的には同じじゃん。
ただ表記方法が異なるだけ。
アクセススピードも同じだから、好きな方使えばいい。
0011名前は開発中のものです。
2008/11/10(月) 18:09:32ID:sl4Agbo8多次元のメモリの確保、開放は少しややこしいけど、
ライブラリとして4次元ぐらいまで作っておけば便利。
0012名前は開発中のものです。
2008/11/11(火) 07:30:30ID:Cky45WKB日本語わかる?
0013名前は開発中のものです。
2008/11/11(火) 09:46:35ID:sZyTNaq50014名前は開発中のものです。
2008/11/11(火) 22:02:10ID:v37PimrEブロックとの当たり判定でボールがブロックとぶつかった際、本来跳ね返らなければいけないのに
時々跳ね返らず貫通して進んでしまうことが起きてしまいます、貫通弾はまだ書いてないのに……
どうしたらいいのでしょうか
言語は基本C、クラスとか途中で変数宣言とかちょっとだけC++入ってるかも、DxLibを使用しています
肝心の当たり判定の部分のソース
for(int i=0;i<BlockX;i++){
for(int s=0;s<BlockY;s++){
if(BlockFlag[i][s]){
if(ShellX>=LeftEdge+35*i-ShellR && ShellX<=LeftEdge+35*(i+1)+ShellR){ //X範囲の判定
if(ShellY>=UpEdge+20*s-ShellR && ShellY<=UpEdge+20*(s+1)+ShellR){ //Y範囲の判定
BlockFlag[i][s]=0;
ShellVX*=(-1);
ShellVY*=(-1);
}
}
}
}
}
0015名前は開発中のものです。
2008/11/11(火) 22:04:00ID:v37PimrE・BlockX、BlockY :ブロックがx・y軸に最大いくつ並んでいるか
・BlockFlag[][] :ブロックが存在しているかいないか、0以外で存在
・ShellX、ShellY :弾のx・y座標
・ShellR :弾の半径
・LeftEdge、UpEdge :ブロック崩しの画面の左端、上端の位置
・ShellVX、ShellVY :弾のx・y速度
当たっているのが縦からなのか、横からなのかの判定がどうにもわからなかったので
当たったらx・y速度両方反転するようにしてしまっています
よければその判定方法も教えてください
宜しくお願いします
0016名前は開発中のものです。
2008/11/11(火) 22:07:21ID:z2MnAfhy0017名前は開発中のものです。
2008/11/11(火) 23:33:50ID:v37PimrE移動前と移動後の間も含めて接触判定……って
いまいちピンと来ない、どういうことでしょうか?
0018名前は開発中のものです。
2008/11/12(水) 01:01:19ID:M3s12QpRボールとブロックの距離が、
ボールの(1 フレームの)移動距離よりも短いとき、
ボールはブロックに衝突することなくすり抜けしまう。
対処方法として、
ボールの移動前後を結ぶ線分との交差判定を行う
ことが挙げられる。
0019名前は開発中のものです。
2008/11/12(水) 06:00:58ID:xaKS9jsU> ShellVX*=(-1);
同時に2つのブロックに接触すると元に戻りそうな嫌なコードだ
0020名前は開発中のものです。
2008/11/12(水) 10:40:33ID:kFb9KO8q>>19でも指摘されてるけど、2つのブロックに同時に触れた場合は
移動方向が元に戻るから貫通するよ。
だから「ShellVY*=(-1);」の後に「break;」を入れれば
とりあえず貫通するバグは無くなる。
でもそもそも判定ロジックが間違ってるので、全部書き直さなきゃダメ。
当たった部分が縦の面か横の面かの判定をしなきゃまともに跳ね返らない。
前フレームの玉の位置と現在の位置を線で結んで、各ブロックの
4つの側面のどこと交差しているかを判定する必要がある。
横面と交差してるならYだけ反転、縦面と交差してるならXだけ
反転させる。
玉のスピードが速いと、複数のブロックと同時交差する場合もある。
その時は一番玉に近いブロックとの判定だけに絞り、玉の位置も
そのブロックに接触する直前のポジションまで移動させる。
002114
2008/11/12(水) 15:58:41ID:58FrgqUcしかしどういうソースを書けばいいのかがまるで思いつかない……
いったいどういしたらいいのでしょうか?
0022名前は開発中のものです。
2008/11/13(木) 09:45:19ID:KTGSzFRwベクトルが理解できてないみたいだね。
まずは数学の勉強から始めないと。
線分交差の判定はここを参考にしてみたら?
http://www5d.biglobe.ne.jp/~tomoya03/shtml/algorithm/Intersection.htm
002314
2008/11/14(金) 05:07:34ID:wWFUvlwzありがとうございます
しかし読んでみたはいいのですがそれをどう組み込んでいいかがやっぱり思いつきませんでした
なのでがんばって自己流で判定組んでみたら
「○○.exe の 0x0056e0b6 でハンドルされていない例外が発生しました: 0xC0000094: Integer division by zero」
とか出されてしまいました、一体これはどういうことなんでしょうか?
002414
2008/11/14(金) 05:14:12ID:wWFUvlwzint ShellAX, ShellAY, ShellXT, ShellYT;
//xが次のエリアに到達するまでの時間
if(ShellVX==0){ //分母が0防止
ShellXT=0;
}else{
if(ShellVX>0){ //右に変化中
ShellXT=(35-(ShellBX%35))/ShellVX;
}else{ //左に変化中
ShellXT=(-1)*(ShellBX%35)/ShellVX;
}
}
//yが次のエリアに到達するまでの時間
if(ShellVY==0){ //分母が0防止
ShellYT=0;
}else{
if(ShellVY>0){ //下に変化中
ShellYT=(20-(ShellBY%20))/ShellVY;
}else{ //上に変化中
ShellYT=(-1)*(ShellBY%35)/ShellVY;
}
}
ShellAX=ShellBX/35;
ShellAY=ShellBY/20;
002514
2008/11/14(金) 05:14:58ID:wWFUvlwzif(ShellXT<ShellYT){ //Xのエリアが先に変化
if(ShellVX>0){ //右方向に突入
if(BlockFlag[ShellAX+1][ShellAY]){ //突入した先にブロックが存在
BlockFlag[ShellAX+1][ShellAY]=0;
ShellVX*=(-1);
ShellX=35*(ShellAY+1); //エリア突入時の境界線へ移動
ShellY=ShellBY+(ShellVY/ShellVX)*(35*(ShellAY+1)-ShellBY); //エリア突入時にyが進んだ分だけ増加
break;
}else{ //突入してもなかったよ
ShellAX++; //判定を次のエリアへ移行
ShellXT+=35/ShellVX; //次のエリアへの突入時間加算
}
}else{ //左方向に突入
if(BlockFlag[ShellAX-1][ShellAY]){ //突入した先にブロックが存在
BlockFlag[ShellAX-1][ShellAY]=0;
ShellVX*=(-1);
ShellX=35*ShellAX; //エリア突入時の境界線へ移動
ShellY=ShellBY+(ShellVY/ShellVX)*(35*ShellAX-ShellBX); //エリア突入時にyが進んだ分だけ増加
break;
}else{ //突入してもなかったよ
ShellAX--; //判定を次のエリアへ移行
ShellXT=35/ShellVX; //次のエリアへの突入時間加算
}
}
002614
2008/11/14(金) 05:15:41ID:wWFUvlwzif(ShellVY>0){ //下方向に突入
if(BlockFlag[ShellAX][ShellAY+1]){ //突入した先にブロックが存在
BlockFlag[ShellAX][ShellAY+1]=0;
ShellVY*=(-1);
ShellY=20*(ShellAY+1); //エリア突入時の境界線へ移動
ShellX=ShellBX+(ShellVX/ShellVY)*(20*(ShellAY+1)-ShellBY); //エリア突入時にxが進んだ分だけ増加
break;
}else{ //突入してもなかったよ
ShellAY--; //判定を次のエリアへ移行
ShellYT+=20/ShellVY; //次のエリアへの突入時間加算
}
}else{ //上方向に突入
if(BlockFlag[ShellAX][ShellAY-1]){ //突入した先にブロックが存在
BlockFlag[ShellAX][ShellAY-1]=0;
ShellVY*=(-1);
ShellY=20*ShellAY; //エリア突入時の境界線へ移動
ShellX=ShellBX+(ShellVX/ShellVY)*(20*ShellAY-ShellBY); //エリア突入時にxが進んだ分だけ増加
break;
}else{ //突入してもなかったよ
ShellAY++;
ShellYT+=20/ShellVY;
}
}
}
//抜け出し要素判定
if(ShellAX==ShellX/35||ShellAY==ShellY/20){ //判定エリアが既にボールが来たことになっている場所とおなじなら
break;
}
}
0027名前は開発中のものです。
2008/11/14(金) 07:16:14ID:EfjKu0FE>>25>>26にある除算全てが該当するな
アルゴリズムまでは読んでないのでほかの人に任せた
002814
2008/11/15(土) 03:43:14ID:NhltAbHOとりあえず
ShellXT<ShellYT のところを
ShellXT<ShellYT && ShellXT!=0 にしてみたら動いたは動いたのですが
ボールがあらぬ挙動をします
当たっているのに当たった動きをしなかったり、突然わけのわからないところへ移動したり
原因がさっぱりです……
一応上記の判定は、画面を35*20のエリアに分けて、今いるエリアから別のエリアに移動したら、
そこにブロックが有るか無いか判定、という形で組んでみています
(今更ですが、ブロックを35*20でやっているので、ですね)
もしかしたらこのあたり判定でなく、>>20の方法でやらなければダメなのでしょうか
でしたら、よければそのソースを教えていただけませんでしょうか?
0029名前は開発中のものです。
2008/11/17(月) 07:17:05ID:Pi/WdcU7先にベクトルの勉強しろって。
0030名前は開発中のものです。
2008/11/17(月) 08:29:32ID:4WZ1RBFj少なくともどちらに跳ね返すかの判定はいるだろう
ボールの速度がブロックの厚みを超えないようにするだけでだいぶ計算量はへるし
0031名前は開発中のものです。
2008/11/17(月) 15:27:54ID:p5mj6MH5間違ってはいないよ。14の考え方は論理的には合っている。
自分で思いついた方法なら、そのまま突き進むのを俺は薦める。
とりあえず、問題がありそうな点
・XT,YTはintだと精度が足りない(AX,AY以外は全てfloatの方が望ましい)
・「左方向に突入」の部分のShellXT=35/ShellVX;は+=の間違い
・XT,YTが1フレーム分の時間を超えていたらループから抜ける必要がある
0032名前は開発中のものです。
2008/11/19(水) 06:25:45ID:pWNBSaSF0033名前は開発中のものです。
2008/11/20(木) 02:14:48ID:njtRhxXkこれでいんじゃね?
CurShellVX = ShellVX;
CurShellVY = ShellVY;
for(int i=0;i<BlockX;i++){
for(int s=0;s<BlockY;s++){
if(BlockFlag[i][s]){
if(ShellX>=LeftEdge+35*i-ShellR && ShellX<=LeftEdge+35*(i+1)+ShellR){ //X範囲の判定
if(ShellY>=UpEdge+20*s-ShellR && ShellY<=UpEdge+20*(s+1)+ShellR){ //Y範囲の判定
BlockFlag[i][s]=0;
ShellVX = -CurShellVX;
ShellVY = -CurShellVY;
}
}
}
}
}
0034名前は開発中のものです。
2008/11/20(木) 07:27:59ID:ILiqIbsP来た方向にそのまま戻ってくだけじゃねーかよw
反射させろよw
0035名前は開発中のものです。
2008/11/20(木) 10:05:54ID:4yNvzVLI0036名前は開発中のものです。
2008/11/20(木) 17:22:35ID:rpm+4CxU0037名前は開発中のものです。
2008/11/20(木) 17:55:39ID:2O47CO/r0038名前は開発中のものです。
2008/12/04(木) 15:02:10ID:tF31gb+s\Program Files以下にsavedataを作るのはまずいのでしょうか?
0039名前は開発中のものです。
2008/12/04(木) 15:13:47ID:f93IhlbPまずいよ
fopen( )だと NULL が帰ってくるから
0040名前は開発中のものです。
2008/12/04(木) 15:15:55ID:+ofge7Nrプレイする人の環境によって、そのまま保存されたりVirtualStoreディレクトリに
自動的に置き換わったり、警告出たり出なかったりと、動作がまちまちになるからねえ。
0041名前は開発中のものです。
2008/12/04(木) 19:26:59ID:tF31gb+ssavedataどこに作るか悩みますね。。
どこに作るのが一般的なのか調査してきます。
こちらでもアドバイスいただけると幸いです。
0042名前は開発中のものです。
2008/12/04(木) 23:28:46ID:L0NPB3+NCSIDL_APPDATAのが適切かな。
0043名前は開発中のものです。
2008/12/05(金) 09:49:13ID:tEf/k/KB他のアプリでも使う可能性がある場合はMyDocument、専用ならAppDataだな。
004441
2008/12/05(金) 18:35:25ID:7X+FAXTmありがとうございます。やはり結論としてはApp dataに落ち着きそうですね。
0045名前は開発中のものです。
2008/12/05(金) 21:38:25ID:j0PqzKS1普通の3D→2Dの座標変換(x、y、z座標を持った物体の画面上の表示場所x、yを求める)
の計算方法は分かるんですが、
今分からなくて知りたいのはラスタースクロールで奥行きを出すときで、
あるY座標に来たときにXをどれだけずらせばいいかを算出する計算方法です。
具体的に言えばストリートファイター2の地面の横スクロール(立体感がついている)や、
古くはマグマックスの地上面の地表みたいな表現です。
簡単に説明できなければお薦めの参考図書を紹介してくれるのでも良いです
お願いします
0046名前は開発中のものです。
2008/12/06(土) 02:19:07ID:H7gLDNRDなんでもかんでも方程式で出さないと気がすまないのか?
0047名前は開発中のものです。
2008/12/06(土) 02:28:57ID:x2Ho2N6O0048名前は開発中のものです。
2008/12/06(土) 07:30:02ID:EvnFjAdZ答えられないなら無理にレスしなくて結構です
>>47
どういうことですか?
適当にやったらまったく立体的に見えなくてダメでしたので…
0049名前は開発中のものです。
2008/12/06(土) 11:32:04ID:KLvL9x5Z背景の中心、地面の一番奥から一番手前まで直線が引いてあるとして
一番手前の地面を左右にスクロールさせると、その直線は傾く。
けど曲線にはならない。直線のはず。
つまり正比例で座標ずらせばいいってだけじゃないのかな。
それと言っておくが
>答えられないなら無理にレスしなくて結構です
こういう事を言うやつはよくいるが、「自分の性格は悪いです」って公言してるようなもんだから
誰も回答してくれなくなるぜ。
0050名前は開発中のものです。
2008/12/06(土) 11:57:50ID:je8dQCcg"3DRPGプログラミング" この本を買って読んでみなさい。
0051名前は開発中のものです。
2008/12/06(土) 19:52:48ID:4OvlXTAb文句たれるバカが沸くから
結局ユーザに選ばせるしかない
0052名前は開発中のものです。
2008/12/07(日) 08:52:11ID:GBSyFyEZ>>48
スト2のリュウステージをラスタースクロールのみで再現しようとするなら、
まず板の継ぎ目がある一点に収束するように引いておく(画面中心点が妥当)。
その点からの相対Y座標を使い、
各ラインのスクロール量X = 立ち位置ラインのスクロール量X * 各ライン相対Y / 立ち位置相対Y
でいいんじゃないかな。
ただ上記の処理だと半画面分スクロールしただけでもドットがボロボロになるので、
普通は拡大縮小処理も一緒に使うと思うよ。
この場合、板は普通に長方形で書いておき左右は均一に、上下は奥に行くほど
小さくなるような雰囲気で色を塗り、
各ラインの拡大率X = 各ライン相対Y / 立ち位置相対Y
で、画面の垂直中心線上のスクロール量が同一になるように補正する。
0053名前は開発中のものです。
2008/12/07(日) 09:12:51ID:NKrbC59Oきめ細かい解説ありがとうございます。
ストIIは実際拡大縮小もやっているのでしょうかね?
0054名前は開発中のものです。
2008/12/07(日) 18:46:01ID:49VdVrcFそれで、修正のリクエストがあったときに
物理法則がどうのこうのと力説したがる
0055名前は開発中のものです。
2008/12/09(火) 07:07:30ID:+Z5nbwy8ツクール派?
0056名前は開発中のものです。
2008/12/09(火) 10:32:23ID:pmbjGPY8いちいち質量がいくつで、重力係数がいくつだから・・・・
とかやりだすことだろ
0057名前は開発中のものです。
2008/12/09(火) 10:58:49ID:UXQm+qSaどんなに不自然なジャンプでもそれによってゲーム性にオリジナリティが出るんだからそれでいい。
だが3D表示をするにあたって計算が適当じゃあ3Dに見えないだろ
問題が全く別だよ
トンチンカンな会話すんな
0058名前は開発中のものです。
2008/12/09(火) 11:55:35ID:HsEnKH5F0059名前は開発中のものです。
2008/12/09(火) 14:25:54ID:6m6wEUZw単純に奥のものが手前にあるもより遅く動いてるだけ
どれくらい遅くするかは作った人間のセンス
たぶん何度も係数をいじって自分の感覚で
ベストと思われる動きでフィックスしてるはず
この感覚が万人に受け入れられない人をセンスのない人という
0060名前は開発中のものです。
2008/12/11(木) 07:02:29ID:5iwyeWDLそれを聞いてるんじゃないの?
具体的な係数を聞いてるわけじゃないし、そこはAとかBとかでいいじゃん。
0061名前は開発中のものです。
2008/12/18(木) 11:30:02ID:xmq4VfJCVramの推奨スペックはいくつにすべきか?
ご意見伺いたいです。
0062名前は開発中のものです。
2008/12/18(木) 12:25:16ID:5uBOIM3K3DじゃなけりゃWindowsが使えるだけあればいいよ。
0063名前は開発中のものです。
2008/12/18(木) 12:43:11ID:NjDBhxVW2Dなら800*600*32ビット1画面で2Mバイト
裏画面入れて4Mバイトあればいいんじゃない
0064名前は開発中のものです。
2008/12/19(金) 05:45:59ID:/GzaBikq現に画面が表示されていれば、VRAM容量は関係ない。
画面表示用バッファは、すべてメインメモリ(DIBなど)に取れるから。
0065名前は開発中のものです。
2008/12/19(金) 07:18:28ID:5Lxw8rsTVRAMゼロでもかまわないよ。
0066名前は開発中のものです。
2008/12/19(金) 09:16:19ID:aOn2CrS20067名前は開発中のものです。
2008/12/19(金) 17:59:20ID:gIPakjTtメインメモリ共有だし。容量だけなら128MB〜512MBくらいは普通にある。
0068名前は開発中のものです。
2008/12/19(金) 22:25:50ID:VMJ9+Wbr2Dゲーなら問題なし。
3Dなら、ユーザーが大目のMMORPGを参考にするといいと思う
0069名前は開発中のものです。
2008/12/19(金) 22:26:25ID:VMJ9+Wbr大目の日本のMMORPGを
0070名前は開発中のものです。
2008/12/20(土) 00:34:45ID:EllKojph描画周りにアクセラレーション効かせるのってあんまり一般的じゃないの?
0071名前は開発中のものです。
2008/12/20(土) 00:55:24ID:CbJUTGDn0072名前は開発中のものです。
2008/12/22(月) 00:06:41ID:gFPzk4ahどのみちライトユーザーにVRAMとか行っても理解してもらえない。
奴等は自分のマシンのスペック分からずにで、動いたかどうかしか興味が無い。
007361
2008/12/22(月) 12:28:11ID:fcAyGbxPレスおそくなりすいません。カキコできなくて。
何作るかによりますね。すいません。2Dゲーで
Flashで作ったアニメデータがバリバリと動く予定です。
DirectX使っていますので、Vramの確保は必須かもと思っていました。。
ライトユーザーに理解してもらえなくてもいいんですが、
作り手としてってことでしょうか。
0074名前は開発中のものです。
2008/12/23(火) 02:14:34ID:vL1qdlBE72書いた者だけど、質問の意図は分かります。
ただ、どれだけ気にしてもやっぱり動かない環境は残ってしまって、
そういう環境のユーザーほどマシンスペック分からずに苦情出してくるからな〜
すんません。個人的トラウマでした。
否定的な意見はやめて、
DirectXなら、使用するDirectXのバージョンがそのままマシンの世代を表しているって
考えてもいいんじゃないでしょうか?
例えば、DX7使用ならVRAM8MB、DX8ならVRAM32、とか。
あ、値は適当ですが。
0075名前は開発中のものです。
2008/12/23(火) 20:12:05ID:NOdX60e00076名前は開発中のものです。
2008/12/23(火) 20:41:02ID:DrL02hk40077名前は開発中のものです。
2008/12/24(水) 13:55:34ID:ir5LUNRvDirectDrawなら
IDirectDraw::GetCaps( )で
http://msdn.microsoft.com/ja-jp/library/cc353808.aspx
dwVidMemTotal
ビデオ メモリの合計容量。
007873
2008/12/26(金) 16:23:02ID:YwwBT0Kvどうもサンクス。
トラウマ…なんとなくわかります。
0079名前は開発中のものです。
2008/12/31(水) 14:01:10ID:VvNRRwGlコントロールをドラグ&ドロプ、リリスしたとき、
定位置に整列する(磁石に引きつけられるように)コードの
せめて考え方、ヒントを教えて頂けないでしょうか
0080名前は開発中のものです。
2008/12/31(水) 14:11:55ID:Zi1V94lh0081名前は開発中のものです。
2008/12/31(水) 14:12:09ID:sicDYG8u0082名前は開発中のものです。
2008/12/31(水) 14:25:51ID:M5esy22P線が引ければ途中のXY座標もわりだせるだろう。
0083名前は開発中のものです。
2008/12/31(水) 14:42:28ID:Y1/xuelj移動前の座標 (sx,sy)
移動後の座標 (ex,ey)
Aパターン
x+=((ex-sx)/m) ;
y+=((ey-sy)/m) ;
単純に終点へのベクトルを座標に足していく
mの値が大きければ遅く小さければ速く移動
x+=((ex-x)/m) ;
y+=((ey-y)/m) ;
とすると遠いときほど早く近いときほど遅くなり磁石っぽい
Bパターン
x=sx+(ex-sx)*m;
y=sy+(ey-sy)*m;
mを0から1.0へ増やす
mの値にsin(0)〜sin(π/2)を使うと磁石っぽい
Aとの違いは始点と終点の距離にかかわらず同じ時間で終点に到達する
0084名前は開発中のものです。
2008/12/31(水) 20:18:33ID:Zi1V94lh磁石は距離が近くなるほど磁場が強くなるので、遠いほど遅く、近くなると速くなる。
つまり真逆。
0085名前は開発中のものです。
2009/01/04(日) 15:53:08ID:PprE941C参考にしたいのですが、ググり方が悪いのか出てきません
ソースの置いてある場所があったら教えて頂きたいのですが、ないですかね
0086名前は開発中のものです。
2009/01/04(日) 17:35:22ID:VQhzW2V4ぐぐってパクるだけで分け与えなければどこにもなくて当たり前じゃないですかね
馬鹿ですかね
0087名前は開発中のものです。
2009/01/05(月) 01:19:54ID:HsIAylDpガキ臭い煽り方だな
なんか嫌なことでもあったのか
0088名前は開発中のものです。
2009/01/06(火) 13:57:16ID:24x5pO5Z0089名前は開発中のものです。
2009/01/06(火) 14:37:31ID:ZJKN10wA「どうすればいいのか、どうすればいいのか、と考え悩みぬいた者でなければ
私にもどうしようもない」
最初から他人をアテにしてるようじゃダメってことだな。
0090名前は開発中のものです。
2009/01/06(火) 19:50:41ID:5KaPAE6Y0091名前は開発中のものです。
2009/01/06(火) 21:55:02ID:3TYaYHJU格闘げーはアニメーション画像が命みたいなところがあるから、
素材の用意が大変過ぎてプログラミングの教材には向かない罠。
0092名前は開発中のものです。
2009/01/06(火) 22:09:59ID:kH8rEgPB逆にいえばアニメーション、当たり判定、キー入力ができれば作れるともいえる
キー入力はちょっと特殊だけどそれ以外はインベーダーゲームの応用
0093名前は開発中のものです。
2009/01/06(火) 22:15:01ID:NsliiIma0094名前は開発中のものです。
2009/01/07(水) 08:43:07ID:tOeiWdUq0095名前は開発中のものです。
2009/01/07(水) 16:52:39ID:F0TH9wEI0096名前は開発中のものです。
2009/01/07(水) 17:03:09ID:DnzfbcT/アレのすごい所って主に物理演算の部分だろ?
まったく別問題な希ガス
0097名前は開発中のものです。
2009/01/07(水) 17:10:42ID:F0TH9wEIあの程度なら余裕なはず
0098名前は開発中のものです。
2009/01/07(水) 17:14:31ID:F0TH9wEIプログラムは出来るけどCGに関してはまったくの素人なんで
0099名前は開発中のものです。
2009/01/07(水) 19:51:09ID:ZchRr+VSモデリングとアニメーションツールの勉強から始めなきゃならないじゃん。
プログラミングの勉強としてはすっごく遠回り。
0100名前は開発中のものです。
2009/01/08(木) 02:23:25ID:OwvAnpBEとりあえずBlenderでも弄ってみたら
質は遠く及ばんなりに、基礎やクオリティ上げる定番手法は一式遊べるよ
0101名前は開発中のものです。
2009/01/08(木) 13:45:17ID:NsMjn5lDデザイナーと会話できないからな
0102名前は開発中のものです。
2009/01/09(金) 00:10:10ID:xgPo70G10103名前は開発中のものです。
2009/01/09(金) 00:31:42ID:venL3ic3CG板で聞けば?CGの話なんだし
0104名前は開発中のものです。
2009/01/09(金) 02:32:56ID:2uf5nwF0つ>>96
表示だけならDirectXでもできるぞ。他の人間も指摘してるとおり
データ(モデル・モーション・マテリアル(まぁシェーダーも含むが))を用意できればの話だがな
動きについては物理シミュ用のライブラリ(bulletとかPhysX)でもひっぱってきたほうが楽だな
ただアレの爆発エフェクトを真似るためには簡易なCFDのコードが必要だが、ゲーム用のフリーの
ライブラリでそういう機能を提供してるものがあるのかどうかは知らん
なければ適当に2D格子用意して格子気体法とかCIP法の劣化版みたいなコードを組めばいい
どうせシミュったって何かを厳密に再現する必要はないし、支配方程式が導出できる必要も無い
それっぽい流れ場のアニメーションができればなんでもいい
>で具体的にどうやればあんなクオリティのCGが作れるのか知りたい
つ>>103
データを作る部分の話はCG板で聞いたほうがいいんじゃね
ティーポットとかトーラスとかシリンダに毛とか生やすだけでおkならD3DXでいけるけどな
0105名前は開発中のものです。
2009/01/09(金) 03:03:09ID:xgPo70G1モデルとかそういう問題なの?
ただの無地の球体でもレイトレーシングのアルゴリズムで全然違うでしょ
レイトレーシングの仕方なんて聞いてないんだよ
同じ効果をDirectXで高速に描画出来る方法があるのかって話をしてるの
0106名前は開発中のものです。
2009/01/09(金) 03:06:00ID:xgPo70G10107名前は開発中のものです。
2009/01/09(金) 03:22:44ID:2uf5nwF0おかしいな。分かるならCUDAとか使ってるだろうし
GLSLやHLSLでサクサクと俺シェーダー組めてもいいはずだが・・・
リアルタイムなCFDをやる場合って差分スキームはいつもナニ使ってるの?
後学のために教えてください
0108名前は開発中のものです。
2009/01/09(金) 08:06:03ID:xgPo70G1物理演算をリアルタイム処理する人しかこの世にいないと思ってんの?
0109名前は開発中のものです。
2009/01/09(金) 08:10:48ID:xgPo70G1シェーダー分かったらなんなんだ
超リアルなCGが書けるのか?書けないだろ?
0110名前は開発中のものです。
2009/01/09(金) 08:22:52ID:xgPo70G1PS3でもさすがにフルHDをレイトレーシングするような能力は無い
君の大好きなCUDAやGLSLを使ってもPCでは到底無理なの
PS3はDirectXベースに作られてるんだから当然同じことがPCでも出来るだろうと思ってるわけ
レイトレーシングはあり得ないのでどうやってんのかを知りたいの
物理演算とか誰も聞いてないから
0111名前は開発中のものです。
2009/01/09(金) 08:49:59ID:9nYZuqdQ0112名前は開発中のものです。
2009/01/09(金) 12:20:56ID:FD9CF3VW0113名前は開発中のものです。
2009/01/09(金) 13:18:37ID:i9tzRBGbhttp://alfalfa.livedoor.biz/archives/51415753.html
0114名前は開発中のものです。
2009/01/09(金) 18:15:29ID:xgPo70G10115名前は開発中のものです。
2009/01/09(金) 20:40:58ID:GzTmK6ph0116名前は開発中のものです。
2009/01/10(土) 03:00:31ID:1Stepbtb0117名前は開発中のものです。
2009/01/10(土) 17:35:41ID:mQJ59Fn9で、リアルタイムレイトレーシングが無理だと判ってるなら
工夫して俺シェーダー積み上げるしかないのも判ってるんでしょ
リアルに見せるフェイク処理の引き出しを地道に増やすしかあるまいて
0118名前は開発中のものです。
2009/01/10(土) 20:43:58ID:BBJn1kSxハード的にDirectXベースというのは間違いでもないよ。
LBPに関しては、何か特別なレンダリング技術を使ってるわけじゃなく、
単にアートディレクションと、質感の設定が秀逸なだけだと思うけど、
「この部分の質感が」とか「この部分のエフェクトが」とか、
具体的に言わないと誰もわかんないんでは?
0119名前は開発中のものです。
2009/01/10(土) 21:37:42ID:VXNtlD0N>ハード的にDirectXベースというのは間違いでもないよ。
間違いを認めず、こういう恥の上塗りをする奴って、
いったい何を考えて生きてるんだろう?
ハッキリ言うが間違い以外の何ものでもない。
0120名前は開発中のものです。
2009/01/10(土) 21:47:52ID:cb8O919u0121名前は開発中のものです。
2009/01/10(土) 21:59:30ID:6nsF3ORJ0122名前は開発中のものです。
2009/01/10(土) 22:06:42ID:t9/hm2L8あまり人付き合いがなさそうな人に送る、座右の銘。
「土下座する、勇気」。
退く勇気は、がむしゃらに突撃する勇気よりも、大切なんだよ。
0123名前は開発中のものです。
2009/01/10(土) 22:10:51ID:6nsF3ORJ0124名前は開発中のものです。
2009/01/11(日) 20:03:10ID:X63+5W++0125名前は開発中のものです。
2009/01/11(日) 20:09:11ID:HfT5qRpCRSX叩くにはPSGLやlibgcmってライブラリを使う
シェーダ言語はCg
0126名前は開発中のものです。
2009/01/12(月) 01:15:34ID:wGDVqFsBlinuxについてるGlineというゲームを、
勉強がてら.netのC#で作ろうと思っているのですが、
できれば得点などのロジックをオリジナルに忠実に再現したいと思っています。
オリジナルのソースもしくは得点ロジックが出ているところってありますでしょうか。
0127名前は開発中のものです。
2009/01/12(月) 02:32:32ID:St/Xi0CEgnome-gamesってソースパッケージがあるはずだから
yumなりsynapticなりで探せ
その中に含まれてる
どうしてもみつからなかったらもう一度聞いて
0128名前は開発中のものです。
2009/01/12(月) 20:19:41ID:Ucs8+CZOそれを総合してDirectXって言うんだよ。
0129名前は開発中のものです。
2009/01/12(月) 20:52:24ID:XiJ3otEjお前の言っていることは、
PCがあったら、Linuxが動いていようがFreeBSDが動いていようが、
それを統合してWindowsだと言っているほど間抜けだぞ。
0130名前は開発中のものです。
2009/01/12(月) 21:16:19ID:bD3J7wUJファーレンハイトが懐かしいぜ
0131名前は開発中のものです。
2009/01/12(月) 21:18:31ID:sqS0O25/全部ウォークマンですね。
0132名前は開発中のものです。
2009/01/12(月) 21:34:42ID:tFvWI/5z0133名前は開発中のものです。
2009/01/12(月) 21:40:02ID:17ZETQ9SPS3の開発環境は既にDirectX対応してなかったけか、PhyreEngineで。
DirectXのAPIも実装済みで、OpenGLとDirectX、どちらでも好きな方を選べるとか。
0134名前は開発中のものです。
2009/01/12(月) 22:38:10ID:bD3J7wUJローレベルライブラリじゃなく、フレームワークにあたるエンジンだ
PC/XBOX版で下層エンジンにDirectXも選べるという構成のようだね
0135名前は開発中のものです。
2009/01/12(月) 22:59:42ID:r1loPmTT0136名前は開発中のものです。
2009/01/13(火) 23:52:00ID:31cKUcOq0137名前は開発中のものです。
2009/01/13(火) 23:55:09ID:IjMcH/Ql0138名前は開発中のものです。
2009/01/13(火) 23:55:48ID:UVAnUSa6ああ、髪が表示されないのは、レンダリングが遅いだけだから。
0139名前は開発中のものです。
2009/01/14(水) 00:26:48ID:Xhrp9vz4大阪証券取引所はOpenGLで動いているという事実
0140名前は開発中のものです。
2009/01/14(水) 09:51:30ID:ffiL9vPn・高度なRPG開発が可能な、完全無料のゲーム作成ツールです。
・製作者はなんと「モノリスフィア」やツクール2000で「シルフェイド幻想譚」などを製作した
SmokingWOLF氏だよ。
・雰囲気はRPGツクール2000に近い。RPGツクール2000で自作システムを作りこむ際に
不満だったところがいろいろ解消されていて、かなり自由度が高いです。ただし
その分初心者には難しいかも。すでにツクール2000で自作システムを組むのに
慣れた人や、RPGツクールでは物足りないけどプログラミングはちょっとという方にお勧め。
・作成したゲームは自由に配布したり、コンテストに投稿することも可能。
また本ソフトを持たない人でもプレイ可能!ファイル暗号化も完備してるよ!
・要望、不満点、バグ報告などなど書き込みお願いします。今もどんどん進化中です。
・それとマップやキャラなどのドット素材もじゃんじゃん募集中ですので
一度サイトにお越しくださいませ。
・このツールで作ったゲームをサイトで紹介してるから、ダウンロードしてどういう
ゲームが作れるのか見てみてね。
2ちゃん本スレ
http://pc11.2ch.net/test/read.cgi/gamedev/1229261856/l100
0141名前は開発中のものです。
2009/01/16(金) 20:27:23ID:2P1JjUIA0142名前は開発中のものです。
2009/01/26(月) 11:18:31ID:fNy7USfUHDC off,hdc;
PAINTSTRUCT ps;
hdc = BeginPaint(hWnd, &ps);//hWndは描画先のウィンドウはんどら
off = CreateCompatibleDC(hdc);
<offに対してBitBltやらなんたらかんたら>
BitBlt(hdc, -----, off, 0, 0, SRCCOPY);
EndPaint(hWnd, &ps);
でできると思ったのにうまくいかない。。
どこが悪いか指摘求む|・`)
0143名前は開発中のものです。
2009/01/26(月) 11:23:21ID:jYriVdypもししてないならば、1x1ドットのモノクロビットマップになってるんじゃないか。
0144142
2009/01/26(月) 14:32:33ID:fNy7USfUありがとう。
BitBltとかする前にCreateCompatibleBitmap(hdc, X, Y)したHBITMAPを
offにSelectObjectしたらできた。
HBITMAPは使用後Deleteしないと危ないってことも身をもって理解した。
0145名前は開発中のものです。
2009/01/26(月) 15:12:42ID:jYriVdyp大きさ変わらないなら、ウィンドウができた時に1つ作っておいて使いまわせる。
ウィンドウサイズが変わったら作り直して、ウィンドウ破棄の時に消す、とかね。
0146142
2009/01/27(火) 11:20:58ID:63/MDkS6WM_PAINTは無効にして、好きなときに再描画するようにしてるんだが、、まぁいいか)
再描画する関数が呼ばれるたびに作ってDeleteしなかったな。
タスクマネージャー開くとメモリ使用量のグラフがぐーんとのびてた)
1つを再利用する案、使ってみます(`・ω・´)
0147名前は開発中のものです。
2009/01/27(火) 11:46:12ID:g6Z0rQ8mBeginPaintがあったからだよ〜ん
0148名前は開発中のものです。
2009/02/06(金) 09:00:05ID:SU1u5PRJ複数のエンジンを搭載した宇宙船をエンジンの出力調整で移動させたいのですが
物理に不自由な人間なもんでまったくどうすればよいのやらこまっております
下の図の矢印のようにエンジンがついてると仮定して
←△→
□
←△□△→
↓
左上のエンジンと右下のエンジンの出力を上げると機体が回転するだろうなとはわかりますが
プログラムまでもってけないわけです
一応2Dでの運用を想定しております
複数の速度ベクトルを合成?するのかな
でも回転するとしたらどうすれば…
よくわかりません…orz
0149名前は開発中のものです。
2009/02/06(金) 09:32:08ID:IDvsYi6Yつ Amazon.co.jp: ファインマン物理学 (1): ファインマン: 本
http://www.amazon.co.jp/dp/4000077112
0150名前は開発中のものです。
2009/02/06(金) 12:07:05ID:f9/yfsRC0151名前は開発中のものです。
2009/02/06(金) 14:12:04ID:2FMS0uiB中心軸を1点にしておいて、そこを中心に
右上か左下に出力があるときは反時計まわり
左上か右下に出力があるときは時計まわり
移動はすべての出力のベクトルの和
これだけでそれっぽく動きそうな気ガス
0152名前は開発中のものです。
2009/02/06(金) 16:59:07ID:R0I8WLM/下の出力で上にずらす
両方の出力だと相殺されてずれない
でどう
0153名前は開発中のものです。
2009/02/06(金) 19:21:57ID:IDvsYi6Y0154名前は開発中のものです。
2009/02/06(金) 22:01:45ID:aGsbwcTW静止状態から真空無重力だと148の左上だけ出力した場合回転するんだっけ?w
0155名前は開発中のものです。
2009/02/06(金) 22:13:48ID:d5elOzBE操作が直感的じゃなくなってプレイヤーのストレスになりかねないから
嘘物理でいいんじゃねって話
0156名前は開発中のものです。
2009/02/06(金) 22:52:53ID:aGsbwcTW実装はそうだろうけど、知ってた方が、それを基本に考えられるから無駄にはならんと思うがw
148のを自分で組んでみようと思ったら154のが気になって止まったw
で、どうだっけ?w
0157148
2009/02/06(金) 23:19:27ID:SU1u5PRJごめんなさい、回転行列がわかりませんorz
>>151>>152
私も同じような考えにたどり着きました
必死に考え直した結果こうなりました
まちがってるかな?
ttp://www.dotup.org/uploda/www.dotup.org21184.png
中心:緑丸
エンジン:青丸
出力方向:紫矢印
エンジンの出力ベクトルを中心点とエンジンを結んだ線とその垂直線を座標としたベクトルに分割し
赤を回転用のベクトル、水色を移動用のベクトルに分ける
あとは回転と移動をそれぞれ計算すればOK?
すいません日本語にも不自由しているようですorz
0158名前は開発中のものです。
2009/02/06(金) 23:48:02ID:T8ShVnXbそれで合ってるよ。もっと正確に言えば、中心点ではなく重心。
あと、そこについてるのがロケットエンジンなら、普通は矢印は逆向きだな。
そこから真面目に回転速度を求めるには、「慣性モーメント」という知識が必要になる。
値は適当にでっちあげでいい。
0159名前は開発中のものです。
2009/02/10(火) 15:41:10ID:eV8ZtmO6ゲーム開発だとどちらが役に立ちますか?
0160名前は開発中のものです。
2009/02/10(火) 15:52:39ID:Xj3fFujS言語はC++のみ?
0161159
2009/02/10(火) 16:05:56ID:eV8ZtmO6微妙ですか;
どの言語で学びたいというのは,特に無いですが,
C++がコード書いてる量多いです.
VBは入門書通して読んだので簡単なアプリケーションなら作れる程度で,
C#はJavaに似てるから読めるってくらいで,書いたことはないです.
0162名前は開発中のものです。
2009/02/10(火) 16:12:06ID:Xj3fFujSMFCでゲーム部分で役に立つところは少ないと思うよ。素でAPI呼ぶのとかわらない。
どっちもウィンドウ作ったりイベントハンドラ使ったりするところは楽できるけど
そういうのを生かすゲームを作るのかどうかってとこだね。
言語とライブラリやフレームワークで選んで、それが.NETやMFCを使ってたら
それも覚えるって感じでいいんじゃないかな。
0163159
2009/02/10(火) 18:33:00ID:eV8ZtmO6深い部分の機能まで扱う訳じゃないんですね.
一冊買って読もうと思ってましたが,
Webで調べて動かしてみる程度にしようと思います.
ありがとうございました.
0164名前は開発中のものです。
2009/02/10(火) 21:26:47ID:jpQUb+L2C++にSDKがシンプルで案外楽なんじゃないかな。
描画や音でハードなことやろうとしたらDirectXやOpenGL/OpenAL使えばいいしね。
0165名前は開発中のものです。
2009/02/11(水) 12:06:33ID:4NJho4Vsゲーム本体作るなら、C++ + DirectX
ツール作るなら、.NET(C#)だな
0166名前は開発中のものです。
2009/02/12(木) 20:13:23ID:GF7pXsC2こういったものの具体的なアルゴリズムが書かれてある書籍を教えて下さい。
よろしくお願い致します。
0167名前は開発中のものです。
2009/02/12(木) 21:16:01ID:qYzhx+290168名前は開発中のものです。
2009/02/13(金) 03:30:08ID:YfvPS2XS普通に素のモデルを画面に表示できるようになれって話だな。
0169名前は開発中のものです。
2009/02/13(金) 10:16:54ID:XaGVfN4Qどういうことですか?
0170名前は開発中のものです。
2009/02/13(金) 14:18:20ID:n2spZu5F垂直同期てなんですか
フィルタなんですか
アルゴリズムなんですか
0171名前は開発中のものです。
2009/02/14(土) 17:18:16ID:sx6BcV1l一般的にどの関数使うんでしょうか?
あと、昔、DOSで作ってたころはVシンク割り込みでどうたらこうたら、ってやってたきがするんだけど、
これって今の液晶画面で計測できるもんなんでしょうか?
0172名前は開発中のものです。
2009/02/14(土) 17:43:59ID:9hSEub+0Windowsでは垂直同期の周期は環境によって全然違うので、
基本的には垂直同期に依存しないように作る。
0173名前は開発中のものです。
2009/02/15(日) 00:36:23ID:FJmkH997精度がミリ秒程度でよければ、timeGetTime。timeBeginPeriodで精度を上げるのを忘れずに。
高精度がいるなら、>>172
0174名前は開発中のものです。
2009/02/15(日) 00:41:57ID:brCH5Anb>>173
ありがとうございます。
多環境で同期をとるのにどの程度の精度が実際に必要かやってみないとわからないので、
教えていただいた関数をもう少し調べてやってみます。
0175名前は開発中のものです。
2009/02/15(日) 19:09:59ID:MYSF9VWqD3DRASTER_STATUS rs;
do{
pd3dDevice->GetRasterStatus(0, &rs);
・・・
}while(!rs.InVBlank);
とかやるといいらしい。
ループ内でスリープ入れないとCPU使用率が100%になっちゃうかな?
0176名前は開発中のものです。
2009/02/15(日) 21:23:34ID:A1rRuMYUMessageBoxがなぜか表示されない。グーグル先生曰く
WM_PAINTでBeginPaintとEndPaint処理をしてないからだと。
言われたとおりにしたら見事に解決した。
描画処理を別スレッドでやっててもWM_PAINTの処理は必要らしい。
windowsの中の人はよく分からんなぁ。
0177名前は開発中のものです。
2009/02/16(月) 00:29:54ID:7z4LXD+E0178名前は開発中のものです。
2009/02/16(月) 08:35:55ID:bKMsn7yg0179名前は開発中のものです。
2009/02/16(月) 11:54:02ID:0xRjldBEクリアできないといつまでたってもWM_PAINT送り続けられる。
ValidateRectで消してしまうのも手だが。
0181名前は開発中のものです。
2009/02/22(日) 10:56:36ID:JmJl5yfs参加者は、月1回オンラインで100個の数字を記入したシートをUPし、
毎日5個の数の発表を待ちます。
こんな感じのプログラムを創って貰うとき、何に注意して、どこに商談すればいいですか?
お願いします。
0182名前は開発中のものです。
2009/02/22(日) 13:07:55ID:9a/tyRQO0183名前は開発中のものです。
2009/02/22(日) 15:53:56ID:uv0okrQ5そのイメージの元となったビンゴゲームの開発元に
「絵をちょこちょこっと変えたバージョンを作って売ってください」って言うのが一番確実で手っ取り早い。
0184名前は開発中のものです。
2009/02/22(日) 17:14:10ID:9a/tyRQOこんなところで聞くようなイタイ業者にヒントも出すなよ。
色んな意味でろくな事にならないぞ。
0185名前は開発中のものです。
2009/02/25(水) 15:43:56ID:W/hwiF8T技術的には低の低
0186名前は開発中のものです。
2009/02/26(木) 04:43:10ID:EST0UxDP0187名前は開発中のものです。
2009/03/25(水) 20:42:40ID:iHO/uHhQvisual C++の挙動が変になります。(ずっと プログラム名(実行中)と表示され画面の配置も変になる)
どうすればよいのでしょうか?
コードは以下に晒します
#include <windows.h>
#define APP_NAME TEXT("Sample_MainWindow")
/* ウィンドウプロシージャ */
LRESULT CALLBACK WindowProc(
HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam
){
switch(uMsg){
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
つづく
0188つづき
2009/03/25(水) 20:43:23ID:iHO/uHhQHINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR lpCmdLine, int nCmdShow
){
HWND hWnd;
WNDCLASS wc;
MSG msg;
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WindowProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)COLOR_BACKGROUND + 1;
wc.lpszMenuName = NULL;
wc.lpszClassName = APP_NAME;
hWnd = CreateWindow(
APP_NAME, TEXT("Window Title"),
WS_OVERLAPPEDWINDOW | WS_VISIBLE,
100, 100, 400, 300,
NULL, NULL, hInstance, NULL);
/* メッセージループ */
while(GetMessage(&msg, NULL, 0, 0) > 0){
DispatchMessage(&msg);
}
return msg.wParam;
}
0189名前は開発中のものです。
2009/03/25(水) 20:58:00ID:cPG1Bp4Z0190名前は開発中のものです。
2009/03/26(木) 03:35:13ID:Q1jkMb06WNDCLASS構造体に値を設定しただけでRegisterClassで登録してないのが原因だと思う
0191名前は開発中のものです。
2009/03/26(木) 10:22:58ID:uoZMP3+MRegisterClass(&wc);
をCreateWindowの前に。
0192名前は開発中のものです。
2009/04/05(日) 21:54:31ID:Ul2Xl6r0ゲームでnewとdelを繰り返し使いまくると、やってられないから、
存在フラグを持って制御するように。
と、どこかで見た覚えがあります。
それならば、もうnewでメモリを動的確保ぜずに、
普通に静的宣言でいいのではないかと思ったのですが、
動的確保のメリットって何なのでしょうか?
私は仕事がハード畑一色の人なので、頭が固いです。
どなたか教えてくださいorz
0193名前は開発中のものです。
2009/04/05(日) 22:34:27ID:V3UuquCs○高卒なので、頭が悪い
0194名前は開発中のものです。
2009/04/05(日) 22:38:51ID:bmURRfR1例えばメモ帳を作るとき、読み込んだデータの長さは分からない。
こういうとき静的な確保だと、何メガバイト確保すればいいのかわからないし、
もし確保した量よりデータが大きければ扱えないし、小さければ、無駄になる
そこで、new/malocなどで動的に確保してやれば、必要な分だけ確保できる。
0195名前は開発中のものです。
2009/04/05(日) 22:48:17ID:8bGUAz8h使用メモリーが決まってて、制限以内なら静的確保で問題なし。
普通は全部持つ友もリーがはみ出るから、効率いい方法を探すだけ。
0196名前は開発中のものです。
2009/04/06(月) 20:32:34ID:wZso2H2m個人的には動的確保のほうが流れが分かりやすいけどね。
>>194のような柔軟性も持たせられるし。柔軟性を持つということは
コーディングでメモリ空間の大きさをやたら意識する必要も無くなる。
メモリ確保の速度の関係で、予め確保しておいたメモリ空間を使う
ってのはちょくちょく聞く話だけど、
そういう特別な事情が無い限り動的な確保が王道じゃないかなぁとは思う。
まぁ趣味でやるなら不正アクセスが無い限り自由にやりやがれって話ですよ。
0197名前は開発中のものです。
2009/04/10(金) 05:55:47ID:q4HGwHB43DのMOを開発しようと思っています。
そこで開発環境についてお聞きしたいのですが、
簡単に調べて以下のようなものがあるのが分かりました。
・XNA
・Unrealなどのゲームエンジン
XNAはXbox360対応を無視して単にPC向け開発環境として見た場合、良い選択肢でしょうか?
またそういう用途で広く使われているのでしょうか?
Unrealなどのゲームエンジンは、やはりXNAに比べるとすばやく開発出来るのでしょうか?
どの程度自由度が制限されますか?
分かる方よろしくお願いします。
0198名前は開発中のものです。
2009/04/10(金) 06:01:34ID:q4HGwHB40199名前は開発中のものです。
2009/04/10(金) 07:56:06ID:xaOVHUcG求めてるのはそういうお手軽にゲームつくれるツールだろ?
0200名前は開発中のものです。
2009/04/10(金) 08:01:59ID:q4HGwHB4プログラミングの知識としては、OSアーキテクチャからアプリ・サーバ・WEB開発までいけます。
メジャーな開発環境はなんなのか、どんなものがあるのか
そういったトレンドを知りたいと思っています。
0201名前は開発中のものです。
2009/04/10(金) 08:44:23ID:3LDySn8E0202名前は開発中のものです。
2009/04/10(金) 10:02:25ID:o/eQJnMQ利用できない。XNA用のランタイムがほとんどのPCには入っていないので、
利用者に別途インストールをお願いしなければならない。XBOXゲーム機では
なんら問題ではないが。PCでは使いたくない欠点だ。
0203名前は開発中のものです。
2009/04/10(金) 19:34:54ID:ESPzFswh0204名前は開発中のものです。
2009/04/10(金) 19:48:05ID:WdqvyJ6fWindowsの3Dゲーム開発で何が主流か?といわれたら、主流はない。
あえていうなら、DirectX。
XNAはありえない。
Ogreとかもないな。
UnrealやHalflifeのMODみたいな感じでゲーム開発使うのは海外では流行っているし、
情報あるから(ただし英語)いいかもしれない。
敷居も低い。
ただ、ゲーム開発の主流ではないと思うが。
0205名前は開発中のものです。
2009/04/10(金) 19:48:54ID:WdqvyJ6f1から3Dエンジンを作るよりも、って話ね。
0206名前は開発中のものです。
2009/04/12(日) 10:37:36ID:O+0G4WiNC#でやりたいというわけでもないなら、XNAじゃないほうがいいだろうな。
0207197
2009/04/12(日) 11:22:43ID:2pX9j9Yn個人でやるつもりなので
多少パフォーマンス面でデメリットがあったとしても
C#みたいなスピーディに開発出来る言語が良いんですよね。
その点、XNAはログイン処理とかまでフレームワーク化しているようで
おまけに基本的な事をやるにはサーバ要らずと言う点はスタートのし易さと言う意味では強力かなと。
>>203
Python OgreはPythonと言うだけで惹かれますね。
>>204
ランタイムだけでなくフレームワーク、エンジンレベルのものを使おうと考えています。
>>202>>206
貴重な情報ありがとうございます。
とりあえずXNA本を一冊読んで見ます。
0208名前は開発中のものです。
2009/04/12(日) 17:48:24ID:uJhs7hdpOgreってのPython バインデイングもあるのね…。
せっかくだから、Panda 3DってのもPython+3Dエンジンだぜ
C#に拒否反応ないなら、(デプロイにユーザー開発者双方で手間かけてもいいなら)
Pythonとかでもいいよな。
0209名前は開発中のものです。
2009/04/12(日) 22:03:27ID:vkgd6Htugifじゃないといけない理由ってありますか?
gifだと256色しかないんで別の拡張子で素材作りたいのですが。
pngとかjpgとかgifとか拡張子ありますがgif以外でもつくれるならば
別の拡張子で綺麗な絵柄で作りたいと思っています。
可能ならばメリットとデメリットってありますか?
0210名前は開発中のものです。
2009/04/12(日) 22:28:24ID:LCOFWzshどの形式だろうが或いは独自形式であっても問題ない
しかし、なにかのツクール系みたいなツールで作っていて
対応フォーマットがgifにしか対応してないっていうなら従うしかないんじゃない?
むしろgifのほうがライセンスの問題で使うべきではないんだが
DirectXであればbmp、png、jpg、tga、dds、あたりが標準で読める
0211名前は開発中のものです。
2009/04/12(日) 22:44:13ID:ZQ7DXobT0212名前は開発中のものです。
2009/04/12(日) 22:45:13ID:vkgd6Htuありがとうございます、ツクール系ではなく普通に本勝って付録でついてる
サンプルプログラムを改造してゲーム作る予定です。
で、素材の絵を描いていたのですがドット打ちできないんで普通にフォトショップで
描いていたのですが不安になったんで質問させてもらいました。
アクションゲームを作ろうと思うのですがキャラクターのモーションとかも
pngやjpgでいけますか?gifアニメみたいにアニメーションにはできないと
聞いたのですが
0213名前は開発中のものです。
2009/04/12(日) 23:35:32ID:LCOFWzshそもそもアニメーション情報を含めることのできる画像フォーマットを使ったとしても
ゲーム上でアニメーションさせるにはそのための機能を自分で実装しなくてはいけません
gifアニメーションで作ったとしても勝手に再生してくれるわけではないのですよ
一般的な方法でいうと
1枚の画像にアニメーションのパターンを全て含めて
画像のどの部分をどのタイミングで表示するのかを
プログラム側から指定してやることでアニメーションをさせます
プリーのツールでそういったアニメーションデータを作成してくれるものもありますが
それはあくまで画像の区切りやタイムテーブルのデータの作成を簡易にしてくれるものであって
それらを読み取ってアニメーションをさせる部分は自分で実装する必要があるのです
0214名前は開発中のものです。
2009/04/12(日) 23:43:13ID:vkgd6Htuありがとうございます、それに関してはなんとなくわかります。(アニメーションは自分で実装)
でも描いてるうちに参考の画像見ると全部gifなんでgifじゃないといけない理由が
あるのかなあと気になっていたのです。
自分ドット打ちはできなかったんで・・・
0215名前は開発中のものです。
2009/04/13(月) 00:03:20ID:qsxqoxw3単純にインデックスカラー対応で圧縮されてて
ファイルサイズが小さいからとかそんな理由と思われる
まさか、web上の素材サイトを参考にしてそう言ってるわけじゃないよね?
0216名前は開発中のものです。
2009/04/13(月) 00:19:55ID:bYodFX/Gいや、mugenとかですね。
キャラの動きとかの研究にmugenのキャラを見てましたが全部gifだったんで
0217名前は開発中のものです。
2009/04/13(月) 05:22:32ID:DrRdSLAX10年くらい前は256以下なら、pngよかgifくらいな時代だったはずだし(まあ、同時にgifライセンスうぜーって時期でもあったが)
俺はよくわからんので。
mugen詳しい人よろ
0218名前は開発中のものです。
2009/04/13(月) 07:03:54ID:kKYIuKnLさて
>サンプルプログラムを改造してゲーム作る予定です。
一応PGなら改造って言葉は使わずあくまで「参考にして」ってしとけ
たぶんそんな機会は訪れないと思うが足元すくわれるぞ
0219名前は開発中のものです。
2009/04/13(月) 08:23:11ID:GN8f0M0n0220名前は開発中のものです。
2009/04/13(月) 15:20:22ID:yYZDsjyV0221名前は開発中のものです。
2009/04/30(木) 14:07:29ID:XSOMXuai敵キャラを下にゆっくり移動させるのにはどうしたらいいんだ?
ちなみに右に行って下
左にいってしたってかんじ
0222名前は開発中のものです。
2009/04/30(木) 16:14:51ID:Szb967NA{
(敵を右に動かす処理)
if (一定量右に行ったか) mode = 下に動かす;
}
else if (mode == 下に動かす)
{
(敵を下に動かす処理)
if (一定量下に行ったか) mode = 左に動かす;
}
else if (mode == 左に動かす)
{
(敵を左に動かす処理)
if (一定量左に行ったか) mode = 下に動かすpart2;
}
else if (mode == 下に動かすpart2) // ←これは else でもいい
{
(敵を下に動かす処理)
if (一定量下に行ったか) mode = 右に動かす;
}
これじゃあかんの?
0223名前は開発中のものです。
2009/04/30(木) 17:45:01ID:6x5SV4ES0224名前は開発中のものです。
2009/05/02(土) 11:18:09ID:1icd8u4m複数のRECTに分割したいんだけど複雑すぎてどうすればいいのか
たとえば、指定が{0,0,100,100}で見るのが{21,21,79,79}だけなら
分割後は{0,0,100,20}{0,21,20,79}{80,21,100,79}{0,80,100,100}
の4つになるみたいにしたいんだけど、うーん
0225名前は開発中のものです。
2009/05/02(土) 11:44:19ID:3Ey8sJwq「指定のRECTを含まないRECTを一つ除外する」という処理を
再帰的に指定のRECTと同じサイズになるまで繰り返せばいいんじゃね?
0226名前は開発中のものです。
2009/05/02(土) 12:21:12ID:hJ68J4gVこういう奴は自分のネタ書き込みが実装できなくても、
他人のアイデアに延々ケチを付け続けるので、書き込むのが既にウザイ
0227名前は開発中のものです。
2009/05/02(土) 12:28:05ID:1icd8u4m>>225さんありがとう、何とかなりそうです
0228名前は開発中のものです。
2009/05/02(土) 13:38:05ID:3Ey8sJwq実装もできないひとにアイデアだけ出されてもムカッとしますよね
すでに質問主さんも解決されてるようですが
念の為、簡単なソースを上げておきますね
http://www5b.biglobe.ne.jp/~mya_a/DirectX/main.html
0229名前は開発中のものです。
2009/05/02(土) 14:23:04ID:n7KvWJCZコード書けるだろうよw
本物のキチガイ歪みねーな
0230名前は開発中のものです。
2009/05/02(土) 15:17:44ID:AaWksVDK指定RECTを複数RECTの座標軸で分断する
(例題の組なら9つに別れる)
分断されたそれぞれのRECTと複数RECTを判定して取り除く
残ったRECT同士で辺の共有を調べ、長さが揃えば結合する
こんな感じでどうよ
0231名前は開発中のものです。
2009/05/02(土) 15:58:10ID:1icd8u4m実はまだ解決できていなかったのでソースはありがたいです
>>230
なるほど、複数RECTの座標軸で分断して結合ですか
思い浮かばなかった
お二方どうもありがとう、どうにか実装してみます
0232名前は開発中のものです。
2009/05/03(日) 01:41:43ID:DXIo6YRI0233名前は開発中のものです。
2009/05/03(日) 22:48:03ID:MdPMSTHCフレームレートを調べたらSleep(0)で2000前後、Sleep(1)で500前後でした
スペックは CoreDuo1.6Ghz GeForce7400go です
こんなもんでしょうか?
もっと凄まじい数値がでるかとwktkしていたのですが…
そして実際に2Dや3D描画をしてしまうと50以下の数値になってしまいます。
フレームスキップ無しではこんな程度なのでしょうか?
0234名前は開発中のものです。
2009/05/03(日) 23:54:24ID:fxWPMoUR0235名前は開発中のものです。
2009/05/03(日) 23:56:09ID:Xp9/OEVA0236名前は開発中のものです。
2009/05/04(月) 00:10:43ID:y/3FOMzsSleep(0)はともかく1の方に関しては、WinMainの頭にでも
timeBeginPeriod(1)って入れてみな。
0237名前は開発中のものです。
2009/05/04(月) 00:12:46ID:SSrJcNUp0238名前は開発中のものです。
2009/05/04(月) 00:57:21ID:zCXNz15P0239名前は開発中のものです。
2009/05/04(月) 06:49:48ID:ivjAH+EWどれくらいの量の描画だか分からないけど、常駐ソフトを数本起動してる気がしる。
CoreDuo1.6Ghz GeForce7400goでちょっと描画したら60切るとか普通ないでしょう。
0240名前は開発中のものです。
2009/05/04(月) 11:13:52ID:g3YbI5fiそもそもモバイル用GeFoってnVidiaとかPCショップが謳ってるほど性能高くないよ
メモリがDDR2だったりすることもあるしバス幅も64とか32とか
7400GoだったらCPUパワーでカバーできるFFベンチならある程度のスコア出せるけど
純粋にGPUパワーを図る3DMarkなら
ハイエンドノートの1/10とかデスクトップに比べたら1/15程度のスコアしか出ない
市販のソフトでもちょっとオブジェクトが増えたらすぐカクカクする
0241名前は開発中のものです。
2009/05/04(月) 13:51:13ID:+gA/YHQh0242名前は開発中のものです。
2009/05/04(月) 13:54:28ID:st/gePPw0243名前は開発中のものです。
2009/05/04(月) 14:16:05ID:kjiUunSoうちは、Core2DuoT7200no2GHz & GeForce7400goだが、
OpenGLでテクスチャ付ポリゴンを500枚くらい描画しても、
Sleep(0)で1000FPS超えるぞ。
60FPSに固定した場合は、一秒間に990msくらいはSleepしてられるよ。
0244名前は開発中のものです。
2009/05/04(月) 17:48:30ID:NkdQPUapもちろんハードの制約を意識しなければいけないが
0245233
2009/05/04(月) 20:31:34ID:VkgPC6sBこちらが実行ファイルとそのソースファイルです
みなさんのPCでの数値とかも知りたいです
0246233
2009/05/04(月) 20:32:46ID:VkgPC6sB0247名前は開発中のものです。
2009/05/04(月) 20:48:30ID:+gA/YHQh0248名前は開発中のものです。
2009/05/04(月) 21:03:12ID:/bA/nhvOPen4 2.8G 1487 500
Core2 2.5G 3049 999
描画が無いから、frame per second じゃないなw
>>234が妥当な見解で、Sleep()はそう言う挙動をする物なんだな。
そして>>243から、233は自分の3D描画を見直す必要がありそう
0249233
2009/05/04(月) 21:28:13ID:VkgPC6sBパスワードは fps です
画面消去と裏画面フリップのみですが60fpsまで下がります
ちなみにDirectX SDKのサンプルSkinnedMeshは550fps近く出ているのが謎です
プログラムの組み方で変わるのでしょうか?
0250名前は開発中のものです。
2009/05/04(月) 21:32:35ID:kjiUunSo>>243ですが、
(0)2150、(1)950
といったところ。
そちらの環境では描画が、垂直同期になってるとか?
なんにしても、ゲームで60fps固定で動かしたい、とかなら、
別にゲームループ用のスレッド立ち上げて、そこではメッセージ処理させずに、
次のフレームまでの残り時間をSleep()とかにした方がいいかも。
0251名前は開発中のものです。
2009/05/04(月) 21:35:17ID:kjiUunSoコキコの入れ違いか。
なぜかDLできないので試していないけど、
60fpsに落ちるなら、まず間違いなく垂直同期がONになってるね。
0252名前は開発中のものです。
2009/05/04(月) 21:46:32ID:ivjAH+EW1000と350だった。Athlon(tm) 64 X2 6000+(3.0GHz)なんだけど、しょぼん。
SetWindowTextが遅いな。プリントしたら10000超えたよ。
>>249
垂直同期させない場合、
d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE ;
にすると、そのままのが出るよ。
試してないけど。
0253233
2009/05/04(月) 22:09:47ID:kwNCoBb+皆さんの数値も参考になりました
ありがとうございます
0254名前は開発中のものです。
2009/05/04(月) 23:27:39ID:NUebcNJ2プログラムを勉強しようと思うのですが、最初は何から始めた方が良いんでしょうか。
本当に何も知らないので、できれば参考図書なんかをあげてもらえませんか?
お願いします。
0255名前は開発中のものです。
2009/05/04(月) 23:33:39ID:kjiUunSoまず言語はC++にしとけ。慣れてきてから色々制限のある言語だったら泣くに泣けないから。
コンパイラはVS2008EE無料あたりをインスコ
そしたらは「猫」でググる
乙。
0256名前は開発中のものです。
2009/05/04(月) 23:53:33ID:v8MyF9TpとりあえずはCを大分理解できないと厳しいんじゃね
と思うんだが俺が馬鹿すぎるのかなあ
0257名前は開発中のものです。
2009/05/05(火) 00:18:25ID:2Wnl8Pwhライブラリやネット上の公開コードとかの恩恵を受けられるのは大きいよ
0258名前は開発中のものです。
2009/05/05(火) 00:31:54ID:0zW0QhP9BASIC言語を学んでみなさい。
いちばん簡単だから 一生懸命にやれば出来る。
http://www.seiai.ed.jp/t2000/basic/index.html
ゲームを作れるようになった後に、
C言語に進むのも良いだろう。
プログラミングの経験があればC言語収得も容易になる。
0259名前は開発中のものです。
2009/05/05(火) 10:17:25ID:g+u8xL7pふと気になったが、プログラムを勉強って何だ?
0260名前は開発中のものです。
2009/05/05(火) 11:25:19ID:Wgvx6E2MJavaとC#とも親和性が高いし
0261名前は開発中のものです。
2009/05/05(火) 11:50:36ID:RCDRu7ea0262名前は開発中のものです。
2009/05/05(火) 12:34:11ID:KNtrpfTu0263名前は開発中のものです。
2009/05/05(火) 14:12:53ID:a5WwpTFu変な癖がついて、後から苦労するぞ
Click & Createが超オススメ
0264名前は開発中のものです。
2009/05/05(火) 14:42:12ID:TfjtoxKy普通にC++から初めていいんじゃないかな。
勉強のための資料も一番豊富じゃだろうし。
0265名前は開発中のものです。
2009/05/05(火) 16:05:04ID:RCDRu7eavista用のintelドライババグで五回は死ねる。
0266名前は開発中のものです。
2009/05/05(火) 16:30:26ID:KNtrpfTuそれにポインタとか絡んでくると混乱しないか
0267名前は開発中のものです。
2009/05/05(火) 16:35:38ID:u1F14pk8>>258を読んで頑張ってみます!
0268名前は開発中のものです。
2009/05/05(火) 17:05:27ID:2Wnl8Pwh0269名前は開発中のものです。
2009/05/05(火) 17:43:52ID:Pt0wvz3Pむしろ初心者から始めた方がよくないかなぁ。
俺は未だにBASICの考え方から抜けられんし。
いまさら自分で試せんからなんとも言えんけど。
0270名前は開発中のものです。
2009/05/05(火) 22:27:41ID:8gC2H/EAあとキャラクターのステータスですが、配列にして、
配列(0)がHP、配列(1)がMP…と言った感じでいいんでしょうか
30人ぐらいをストーリーにより入れ替わり立ち代わりの予定なのです
0271名前は開発中のものです。
2009/05/05(火) 22:29:20ID:8gC2H/EAセーブ等はとりあえずCSVに書き起こしています
0272名前は開発中のものです。
2009/05/05(火) 22:53:50ID:qQRAGi2Lどちらも似たようなCPU使用率になります
CPU使用率を下げつつ、Sleep(0)と同等の速度を出す方法ってありますか?
0273名前は開発中のものです。
2009/05/06(水) 02:13:24ID:Q/fdNOmi0274名前は開発中のものです。
2009/05/06(水) 02:38:15ID:9tyyI+jxVB6は、たしかに当時は流行ったけど、後継VB.NETで構文がまるっきり変わっちゃったので、
いまから勉強するのはお勧めしない。
この板にもC++でRPG作ってる人居るだろうから参考にしてみ。
0275名前は開発中のものです。
2009/05/06(水) 02:40:58ID:36dZu90fあくまで俺の個人的意見になるけど
>RPGをVB6で作ろうと思っているのですが、C++を学習したほうがいいんでしょうか?
VBでもゲーム作る人はいるし、VBが悪いってわけじゃないけど
C++と既存のライブラリでやった方が色んな意味で楽だと思う。
>あとキャラクターのステータスですが、配列にして、
>配列(0)がHP、配列(1)がMP…と言った感じでいいんでしょうか
基本的な考え方は間違ってない。
今後、自分で管理のしやすさ、変更のしやすさを試行錯誤していく事になると思うけど。
0276名前は開発中のものです。
2009/05/06(水) 02:41:17ID:9tyyI+jxメインループを別スレッドにして、尚且つ、そのスレッドの中でSleep(1以上)する。
固定FPSのゲームならSleep(0)で何か(timeGetTimeとか)を監視し続ける必要ないでしょ。
ゲームじゃなくて演算速度を出したいだけなら、CPU使用率最大にしてぶん回すべき。
0277名前は開発中のものです。
2009/05/06(水) 03:33:19ID:AA8cKT/J言語の習得に時間が懸かって挫折しなきゃいいがね
0278名前は開発中のものです。
2009/05/06(水) 03:50:17ID:0TC6ScVOゆとり教育の弊害とか誰もがしってるだろ?
挫折したら言語の所為、DirectXの所為、OpenGLの所為、
自分は非が無い完璧超人w
0279名前は開発中のものです。
2009/05/06(水) 04:32:44ID:9tyyI+jxMFCじゃなくてSDKなら丁度良いんじゃないかな。
VBは、GUI作るには便利だけど、ゲームだと結局WinAPIベースになっちゃうし。
0280名前は開発中のものです。
2009/05/06(水) 05:31:19ID:AA8cKT/JHSPならもっと簡単かもしれん
もっと手っ取り早く作るんだったらツールでいいんじゃね
0281名前は開発中のものです。
2009/05/06(水) 07:25:56ID:8ey4uMo7今時はPerl使うには、いわゆる"モダンPerl"(笑)が普通でその手の書籍とか何冊も読まないまともに使えない。
同様に、C++も"Modern C++ Design"、"C++ Template Metaprogramming"、"Effective C++"とかよまないと
スタート地点にも立てない。
こんな言語、俺は絶対初心者に勧めないw
入門なら昔のBASICに相当するLL系のスクリプト言語でいいだろ
例えば、PythonやRuby
0282名前は開発中のものです。
2009/05/06(水) 08:40:20ID:TlNG4nJgゲームならHSPのほうがゲーム向きで情報豊富で簡単だろ。
PythonやRuby 信者なら理解できるがw
俺はC++に入信してるけどね
0283名前は開発中のものです。
2009/05/06(水) 08:53:02ID:8ey4uMo7ゲームだけやるんなら、HSPでもいいと思う。あくまでBASICの代わりだけど。
まあ、個人的には、ゲーム特化するならHSP勧めるくらいなら、ActionScriptを勧めるな。
今時の流れなら、Flashアプリで公開ってのはよいしな。
HSPはちょっとマイナーすぎなのと、応用性がなさすぎる
しかし、情報豊富って、マイナーすぎてユーザー数が他の言語と違いすぎるだろHSPはw
0284名前は開発中のものです。
2009/05/06(水) 08:56:09ID:8ey4uMo7google trendsの結果でも貼ってみる。
さすがにHSPはなあ…
しかし、C++はさすがだ
Google Trends: C++,HSP,Ruby,Python
http://www.google.co.jp/trends?q=C%2B%2B%2CHSP%2CRuby%2CPython
0285名前は開発中のものです。
2009/05/06(水) 08:58:42ID:8ey4uMo7Google Trends: C++ game,HSP game,Ruby game,Python game
http://www.google.co.jp/trends?q=C%2B%2B+game%2CHSP+game%2CRuby+game%2CPython+game&ctab=0&geo=all&date=all&sort=0
(言語名) + ゲームだと計測不能…
0286名前は開発中のものです。
2009/05/06(水) 08:58:52ID:TlNG4nJgPythonやRuby が外れたのを確認したから宗教論争はここで終わるw
0287名前は開発中のものです。
2009/05/06(水) 09:03:50ID:TlNG4nJg言語が全体的に下がり気味なのがさびしい・・・
0288名前は開発中のものです。
2009/05/06(水) 10:35:24ID:S6pkCKb4書きたい言語で書かせればいい
0289名前は開発中のものです。
2009/05/06(水) 10:47:05ID:wX7ojKK3ドイツ語関係でちょっと出てるな、別の何か?
0290名前は開発中のものです。
2009/05/06(水) 13:02:01ID:UbZvhOTa最初からCとかやったほうがいいじゃんと思った
0291名前は開発中のものです。
2009/05/06(水) 13:08:21ID:1MHMMcy8HSPは非常にとっかかり易い、画面が非常にシンプルで分かりやすい
C辺りインストールして起動してみたが、何していいのか分からない人はHSPで一度なんでもいいから作ってみるといいと思う
0292233
2009/05/06(水) 19:46:25ID:K9az0PAHパスワードは fps です。
描画部分を別スレッドで60fps固定にした所、メインループ部はSleep(1)で600万ループ
Sleep(13)で40万ループさせる事に成功しました。
CPU使用率はSleep(13)で10以下に抑える事にも成功しました。
0293名前は開発中のものです。
2009/05/06(水) 21:10:26ID:9tyyI+jxおめ。
>>243環境で、(1)が1200万ループ、(13)が100万ループでした。
いいゲーム期待してます。
0294名前は開発中のものです。
2009/05/06(水) 22:22:00ID:31BsjZ7x一昨日から友達と2D格ゲーを作ろう!という話になって少し勉強しました。
HSPで簡単なシューティングを作ることには成功したのですが、このまま
HSPを勉強すれば2Dの格闘ゲームを作るようになれるのでしょうか。
普通のゲームはC++というのを使っているのですよね?
今から同じ時間を費やすとしてHSPとC++だったらどっちが先に2D格ゲーを作ることができるでしょうか。
期間は2、3年でメルティブラッドくらいのゲームが作れたらなあ、と思っています。
0295名前は開発中のものです。
2009/05/06(水) 22:29:35ID:S6pkCKb40296名前は開発中のものです。
2009/05/06(水) 22:44:47ID:31BsjZ7x過程というと、次に背景を付けてキーボードで動かせるようにして…
みたいなことのことでしょうか?
それとも、このキャラがこう動いたら次はこう動くとか、そういうことでしょうか?
0297名前は開発中のものです。
2009/05/06(水) 22:47:21ID:JPAy5CO1まぁHSPで状態管理するのは大変だろうね。
まぁCやC++を使ったからといって楽になるというものでもないが。
しかしそれよりも、余計なことを考えて手を止めるのが一番よくない。
せっかくHSPを使い始めたんだから、とにかく猪突猛進に雛形を作ってみるんだ。
0298名前は開発中のものです。
2009/05/06(水) 22:51:20ID:JuuuPdEYC++を倦厭する人達ってレスの書き方まで似てくるよね
必死さがにじみ出るというか、息切れ寸前というか…
0299名前は開発中のものです。
2009/05/06(水) 22:53:45ID:31BsjZ7xなるほど!!わかりました!
そうですね、なんか今日1日どっちにすればいいかで延々と迷ってましたし。
とりあえず雛形を作ってみます!ありがとうございました!
0300名前は開発中のものです。
2009/05/06(水) 22:58:53ID:S6pkCKb4そもそも解らなけりゃ違いも判らんだろうよ。
まず作れ。話はそれからだ
0301名前は開発中のものです。
2009/05/07(木) 22:22:40ID:xXXFn8bD経験ゼロから2日で簡単なシューティング作るって何気にスゲーな
メルティブラッドってYoutubeくらいでしか見たことないが、
あの辺まで目指すんならC++にしといた方がいいと思う。
もしくはHSPでもっと簡素なゲームを作ってみるか。
0302名前は開発中のものです。
2009/05/10(日) 18:30:54ID:dU5vID34すばやさに乱数を加算除算して順番を決めるのは分かるのですが、同じ数値の人が来たときにはどういう処理が良いでしょう?
動的配列を作り、配列[3]等として順番を決めよう・・と思ってたらなんだか頭の中が混乱してきましたorz
同じものに対して順番を決める、という処理はどうするのが一般的でしょうか?
0303名前は開発中のものです。
2009/05/10(日) 18:36:29ID:FZlRfxit0304名前は開発中のものです。
2009/05/10(日) 18:39:25ID:dU5vID34ああーなるほど!ありがとうございます!
見つかった順番ってのが分かりやすくていいですね。っていうかそのまんまでしたね
0305名前は開発中のものです。
2009/05/27(水) 17:17:29ID:seiL/yBx0306名前は開発中のものです。
2009/05/27(水) 17:37:40ID:ooeFDaTf0307名前は開発中のものです。
2009/06/07(日) 02:22:52ID:iHKxpSHX>PSGLやlibgcmってライブラリ
これって公開されてるものなんですか?
0308名前は開発中のものです。
2009/06/07(日) 02:40:26ID:XgZ1BVy+0309名前は開発中のものです。
2009/06/07(日) 03:08:08ID:iHKxpSHX事実が知りたいんです
0310名前は開発中のものです。
2009/06/07(日) 05:28:36ID:XgZ1BVy+0311名前は開発中のものです。
2009/06/07(日) 09:37:33ID:830nrNph結局自分で調べない事には事実かどうかなんてわからんぞ。
0312名前は開発中のものです。
2009/06/07(日) 15:25:03ID:iHKxpSHXくだらね
0313名前は開発中のものです。
2009/06/07(日) 15:31:33ID:iHKxpSHX0314名前は開発中のものです。
2009/06/07(日) 17:03:36ID:oeT3VEAp0315名前は開発中のものです。
2009/06/07(日) 18:07:55ID:M6h6jWTy0316名前は開発中のものです。
2009/06/08(月) 17:05:24ID:mawEHegr0317名前は開発中のものです。
2009/06/09(火) 09:47:49ID:ruRVuuZj何言ってんだ
0318名前は開発中のものです。
2009/06/26(金) 22:36:27ID:x76xIHaAつまり
◎マイネル
○ドリジャ
▲デスカ
だなw
0319名前は開発中のものです。
2009/06/28(日) 22:39:34ID:3N82CdXt玉の制御はスクリプトで書こうと思っているのですが、
pythonかluaのどちらかだとしたら、どちらがいいと思いますか?
参考にしたいので意見をおしえてください
0320名前は開発中のものです。
2009/06/28(日) 23:36:19ID:hGHmXBpJ制御はC++が向いている
0321名前は開発中のものです。
2009/07/10(金) 16:03:53ID:GcVAWp8qスクリーン全体を書き換えるやり方だと無駄が大きいので、キャラクターが前にいた場所だけ書き換えるやり方に変更した。なぜか、知らないが、時々残像ができる。治す方法があったら教えてほしい。
プラットフォーム:XNA 3.0
・drawの処理
if (is_scrolled)
{
m.drawAll(g, view_point.X, view_point.Y, 0, 0, m.WidthOnScreen(g), m.HeightOnScreen(g));
is_scrolled = false;
}
else
{
//スクリーン上の座標を求める
Point p = m.getPointOnScreenAsMap(g, new Point(player.oldx, player.oldy));
//24*32dotのキャラクターに対応するため
m.drawAll(g, player.oldx, player.oldy, p.X, p.Y, player.width + 1, player.height);
}
0322toya
2009/07/12(日) 01:04:32ID:+auraSRZ0323名前は開発中のものです。
2009/07/12(日) 10:59:23ID:yE1osiWd0324名前は開発中のものです。
2009/07/12(日) 23:06:56ID:Pm94PkQG取り合えるこちらにアップロードしておいた。
3日後に消す。
0325名前は開発中のものです。
2009/07/13(月) 18:38:14ID:IC1GLBGZとりあえずぶつかった時のundoがx,yを戻してるけど
移動時はxだけ、yだけ保存だから戻すときずれて残像になってるね
ほかにもあるみたいだけど、、、これから帰宅なのでまた・・・
関数のコメントは // じゃなくて /// がお勧め
0326名前は開発中のものです。
2009/07/13(月) 20:38:23ID:rYbn9Phm理由はなに? > //->///
0327名前は開発中のものです。
2009/07/13(月) 20:54:40ID:r/cCOFUb0328名前は開発中のものです。
2009/07/13(月) 20:59:01ID:rjiSz6yn0329名前は開発中のものです。
2009/07/13(月) 23:04:03ID:m7y/L96o0330名前は開発中のものです。
2009/07/13(月) 23:19:08ID:NIAmNvGo0331名前は開発中のものです。
2009/07/13(月) 23:59:24ID:E7cdGbOK0332名前は開発中のものです。
2009/07/14(火) 00:11:31ID:pOq3rm7P0333名前は開発中のものです。
2009/07/14(火) 09:16:51ID:4Xpi43sp0334名前は開発中のものです。
2009/07/14(火) 10:11:20ID:n67BwWQXC#でIDEで編集中、メソッドの上で///と入れると
summaryタグとかparamタグが自動で追加されて
そこにコメント書き込んどけばインテリセンスとかでそのコメントが見られるようになる
>>324
とりあえず、Unit.moveToXXXの中、4つとも_oldx、_oldyの保存やってみて。
0335名前は開発中のものです。
2009/07/14(火) 19:29:22ID:A7Jso/3Q0336名前は開発中のものです。
2009/07/14(火) 19:30:39ID:A7Jso/3Q0337名前は開発中のものです。
2009/07/14(火) 20:20:15ID:7qnK4jbf無難な言葉を使ったが
結局何言っても同じなんだよな
ただ口はさみたいだけ
0338名前は開発中のものです。
2009/07/14(火) 20:24:08ID:7qnK4jbf何使っているかは把握した上での
レスだからね
0339名前は開発中のものです。
2009/07/14(火) 20:29:42ID:p3cJHfZlサンクス。
///で追加されるとは知りませんでした。
0340名前は開発中のものです。
2009/07/14(火) 23:16:39ID:msfsUkAzLisp
異論は認める。
0341名前は開発中のものです。
2009/07/15(水) 03:33:48ID:oAaV9htYlisp嫌いじゃないけど、最強というには、人によってコードがバラバラすぎてなぁ・・・・。
やっぱし、今時はTeam開発をしっかりと前提にできるものが良いと思う。
よって、C++
C++もテンプレ入り乱れまくりやなんやすると、途端に霧の中に為ってしまうけど・・・・。
0342名前は開発中のものです。
2009/07/15(水) 08:49:05ID:wvQDgYgC0343名前は開発中のものです。
2009/07/15(水) 12:29:04ID:ozTsOauR0344名前は開発中のものです。
2009/07/15(水) 20:47:11ID:vgHuQMIa言語にコーディング規約的なものまで求めるなら
JavaやC#が最強
0345名前は開発中のものです。
2009/07/17(金) 10:39:57ID:WnY7CWjL0346名前は開発中のものです。
2009/08/16(日) 09:50:39ID:mUJcX4L/0347名前は開発中のものです。
2009/08/16(日) 19:14:24ID:55Gu4o4rコンパイラの使い方も併せて学ぶ段階だし
0348名前は開発中のものです。
2009/08/18(火) 19:55:07ID:GrHz78T5たとえばゲーム成績のランキングをそのPCの全アカウントで共有するためには
ゲームを管理者実行させるほかに手はないのでしょうか?
0349名前は開発中のものです。
2009/08/18(火) 20:49:11ID:Jhv90Vd4ランキングデータの属性を誰でも読み書き可にすればいいんじゃないの?
0350名前は開発中のものです。
2009/08/18(火) 21:03:05ID:CP6QXV5yに作ればいいんじゃね
やったことないので推測だけど
0351名前は開発中のものです。
2009/08/18(火) 21:55:10ID:lURobZwZ0352名前は開発中のものです。
2009/08/18(火) 22:09:00ID:GrHz78T5その発想はなかった。早速やってみる
>>351
それだけのために常時常駐させるのかww
0353名前は開発中のものです。
2009/08/19(水) 02:30:02ID:y+Txo86jpublic struct NextpointParam
{
public double vx, vy, x, y, dx, dy, sx, sy,e, m;
}
const double g = 9.8,rotSpeed = 3;
double dt;
//ループ前に実行する
public NextpointParam calcArrivalTime(NextpointParam cmd, int rot)
{
dt = cmd.vx / 120.0;
double rad = rot * Math.PI / 180;
double subx = Math.Abs(cmd.dx - cmd.sx),suby = Math.Abs(cmd.dy - cmd.sy);
if (cmd.dx != cmd.sx)
{
double t = -(2 * subx * Math.Sin(rad)) / (Math.Cos(rad) * g * dt) + (2 * suby / (g * dt));
t = Math.Sqrt(Math.Abs(t));
cmd.vx = subx / t;
cmd.vy = cmd.vx / Math.Cos(rad) * Math.Sin(rad);
}
return cmd;
}
//ループごとに実行する
public NextpointParam calcElliptical(NextpointParam cmd)
{
double vx = cmd.dx - cmd.sx > 0 ? cmd.vx : -cmd.vx;
cmd.vy += g * dt;
cmd.x += vx;
cmd.y += cmd.vy;
return cmd;
}
0354353
2009/08/19(水) 02:31:20ID:y+Txo86j0355名前は開発中のものです。
2009/08/19(水) 10:25:19ID:zkIhyE9mvx,vyは速度だと思うが、dt = cmd.vx / 120.0;ってのは何?
120ってどこから出てきた数字?
sx,syからdx,dyに向かって放物線を描く弾をrotの角度で撃ちたいってことでいいんだよね?
それって解無しの場合があるが、その処理が全く入ってないんじゃないか?
sx,syから見てdx,dyがa度の位置にある場合、発射角がa度以下では絶対に届かない。
発射角がちょうどa度だと初速は∞になる。
初期条件の与え方に問題があるかと。
着弾点を指定したいなら、普通は角度は初期条件で与えない。
0356名前は開発中のものです。
2009/08/19(水) 19:57:30ID:y+Txo86jこちらのソースではうまく動いてたのですが、C#に移植するとうまく動かないとは・・・、
>>355
dtは微分です。
>初期条件の与え方に問題があるかと。
>着弾点を指定したいなら、普通は角度は初期条件で与えない。
どういう風にすればいいのでしょうか?
こっちの方面には疎いので教えてほしいです。
0357名前は開発中のものです。
2009/08/20(木) 00:34:17ID:hfiYF6j1double subx = Math.Abs(cmd.dx - cmd.sx),suby = Math.Abs(cmd.dy - cmd.sy);
⇒double subx = cmd.dx - cmd.sx ,suby = cmd.dy - cmd.sy;
あと
double vx = cmd.dx - cmd.sx > 0 ? cmd.vx : -cmd.vx;
が要るのか謎
まぁ普通は>>355が言うように角度は与えないな。
普通は速度一定で角度をatan使って計算する。
0358356
2009/08/20(木) 21:23:01ID:IHNCk0SU速度が一定の時のソースは同じサイトで見つかったのですが、速度一定勝つ角度は計算する方法が見つかりませんでした。
どういう風にするんでしょうか?
0359名前は開発中のものです。
2009/08/21(金) 10:48:09ID:DvszpD1q(dy-sy)=sinα*(初速)t - gt^2 に代入してαを求める
0360名前は開発中のものです。
2009/08/21(金) 12:52:07ID:hppXED8L0361名前は開発中のものです。
2009/08/21(金) 19:22:48ID:7MXGbqnZαということはsinαとcosαを求めればいいの?
式を変形してみたんだが、左辺のコサインが消えない・・・
(dy-dy) = sinα*((dx-sx)/cosα) - g * (dx-sx)^2/cosα^2/2
(dy-dy) = sinα*((dx-sx)/cosα) - g * (dx-sx)^2/2cos^2α
2cos^2α * (dy-dy) = cosα * sinα* (dx-sx) - g * (dx-sx)^2
0362名前は開発中のものです。
2009/08/21(金) 23:49:07ID:e3g3OiNI逐次計算で初期角度をatn((dy-sy)/(dx-sx))にして
x方向とy方向の到着時間を比較して、それが近くなるまで繰り返し
0363名前は開発中のものです。
2009/08/22(土) 02:49:05ID:RxygmHfQpublic NextpointParam calcArrivalTime(NextpointParam cmd)
{
dt = cmd.vx / 120.0;
double rot = Math.Atan(cmd.dy - cmd.sy/cmd.dx - cmd.sx);
if (cmd.dy == cmd.sy)
return cmd;
double tx, ty;
do
{
rot++;
tx = (cmd.dx - cmd.sx) / Math.Cos(rot);
ty = 4 * Math.Pow(Math.Sin(rot), 2) - 4 * g * -2 * (cmd.dy - cmd.sy);
ty = Math.Sqrt(ty) * 2 * Math.Sin(10) / 2 / g;
} while (Math.Abs(tx - ty) > 0.01);
double t = -(2 * (cmd.dx - cmd.sx) * Math.Sin(rot)) / (Math.Cos(rot) * g * dt) + (2 * (cmd.dy - cmd.sy) / (g * dt));
t = Math.Sqrt(Math.Abs(t));
cmd.vx = (cmd.dx - cmd.sx) / t;
cmd.vy = (cmd.dy - cmd.sy) / Math.Cos(rot) * Math.Sin(rot);
return cmd;
}
0364名前は開発中のものです。
2009/08/22(土) 02:51:09ID:RxygmHfQ× rot++
○ rot += 1 * Math.PI / 180
0365名前は開発中のものです。
2009/08/22(土) 05:25:00ID:JiYVKMm80366名前は開発中のものです。
2009/08/22(土) 07:28:00ID:v9eiapHS0367名前は開発中のものです。
2009/08/22(土) 19:32:58ID:UJPlGrDF0368名前は開発中のものです。
2009/08/22(土) 19:34:43ID:p3yP0Up8仰角rは
r = asin((x1 - x0) * g / (v * v)) / 2
だから
t = 0;
r = asin((x1 - x0) * g / (v * v)) / 2;
loop:
t += dt;
x = x0 + v * cos(r) * t;
y = y0 + v * sin(r) * t - g * t * t / 2;
goto loop;
みたいな感じで現在位置(x,y)が求められる
tは時間、dtは進んだ時間、vは初速度、gは重力加速度
asinの定義域は-1から1だから、それ以外は解なし(初速が足りない)
0369名前は開発中のものです。
2009/08/22(土) 21:04:38ID:RxygmHfQ求めたいのは斜めの場合です・・・
0370名前は開発中のものです。
2009/08/22(土) 23:07:35ID:p3yP0Up81 / cos(r)^2 = 1 + tan(r)^2
を使えばtan(r)の2次式に変形できる
a * tan(r)^2 + b * tan(r) + c = 0
とすると
b = x1 - x0;
a = -g * b * b / (2 * v * v);
c = y0 - y1 + a;
/* d は判別式。d < 0 なら解なし */
d = b * b - 4 * a * c;
/* 解の公式でtan(r)を求める */
tan_r = (-b + sqrt(d)) / (2 * a);
//tan_r = (-b - sqrt(d)) / (2 * a); どちらの解も目標位置を通る
r = atan(tan_r);
loop:
t += dt;
x = x0 + v * cos(r) * t;
y = y0 + v * sin(r) * t - g * t * t / 2;
goto loop;
一応動いたけど左向きに発射するときは初速度をマイナスにしないとダメっぽい
0371名前は開発中のものです。
2009/08/24(月) 19:01:06ID:IPXhfjSkかなりレベル高いゲームあるね、ここは
http://dixq.net/sakuhin.html
0372名前は開発中のものです。
2009/08/24(月) 19:09:58ID:711xndDg0373名前は開発中のものです。
2009/08/24(月) 21:39:10ID:ir6nHlVBつか、この板が軽く馬鹿にされてて吹いた。
http://slashdot.jp/askslashdot/comments.pl?sid=463936&threshold=0&commentsort=3&mode=thread&pid=1627366#1627603
最近の奴にとっては、この板は「作ろうスレを立てる板」って認識なのかね。
0374名前は開発中のものです。
2009/08/24(月) 21:39:27ID:ir6nHlVB0375名前は開発中のものです。
2009/08/25(火) 19:10:21ID:UObdHxkOあれどうやってるかわかる人いる?
0376名前は開発中のものです。
2009/08/25(火) 22:41:10ID:AOgNxinP0377名前は開発中のものです。
2009/08/27(木) 00:10:49ID:4dHRqDCZ法線を描画して隣接するピクセルとの法線の向きが一定以上の角度で黒く塗りつぶす
オブジェクトをそれぞれ別の色で塗りつぶして描画して隣接するピクセルの色が異なっていたら黒く塗りつぶす
これらを組み合わせるのが一番きれい
0378名前は開発中のものです。
2009/08/27(木) 16:45:06ID:TkpNRAkw仕組みは>>377の3つめに近いと思う。
自分でやるならまずは>>376のやりかたからだろうね。
0379名前は開発中のものです。
2009/08/27(木) 23:51:51ID:+fcJCniV色んな手段があるけど、描画結果から想像するとこれだと思う。
モデル読み込み時にメッシュが他のメッシュに接続しているかどうかを求めておいて、
次の条件が1つでも当てはまったときメッシュ辺を描画する。
・接続するメッシュが無い ※接続が裏表になっている、接続するメッシュが複数ある場合もこの扱い
・接続するメッシュが視点から見ての裏表になっている
描画例(Javaアプレット)
ttp://www5b.biglobe.ne.jp/~clap/applet3/MagicAction/AppletMotion7Viewer.html
0380名前は開発中のものです。
2009/08/28(金) 03:33:06ID:HsGKMciu実装してみたのですが、放物線を描かないみたいです。
vx = 100;
dt = cmd.vx / 120.0;
b = cmd.dx - cmd.sx;
a = -g * b * b / (2 * cmd.vx * cmd.vx);
c = sy - dy + a;
double d = b * b - 4 * a * c; //判別式
double tan_r = (-b + Math.Sqrt(d)) / (2 * a);
r = Math.Atan(tan_r);
:loop
t += dt;
x += sx + vx * Math.Cos(r) * t;
y += sy + vx * Math.Sin(r) * t - g * t * cmd.t / 2;
goto loop
0381名前は開発中のものです。
2009/08/28(金) 15:02:48ID:DmqjfMSC0382名前は開発中のものです。
2009/08/28(金) 16:10:33ID:dkA1HT2Sstrchr、strrchrではだめなのか
0383名前は開発中のものです。
2009/08/28(金) 16:13:07ID:DmqjfMSCそれANSIじゃないんですか?UNICODE(加えてANSIも混在)のソース内で適宜文字列比較したいんですが
ようするに引数にTCHAR型を渡したいんです。
0384名前は開発中のものです。
2009/08/28(金) 16:18:49ID:fGO+3/fFStrChr、StrRChr
0385名前は開発中のものです。
2009/08/28(金) 16:22:17ID:fGO+3/fF_tcschr、_tcsrchr
0386名前は開発中のものです。
2009/08/28(金) 23:23:03ID:DvI+Lg5wどういう軌道になったの
直線にみえるなら正しい可能性がある
(銃の弾道のように初速度が十分に速いとほぼ直線になる)
この場合、2次方程式のもう1つの解を使えば、
銃で空を撃って落ちてきた弾があたるような軌道になるはず
ゲームなので適当にパラメータをいじってイメージにあった軌道にすればいい
それでも動かないなら、すまんが原因はわからん
0387名前は開発中のものです。
2009/08/29(土) 00:10:27ID:kY5tJbv2Directx SDK November2008
の環境でDirectX SDKのDirectX9のサンプルを試しているのですが
サンプルブラウザでインストールしたEXEでは起動しますが、
Visual Studio2008EE SP1でリビルドすると
Debugランタイムでは
コンピューターに d3dx9d.dll がないため、プログラムを開始できません。
この問題を解決するには、プログラムを再インストールしてみてください。
のエラーが出ます。
Releaseランタイムでは
The Direct3D device has a non-zero reference count, meaning
some objects were not released.
のエラーが出ます。
これを解決するにはどうするのですか?
0388名前は開発中のものです。
2009/08/29(土) 00:41:26ID:ekhY5LT7「ディレクトリを表示するプロジェクト」に「ライブラリファイル」を選択してd3dx9d.dllのあるディレクトリを追加する
(例、C:\Program Files\Microsoft DirectX SDK (November 2008)\Lib\x86)
「プロジェクト」-「プロパティ」-「構成プロパティ」-「リンカ」-「入力」で
「追加の依存ファイル」にd3dx9d.dllを追加する
0389名前は開発中のものです。
2009/08/29(土) 00:44:38ID:im1B0JiC0390名前は開発中のものです。
2009/08/29(土) 00:46:04ID:ekhY5LT7dllがある場所が分かってるならパスを通せば動くと思うよ
0391名前は開発中のものです。
2009/08/29(土) 00:53:25ID:kY5tJbv2vistaでも同様のエラーがでました。
system32のフォルダには確かにd3dx9d.dllがありませんでした。
0392名前は開発中のものです。
2009/08/29(土) 01:06:36ID:kY5tJbv2そしてそれをsystem32のフォルダに突っ込んだら解決しました。
0393名前は開発中のものです。
2009/08/29(土) 02:16:55ID:ihAb3rV7なにも表示されませんでした。
デバッカーで追ってみると、判別式の段階でマイナスになってしまいます。
(この時の値はdx = 332,sx=172,dy = 0,sy = 0です)
0394名前は開発中のものです。
2009/08/29(土) 16:07:12ID:dF9sCpgQプレイヤーの位置やミサイル座標などの変数は普通グローバル変数にするもんなんですか?
関数をかいてるとうまくいかないので悩んでいます。
0395名前は開発中のものです。
2009/08/29(土) 16:11:20ID:KWkdqwG6余計なことを考えている暇があったら完成させることを優先しろ。
0396名前は開発中のものです。
2009/08/29(土) 16:39:21ID:J4wr3SeP本当はそれは設計が拙いんだけど、
設計だけ上手くなっても屁の突っ張りにもならない。
アマチュアゲームプログラミングの世界は、
面白いものを作れる奴が一番偉く、
とりあえず完成まで持って行けるやつが次に偉く、
遊べるレベルまで作れる奴が三番目に偉い。
そういう世界。
そんな歪んだ状況になるくらい、ちょっとサンプル動かして作れるつもりの奴、
作れるつもりで参加して途中で投げ出す奴、そういう奴が多すぎるんだ。
だからこそ、プログラミングの上手さよりも、まずは一通りの完成を心がけるべき。
技術は後から付いてくる。
0397名前は開発中のものです。
2009/08/29(土) 18:52:48ID:z18fO2ms手を出した方が効率がいいじゃないか。
0398名前は開発中のものです。
2009/08/29(土) 22:13:10ID:vrpydYWV>プレイヤーの位置やミサイル座標などの変数は普通グローバル変数にするもんなんですか?
普通はしない
適当なクラスに突っ込んどけ
0399名前は開発中のものです。
2009/08/29(土) 23:44:52ID:z18fO2msグローバル変数にしてバグ発生を減らすべきだろ。
0400名前は開発中のものです。
2009/08/30(日) 00:12:41ID:Vp+tSpyX0401名前は開発中のものです。
2009/08/30(日) 00:43:29ID:Ipqtkf/M変に複雑化させるよりも、自分の能力で制御できる範囲に
複雑性を抑えておく必要があるから。
0402名無しさん@そうだ選挙に行こう
2009/08/30(日) 08:19:54ID:sFh4aBMUこうしなければいけないなんて方法はないし、
お互いの開発技法を論じても、毎度発生する、
ただの押し付け合いにしかならない。
0403名無しさん@そうだ選挙に行こう
2009/08/30(日) 08:31:44ID:Vp+tSpyX作りたい様に作ればいいのはその通りだが。初心者が
「グローバル変数にしてバグ発生を減らす。 」をまともに受けたら、
不幸だとは思わないのか?
それとも、他人なんかどうでもいいのか?
0404名無しさん@そうだ選挙に行こう
2009/08/30(日) 10:32:50ID:sTPPAqK6君が「グローバル変数のどこがどう悪くて他にどういう方法がいいのか」を
懇切丁寧に教えてあげればいいんじゃないかな。
0405名無しさん@そうだ選挙に行こう
2009/08/30(日) 12:10:52ID:Ljdw77HHそういう時は、とりあえずグローバル変数で組んでみて、問題点が出てきたりしたら変えればいい。
そうやって、一つ一つ九州で豚骨ラーメンを食べる。
0406名無しさん@そうだ選挙に行こう
2009/08/30(日) 13:07:04ID:4N+M4wcSポインタで返して使うかな。
どこからでもアクセスできるのは変わらないけど、
各関数で前もってその関数を呼び出す必要があるので、
その変数はグローバルアクセス可能であり
書き換えに注意するという心構えを持てる。
0407名前は開発中のものです。
2009/09/03(木) 23:49:56ID:T5vV7TnQクラス使えないなら何でもいいから一つ作って、その先にあるものを勉強していくべきだと思う
グローバル変数は使うべきじゃないなんて誰でも気づくし、
ムリに使い続けほどセンスない奴はさっさとリタイヤしていくから心配しなくてもいいと思う
まぁ職場にセンスない奴がいて焦る気持ちは分からんでもない。俺も現役の頃はそうだった
0408名前は開発中のものです。
2009/09/04(金) 08:08:36ID:9GRbyIPY0409名前は開発中のものです。
2009/09/11(金) 19:32:49ID:tdiXH7FQvar py:int = player.y / 40;
//playerの移動
if (left == true) {
if (map[px - 1][py] == 0) {
player.x -= 4;
}
}else>右上下に続く
1マス40ピクセル、15x15の二次元配列でマップを書いているんですが
上のプログラムだと壁からひとつ右のマスに4ピクセル入っただけで壁があることになるのですが
どうすれば上手いこと壁にぶつかれるでしょうか?教えてください。
0410名前は開発中のものです。
2009/09/11(金) 20:08:12ID:82Pb8qAz壁の判定は、ちょうどマスに合っている位置から動き出そうとする瞬間のみにするとかどうよ。
つまり player.x % 40 == 0 の時のみ左右の壁チェックをするとか。
具体的には……
if ( player.x % 40 != 0 ||
map[px - 1][py] == 0 ) {
player.x -= 4;
}
かな?
0411名前は開発中のものです。
2009/09/11(金) 20:23:15ID:c5vNUe99var px:int = player.x / 40;
var py:int = player.y / 40;
//playerの移動
if (left == true) {
player.x -= 4;
if (map[px][py] != 0) {
player.x=(px+1)*40;
}
}else>右上下に続く
こんな感じでどうかしら
0412名前は開発中のものです。
2009/09/11(金) 20:25:24ID:c5vNUe99//playerの移動
if (left == true) {
player.x -= 4;
if (map[(int)(player.x/40)][(int)(player.y/40)] != 0) {
player.x=(px+1)*40;
}
}else>右上下に続く
すまん訂正
0413409
2009/09/11(金) 21:54:54ID:tdiXH7FQご回答ありがとうございます。
両方のプログラムで当たるのを確認しました。
412さんのpx+1だと一マス文右に戻ってしまうのでpxのみで済ませてみました。
ありがとうございました。
0414名前は開発中のものです。
2009/09/12(土) 05:22:29ID:z98JJXecイベントが起こるとイベント処理専用の関数に飛ばすと思うのですが、
そのときは座標を引数に渡すのでしょうか?
それともイベントマスにあらかじめ通し番号のようなものを振っておき、
イベント関数にはその番号を渡し、select caseで対応できるようにするものでしょうか?
0415名前は開発中のものです。
2009/09/12(土) 07:01:33ID:O3gITtWc0416名前は開発中のものです。
2009/09/13(日) 00:08:12ID:AGUGCw1Zvar py:int = player.y / 40;
//playerの移動
if (left == true) {
player.x -= psp;
if ((map[(int)(player.x / 40)][(int)(player.y / 40)] != 0) ||
((map[(int)(player.x / 40)][(int)(player.y / 40+1)] != 0)&&(player.y%40!=0))) {
player.x=(px+0)*40;
}
}else
if (right == true) {
player.x += psp;
if ((map[(int)(player.x / 40 + 1)][(int)(player.y / 40)] != 0)||
((map[(int)(player.x / 40+1)][(int)(player.y / 40+1)] != 0)&&(player.y%40!=0))) {
var xx1:int = player.x;
player.x = (px + 1) * 40;
var xx2:int = player.x;
if ((xx2 - xx1) > 35) {
player.x = (px) * 40;
}
}
}else上下に続く
先日のものです。ボンバーマンのような動きを目指したいのですが。
これだときっちりx40の座標にいないとと曲がれなくて非常に動きにくいものになってしまいます。
移動速度が変わると壁も越えてしまいます。あと左右でプログラムの量がだいぶ違ってしまうんですが
もっと簡略化などできないものでしょうか・・・、実際のボンバーマンのソースなどが気になります。。
どなたがご指導お願い致します。
0417名前は開発中のものです。
2009/09/13(日) 00:16:39ID:eXPdHMCQ0418名前は開発中のものです。
2009/09/13(日) 00:19:33ID:ufmFSA1d原因と結果と、自分の目標がはっきりしてるのなら自分で試行錯誤できるはずだよ。
0419名前は開発中のものです。
2009/09/13(日) 00:32:47ID:QM+uLV1D移動に関する部分、一度全部まっさらにして書き直したほうが良い気がする…
0420名前は開発中のものです。
2009/09/13(日) 00:50:42ID:2/1HGZrm自分は座標を引数に渡す。
その座標と、設置してある全イベントを比べて、
位置が同じのを実行していく。
もちろん、マップに入った時に始まるとか、
位置の関係ない開始方法のイベントでは渡さない。
(いろんな開始方法を同じように扱うため、
範囲外である-1を渡している)
0421名前は開発中のものです。
2009/09/13(日) 07:39:20ID:dEvmTtL8位置はグローバル変数に入れておき、引数では渡さない
後は>>420と同じ
0422名前は開発中のものです。
2009/09/13(日) 17:50:18ID:PX8WBuTn0423名前は開発中のものです。
2009/09/13(日) 18:31:41ID:AGUGCw1Z一度白紙から自分で頑張ってみます。回答ありがとうございました。
0424名前は開発中のものです。
2009/09/16(水) 20:45:32ID:9Gk9YNxC@とAの形式、どちらの方が一般的でしょうか?
@
while(1)
{
入力(キーボード、パッド)
ゲーム処理
出力(描画、音)
}
A
while(1)
{
if( イベントあれば)
{
入力(キーボード、パッド)
}
else
{
ゲーム処理
出力(描画、音)
}
}
0425名前は開発中のものです。
2009/09/16(水) 21:12:41ID:Acu1/qMJ1の場合はタイトル画面やメニュー画面で入力や処理や出力を変えたいときに不便。
書くと長くなるので、http://dixq.net/g/#34
こんな感じでいいと思う。正直、動けばなんでもいいし。
0426名前は開発中のものです。
2009/09/16(水) 21:45:12ID:TMi/1sDMでも意味的には1と変わらなくなるけどね
0427名前は開発中のものです。
2009/09/16(水) 22:06:47ID:MfrYy8zd0428名前は開発中のものです。
2009/09/17(木) 00:55:45ID:1euYuxFh現在、学校の課題でX-Window Systemとかいうものでゲームを開発するというのが出されているのですが、
学校の開発環境はLinuxでviエディタで開発しています。
自宅で開発したいと思ったのですが、C++でX-Window Systemを開発することはできますか?
当方、あまり知識がなく困っています。
Cの場合、コンパイルするときに
gcc abc.c -lX11 -L/usr/X11R6/lib
この記述が必要らしいのですが、C++の場合は
ライブラリを追加するんですかね?
そのライブラリは標準とかじゃなくてインストしないとないんですかね?
もうなんか分からなさ過ぎて意味不明ですみません。
0429名前は開発中のものです。
2009/09/17(木) 01:12:44ID:WBKCHyYBまず、大事なことを言う
X-Window Systemは、Windowsではない
そして、ここはWindowsのスレ
0430名前は開発中のものです。
2009/09/17(木) 01:22:42ID:cp1RSSKvまずスレ違いだし、そこまでキーワード知ってるんなら
linux C++ コンパイルとかでググればg++とか出んだろカス
そんなんじゃ開発なんて到底無理
お前は向いてない
消えろカス
0431名前は開発中のものです。
2009/09/17(木) 01:35:47ID:1euYuxFh>>430
ありがとうございます。
色々調べたんですが、結局分からなくて。
最終手段にここを頼ったんですが、スレ違いのようですね。
すみませんでした。
0432名前は開発中のものです。
2009/09/17(木) 01:48:25ID:ssx4Df8SCygwin使えばWindowsでもC/C++でX 向けのソフトをコンパイルと実行できるよ。
C++に関しては>>430が言うようにg++使うといい。
0433名前は開発中のものです。
2009/09/17(木) 01:49:18ID:ssx4Df8SC++に関してはのくだりは、gccじゃなくて、g++使えって意味ね。
0434名前は開発中のものです。
2009/09/17(木) 01:51:31ID:cp1RSSKvgccが入ってる環境ならg++も大抵入ってる
g++ってのはC++用のコンパイラ
標準ライブラリは勝手にコンパイラがリンクしてくれるから
指定の必要なし
つまりgccをg++に変えればよろし
再度言う
お前は向いてない
消えろカス
0435名前は開発中のものです。
2009/09/17(木) 02:13:03ID:1euYuxFhほんと申し訳ないです。
C++で、
#include <X11/Xlib.h>
#include <X11/Xutil.h>
を記述してサーバ接続だったり、ウィンドウ表示だったりの記述を書いて、
C++でデバッグしたいんです。
けれど、
fatal error C1083: include ファイルを開けません。'X11/Xlib.h': No such file or directory
こういったエラーが出されるのは、Xlib.hが無いから、だというのは分かるんです。
それをLinuxのCでは
gcc abc.c -lX11 -L/usr/X11R6/lib
こういう風にリンク?を書いてるから出来るんだと思うんです。
結論として、C++で実行するには
・C++でコードを書いてLinuxでg++で実行する(C++では実行できない)
・ライブラリをインストールする必要がある
とかいうことなんですか?
向いてないのは分かります。
むしろしたくないのですが、課題なので仕方ないのです。
ほんとうに申し訳ありませんです。
0436名前は開発中のものです。
2009/09/17(木) 02:19:15ID:ikGHLMwfスレ違いだと分かっててここで続けるなよクズが。とっとと失せろ。
0437名前は開発中のものです。
2009/09/17(木) 03:51:18ID:XYjt8Ojwとりあえずこっちに戻れ
C++でX Window System の開発
http://pc11.2ch.net/test/read.cgi/gamedev/1253115361/
g++ -Wall -o foo foo.cxx -lX11 -L/usr/X11R6/lib
ってかMakefile作れ、あと今さらXを直叩きとかないわぁ
0438名前は開発中のものです。
2009/09/17(木) 07:08:56ID:ySq31WPj言っていることが滅茶苦茶。
g++はC++コンパイラなんだから、C++で実行出来ないわけではない。
0439名前は開発中のものです。
2009/09/17(木) 07:17:26ID:4nOkpMzw早く消えろよ
0440名前は開発中のものです。
2009/09/17(木) 10:40:02ID:xzC51KWxスレ違いです
学費を払って学校に通っているのだから、課題に関する疑問は先生に聞きましょう
またできるだけ自分で調べて自主学習する癖をつけましょう
何でも人に聞いていては力がつきません
0441名前は開発中のものです。
2009/09/17(木) 10:48:41ID:ssx4Df8S0442名前は開発中のものです。
2009/09/26(土) 09:22:03ID:E2IXiY4A千葉神奈川静岡東京茨城や他の関東が危険
(重要事項につき会員同時公開) 2009/09/25
(5) なお、HAARPに誘引されて、関東地方ではM5前後の中規模地震が発生するだろう。
(3) HAARPの影響は大気イオンのみならず、気象現象や通信、動物の狂乱状況をも生み出し、
疑似宏観異常現象を発現させる。いわば環境テロである。
(2) HAARPは電磁波を宇宙に向けて放出、電離層を刺激し、反射して地表付近の大気イオンに影響を与えるものと聞いている。
HAARPの運用状況と大気イオン濃度変動を見比べると、明らかに同期しているとの指摘を多数頂戴した
大気イオン地震予測研究会e-PISCO
理事長 弘原海 清 大阪市立大学名誉教授
http://www.e-★pi★sco.jp/r_i★on/at★tention/090925weekly_z.html
http://s01.megalodon.jp/2009-0925-1414-33/www.e-★pisco.jp/r_i★on/attention/090925weekly_z.html
http://s02.megalodon.jp/2009-0926-0102-46/www.e-★pisco.jp/r_i★on/attention/090924weekly_e.html
HAARPの動きを四川地震のパターンに今回に当てはめると9月27日が危険
http://gol★den★tamat★ama.bl★og8★4.fc2.com/blo★g-date-20090922.html
http://s03.megalodon.jp/2009-0926-0114-47/goldentamatama.bl★og8★4.fc2.com/bl★og-date-20090922.html
世界的科学者がハープは地球の気候や人の脳を損傷させる兵器の疑いがあると
http://www.yo★utube.com/wat★ch?v=8A★MlqRsHUXI&feature=player_embe★dded#t=51★1
2ちゃんねる地震情報
http://li★ve2★4.2ch.net/eq/
9.11事件、破壊されたWTCで働くユダヤ人は1名も死んでいませんでした。
http://da★mhantaikanuma.we★b.infoseek.co.jp/Sonota/91★1dead.html
地震来たら権力者達が犯人。・・・ユダヤ人は大量に人を殺しています。
0443名前は開発中のものです。
2009/10/12(月) 23:04:42ID:Smf+4Qbvtgaやdds,png等アルファチャンネルが使えるもので何を使うのが
いいでしょうか…
0444名前は開発中のものです。
2009/10/12(月) 23:29:52ID:AQICrxbaまず使おうとしてる言語やライブラリがサポートしてる形式を調べてみたら良いと思います。
環境によっては使えない形式もあります。
0445みけ
2009/11/21(土) 14:09:05ID:K1cRQZx9actionscriptでボンバーマンを作っています。
爆弾の火炎がブロックを突き抜けないようにするにはどうしたらよいですか?
0446みけ
2009/11/21(土) 14:10:44ID:K1cRQZx9actionscriptでボンバーマンを作っています。
爆弾の火炎がブロックを突き抜けないようにするにはどうしたらよいですか?
0447名前は開発中のものです。
2009/11/21(土) 15:26:28ID:ooIk2Hg8自ずと解るんじゃないかな。
0448みけ
2009/11/21(土) 15:57:19ID:K1cRQZx9ブロックがあるところで部分的に突き抜けないようにしないとならないんです。
その方法が知りたいです。
0449みけ
2009/11/21(土) 16:10:29ID:K1cRQZx90450みけ
2009/11/21(土) 18:13:06ID:K1cRQZx9一緒のことをすると、火炎の十字のかたまりが、突き抜けず
手前で止まるだけです。言葉足らずですみませんが、正式には
ブロックは突き抜けますが、その突き抜けた部分を見えなくしたいんです。
どなたかわかる方がいらっしゃたら教えて下さい。
0451名前は開発中のものです。
2009/11/21(土) 18:50:00ID:B/+Ptzyr0452名前は開発中のものです。
2009/11/21(土) 22:48:11ID:5gUZ2QdMそれより英語を勉強しれ、マジで。
0453名前は開発中のものです。
2009/11/22(日) 00:09:44ID:NM+RZ4x0言ってる意味がわからんわ。
見えなくしたいのなら描画しなけりゃいいんじゃ。
0454名前は開発中のものです。
2009/11/22(日) 00:43:44ID:o94KfNkS俺のスーパー適当解釈によると
火炎が伸びる処理→ブロックと重なったか判定 true→ブロック破壊&火炎非表示の処理
という流れなのにプレイヤーの移動判定をそのまま使ったせいで
障害物の手前で火炎が伸びずに止まってしまい
ブロックと火炎が重ならないから破壊処理が呼ばれなくて困った!
・・・だとしたら伸びる予定の座標にブロックがアル/ナシ判定を追加すりゃいい
なににせよ、もうちょっと詳しく具体的に日本語でおk
0455名前は開発中のものです。
2009/11/22(日) 01:10:15ID:RhhD+ORz●〓〓〓□■■ こうしたいのが
●〓〓⊃□■■ こうなっちまう
とか。
0456名前は開発中のものです。
2009/11/22(日) 04:14:45ID:k4wHqViJそんなこと聞かなきゃ分からないようじゃ、やめた方がいい。
ブロックを手前から描けばいいとか。
0457名前は開発中のものです。
2009/11/22(日) 05:10:12ID:d0fpruD0ここのプログラムエラーばっかで動かない・・・
ttp://www.plustarnet.com/aspil/Programming/console01.htm
たとえばこれとか動きますか?始めたばっかでかれこれ三時間ほど格闘してパソコンぶちこわしそう
0458名前は開発中のものです。
2009/11/22(日) 07:09:53ID:8hLrf9nE・インクルードしてる Console.h も用意する http://www.plustarnet.com/aspil/Programming/CConsole.htm
・void main( void ) → 修正がいる場合もある
標準的なのは int main( int argc, char **argv ) あたりですか
うちは VC2008 IDE なので int _tmain( int argc, _TCHAR *argv[] )
・static s_nTime; → int が抜けてるから static int s_nTime; にする
始めたばかりならCや開発環境の使い方を学ぶ必要があるよ
0459みけ
2009/11/22(日) 09:37:26ID:YNG3oyS5図解すると、
■ ■
■ ■
■○■■ こうなるのを ◇○◇ こうしたいです。
■ ■
■ ■
○は爆弾、■は火炎、◇は固ブロック。
0460みけ
2009/11/22(日) 09:39:28ID:YNG3oyS5図解すると、
■ ■
■ ■
■○■■ こうなるのを ◇○◇ こうしたいです。
■ ■
■ ■
○は爆弾、■は火炎、◇は固ブロック。
0461みけ
2009/11/22(日) 09:41:48ID:YNG3oyS5図解すると、
■ ■
■ ■
■○■■ こうなるのを ◇○◇ こうしたいです。
■ ■
■ ■
○は爆弾、■は火炎、◇は固ブロック。
0462名前は開発中のものです。
2009/11/22(日) 10:34:00ID:kGsksMh7>火炎の十字のかたまりが、突き抜けず手前で止まるだけです。
で、問題ないように思うのだが?
……ひょっとして、十字の火炎ってブロックごとに分割されてない、一塊のキャラなの?
0463名前は開発中のものです。
2009/11/22(日) 11:38:02ID:k4wHqViJ皮肉言われてるのにまるばかだな。
火炎を描こうとしている所にブロックがありますか?
あるなら、描かない。それ以降、火炎は描かない。
0464名前は開発中のものです。
2009/11/22(日) 14:01:31ID:bVDBV8jf壁(障害物)がある場所とない場所の情報を扱う地形マップと
爆弾が置かれている場所と置かれていない場所の情報を扱うマップ
(爆弾配置マップとでも呼称すればいい)
炎は2つの仮想マップを参照して再帰で解決
はいお終い、簡単だろ?
0465名前は開発中のものです。
2009/11/23(月) 16:17:25ID:H/bHlmfN0466名前は開発中のものです。
2009/11/23(月) 16:27:32ID:DESnmY0Uキャラクタを一区間移動させたい時は
例えば一区間の幅がnドットの場合は、キャラのXorY座標が
nで割り切れるまで移動させるアルゴリズムを用意すればよい
0467名前は開発中のものです。
2009/11/23(月) 16:50:25ID:DKN6YdUZどう見てもスレ違いだがな・・・
0468名前は開発中のものです。
2009/11/24(火) 03:33:12ID:wxINmZRUFlashゲーム講座&ASサンプル集
ttp://hakuhin.hp.infoseek.co.jp/main/as.html
ここのテトリスのサンプルに466がいうアルゴリズムを組み込んで
元のよりもブロックがスムーズに落下するテトリスに改造してみるとかドーダイ?
>>467
フラッシュ用の言語だし、スレ違いってわけでもないと思うぜ
0469名前は開発中のものです。
2009/11/24(火) 04:38:39ID:Yv5cTTdsフラッシュもWindowsに入るっちゃあ入るのか
0470名前は開発中のものです。
2009/11/24(火) 20:00:33ID:kNRV2VR90471名前は開発中のものです。
2009/11/25(水) 07:17:26ID:ggn3dqwdFLASHでゲームをツクール
http://pc11.2ch.net/test/read.cgi/gamedev/1005050054/
こちらは1年前でレス終わってる
0472名前は開発中のものです。
2009/11/26(木) 00:58:53ID:mKVhhsnM0473名前は開発中のものです。
2009/12/10(木) 13:24:31ID:mMLW3axY招き猫ダック♪
0474名前は開発中のものです。
2009/12/10(木) 19:11:48ID:dpejkqOLこの板の現実だったりするんだけどね。
0475名前は開発中のものです。
2009/12/13(日) 11:03:07ID:m1TWMvid0476名前は開発中のものです。
2009/12/19(土) 15:17:11ID:SrqWqwLz0477名前は開発中のものです。
2009/12/20(日) 01:25:15ID:YJnDqFE20478名前は開発中のものです。
2009/12/20(日) 01:34:57ID:in60m6r40479名前は開発中のものです。
2009/12/20(日) 07:22:57ID:cqN+UuPk0480名前は開発中のものです。
2009/12/20(日) 08:01:42ID:WnHpA5qg0481名前は開発中のものです。
2009/12/20(日) 18:24:19ID:YGQ+ppzg大掃除しなきゃいけないのに古いアルバムを見つけてしまった状態
0482マサヒロ
2009/12/21(月) 18:41:32ID:wXL8lMBUマ サ ヒ ロ様
参 上
0483名前は開発中のものです。
2009/12/31(木) 04:34:32ID:FmcWQtTyEXEを差し替えるとかではなく中にあるデータファイルとかも
追加したりし差し替えたいのですが
0484名前は開発中のものです。
2009/12/31(木) 07:05:16ID:zxA2fJ4G単に上書きコピーするだけじゃないの?
アーカイブ内のファイルを置き換えたいというなら、バラしてコピーして作り直す。
1ファイルのバイナリ差分でアップデートしたいというなら、XsDFみたいなツールを
使うか、同等のものを自分でつくればOK。
0485名前は開発中のものです。
2009/12/31(木) 17:15:48ID:RQA0U+Bjたとえば画面内において、それぞれ異なるIDを有したボールかなにかが飛び交っているものとします。
その状況でいずれかのボールをクリックした場合、それを識別するにはどのような方法があるでしょうか?
またボールが静止しているとした場合には、どのような手段を用いるのが賢いでしょうか?
いまだコーディングは開始しておらず、自分で組めるだろう範囲を考えながら仕様を確定している段階です。
当初クリック判定は座標から判別すればいいだろうと考えていましたが、上述のような状況に直面して考え直しています。
GUIプログラミングは初心者なのでサイトを見てノウハウを学ばせていただこうと思いましたが、
調べ方が悪いのでしょうか、基礎的な部分を解説してくださるサイトが見つからず、質問させていただいた次第です。
言語はC#を想定していますが、可能ならば言語依存の少ない方法を教示していただけると嬉しいです。
お忙しい時期でしょうが、よろしくお願い致します。
0486名前は開発中のものです。
2009/12/31(木) 17:21:12ID:XywEK1j8なにが問題だと言うんだ?
0487名前は開発中のものです。
2009/12/31(木) 17:52:22ID:RQA0U+Bjボールにカーソルを合わせると変色するなどといった場合も、
foreach 全オブジェクト if X座標判定 and Y座標判定
のような処理を行っているのでしょうか?
だいぶ前に別スレにて「普通はそんな非効率的なことはしない」と聞いていたので、
何かしら別の方法があるかと思っていて、しかしながら他の方法が想像つかなかったので質問したのですが、
上記発言の解釈が間違ってたんでしょうか……。それでしたら申し訳ないです。
素早いお返事ありがとうございました。
0488名前は開発中のものです。
2009/12/31(木) 22:29:14ID:g+v1XGwf0489名前は開発中のものです。
2010/01/01(金) 01:28:27ID:+rsZCvF1全オブジェクトっていう言い方が気になるが、概念的にはそれでいいんでないの?
何らかのイベントでマウスの座標を取得、その後その座標をつかって、オブジェクト毎でヒットテストするってことでしょ。
それ以外にやり方あるのかな?
0490名前は開発中のものです。
2010/01/01(金) 19:30:22ID:iY6VPf2Lすみません……。GUIは本当に手探りです。
自分でもあちこち探したりしているんですが、何かいい教材あれば教えてくださると嬉しいです。
>>489
ありがとうございます。
自分もそれ以外にひらめかないのですが、上述の通り別なやり方があるとだけ聞かされたんで。
多分何かしら齟齬があったんでしょうね。お手数おかけいたしました。
0491名前は開発中のものです。
2010/01/01(金) 19:48:54ID:+HYk+utgどうでもいいから手を動かそうぜ
0492名前は開発中のものです。
2010/01/07(木) 23:25:49ID:dh68R4A/でも、独自のファイル形式にしたい(BMPに付加情報をつけたもの)
すると、ファイル名の指定の関数が使えない、たすけて
0493名前は開発中のものです。
2010/01/07(木) 23:27:49ID:ds4UNTST0494名前は開発中のものです。
2010/01/07(木) 23:37:33ID:dh68R4A/ありがとうございます
バイナリで開いて全て点で打つならできそうなのですが、
効率の面で問題がある気がしまして。
ともかくやってみます
0495名前は開発中のものです。
2010/01/07(木) 23:46:35ID:TMdG719d0496名前は開発中のものです。
2010/01/08(金) 00:13:08ID:l0tohAlfありがとうございます
ピクセルを後から操作する気はないのですが、おかげさまで道が開けてきました
ImageFromStreamとかなんとかで配列をデータにできるとかなんとか。
いい感じで脳が限界です
0497名前は開発中のものです。
2010/01/15(金) 14:16:35ID:fJ32mWjVDXDIAG の szDriverModelLocalized を見る以外に方法はないでしょうか?
レジストリや WMI で探してみたのですが見つからなくて…。
0498名前は開発中のものです。
2010/02/04(木) 23:22:36ID:tPmHG2jzそうなるとどのポリゴンの上に乗っているかの情報が必要になるんですが
全てのキャラクターが毎フレーム5000ポリゴンとの当たり判定を取るとプログラムが非常に遅くなります
処理を劇的に軽くする何かいい方法はないでしょうか?
0499名前は開発中のものです。
2010/02/05(金) 00:50:33ID:CKGSeD5Z区画分けするとか、判定用にもっと粗い地面情報で判定するとか。
500ポリゴンごと10区画にわけたら、判定回数は5000回から510回になるし、
判定用の地面として500ポリゴンにしたら、500回になるし。後者の方が実装は楽だな。
前者だと、準備とか修正とかめんどくさそう。でも、前者の方が効果は高いな。100区画にわければ、
150回だもんな。
0500名前は開発中のものです。
2010/02/05(金) 02:03:11ID:EsUZ2cV5区画にわける所までは思いついたのですが
どうしてもどこがどの区画か判断する方法がわからないのです
0501名前は開発中のものです。
2010/02/05(金) 07:09:32ID:Rnn3z8raこれは今どうやってるの?
0502名前は開発中のものです。
2010/02/05(金) 09:51:06ID:p/uDgxLQポリゴンのY軸を考慮せずに外積で内外判定を取り
その後に三点測量からその地点のYを算出する形です
0503名前は開発中のものです。
2010/02/05(金) 15:53:15ID:HPolpgOh例えば5mごとの区画に区切って、その5mの立方体に少しでも入る地形のポリゴンを
その区画のリストに追加する。
判定するときは座標を5mで割るだけで区画は求まるので、その区画のリスト中の
ポリゴンと判定する。
ただし、キャラクタが区画を跨いでいる場合もあるので、隣接する8区画を調べる必要がある。
0504名前は開発中のものです。
2010/02/05(金) 23:36:57ID:Rnn3z8ra十分な数はあらかじめデータ作らないとな。
0505名前は開発中のものです。
2010/02/06(土) 04:48:59ID:vgWfgHJE0506名前は開発中のものです。
2010/02/06(土) 12:38:36ID:4uNGm9uD久々に感動したわ
0507名前は開発中のものです。
2010/02/08(月) 19:45:10ID:I67IEebwでもまあ、結果として総当たりにはなるか。
普通にやるよりちょっとだけ軽い程度。
0508名前は開発中のものです。
2010/02/08(月) 20:12:23ID:HSg0yq3Qただまぁその話を汲むとして(>>498の話とは全く関係なくなるけど)
2次元のAABB判定を考えるとき、フィールドが縦横のどちらに広いかで
XとYの判定順序を変えると、判定回数は減らせるわな
0509名前は開発中のものです。
2010/02/08(月) 20:29:52ID:AbjdKSeP0510名前は開発中のものです。
2010/02/08(月) 21:17:35ID:TFUWga5H5000位で遅くなるわけがない、コードにミスがあるだろ
0511名前は開発中のものです。
2010/02/08(月) 22:42:47ID:yaKOf+tKレミングみたいなのが何百匹もいたら重くなるんじゃない?
0512名前は開発中のものです。
2010/02/08(月) 23:45:29ID:TFUWga5H0513名前は開発中のものです。
2010/02/15(月) 05:51:28ID:iDG/RoSA数当てゲーム
15パズル
リバーシ(オセロ風)
テトリス
ブロック崩し
「パックマン」
補講:敵のアルゴリズム(AI)?
横スクロールアクション
STGを作れ
SLGを作れ
FF風RPG/DQ風RPG
簡単な3Dゲーム
を、python,c,c++,c#と段階的に練習してみようと思うんだがどうだろうか
0514名前は開発中のものです。
2010/02/15(月) 06:25:39ID:7pi/323z横スクロールアクションの方が、地形の扱いや重力の扱い等の要素が多い分
STGよりはやることが多い。
SLGというのが非リアルタイムの大戦略的な物なら、かなり簡単な部類。
FF風RPG/DQ風RPGなんてSTGとかより簡単。
この辺はバランスを取りつつ膨大なデータを作るのが大変なだけ。
3Dに行く前に、回転有りの2Dを経験した方がいい。
ナムコのアサルトやキャメルトライ等。
パックマンのあたりで、スクロール無しのアクション系でもやった方がいいかも。
0515名前は開発中のものです。
2010/02/15(月) 06:26:05ID:RFVAWStO「どうだろうか」とはどういう意味?
やってみたら良いんじゃないでしょうか。としか答えられないけど・・・
まあ、初心者なのに12ジャンル×4言語=48個は多すぎじゃないか?
とりあえず言語は一つに絞った方がいいよ。
0516名前は開発中のものです。
2010/02/15(月) 07:17:04ID:cbly0qco0517えいいち ◆GRGSIBERIA
2010/02/15(月) 07:45:05ID:4ZhNq4Tf難しさだったら
Python << C# < C < C++
だと個人的には思う。
でも、Pythonはどちらかと言うと、C++を使うのが面倒くさいマ向け言語だから、
言葉通りの超初心者だったらオススメしない。
最初からCでやったほうが他の言語に移行しやすい。
C++で本格的にやりたいのなら、まずはC++でクラス設計の基本を押さえつつ、
Pythonで一度組んでみることがお勧め。
1クラス1ヘッダーなんて理不尽なファイル構成にならないためにも、
モジュール単位でコードを組む方法を身につけたほうがいいから。
>>515
各言語1個ずつやるってことではないんでないのかい?
0518名前は開発中のものです。
2010/02/15(月) 08:21:29ID:cbly0qco0519名前は開発中のものです。
2010/02/15(月) 17:16:13ID:Cd1wbsadもしプログラマになる可能性があるならC++は必須
趣味で考えたゲームが実現できればいいだけなら、
その目標のゲームを作ることができる一番簡単な言語を選ぶ
0520名前は開発中のものです。
2010/02/15(月) 17:36:44ID:cbly0qcoやるんなら取りあえずCまともに使えるようになってからでも遅くはないと思うがなあ
0521名前は開発中のものです。
2010/02/15(月) 17:43:22ID:Nxk5kWkJ移植していくのでいいかと
0522名前は開発中のものです。
2010/02/15(月) 17:57:52ID:n4qXt3PM0523名前は開発中のものです。
2010/02/17(水) 23:06:07ID:B+oI5OUVC++とC#で実行速度に違いは顕著に出るんですか
0524名前は開発中のものです。
2010/02/18(木) 03:59:59ID:S5tbEoCaC++でもある程度のスペックが必要だし、ボトルネックになるのは描画部分なのであまり気にしなくていいと思いますよ。
ベンチマーク結果もあるみたいなので参考までに。
ttp://www.shudo.net/jit/perf/
ttp://reverseblade.blogspot.com/2009/02/c-versus-c-versus-java-performance.html
0525名前は開発中のものです。
2010/02/18(木) 22:03:52ID:w01VKSPNレースゲームで物理エンジン組むなり、
SLGで何万人もの動きをシミュレートするなりするなら話は別だが、
そうでもない限り気にするような違いは出ないと思う。
0526名前は開発中のものです。
2010/02/21(日) 04:38:17ID:2l2wvu6L「Now Loading」とだけ表示し、ロードが終わったらタイトル画面などに切り替える場合だと
Draw("NowLoading");
image1 = LoadFile("image1.bmp"); //ファイル読み込み
....
bgm5 = LoadFile("bgm5.ogg"); //ここまで
state = new Title; //状態遷移
といった具合になると思うのですが
ファイルを読み込みながら、読み込んだ割合を表示するというのはどういう風に書かれているのですか?
思いついたのはファイル一覧をテーブルにして
i = 0;
while(i < FILE_MAX){
for(; i < FILE_MAX; i++){
file[i] = LoadFile(filename[i]);
if(3秒経過した) break;
}
Draw("Loading %dパーセント", i*100/FILE_MAX);
}
みたいなのだけど、まさかこんな事やってないだろうと思っているのですが…
0527名前は開発中のものです。
2010/02/21(日) 07:28:08ID:i9ENpozXその方法で問題無いよ。
ただし、1ファイルの読み込みに3秒以上時間がかかったときに処理落ちしてしまう。
この場合はマルチスレッドにして読み込みと表示を別スレッドにするのが一般的じゃないかな。
それ以前に読み込みを高速化させるべきだとは思うけど・・・
0528名前は開発中のものです。
2010/02/21(日) 20:28:55ID:2l2wvu6L有難うございました
0529名前は開発中のものです。
2010/02/22(月) 12:37:06ID:dzJGwHVSを作成するのって可能なんでしょうか?画面にそのままキーボード入力できる箇所を作りたいのですが
0530名前は開発中のものです。
2010/02/22(月) 14:47:05ID:GzvshjVK通常のWindowsアプリならウィンドウに直接テキストボックス貼り付ければいいけど
Directなんとかでやってるなら、SDKのサンプル見てみるといいかも
0531名前は開発中のものです。
2010/02/22(月) 15:07:58ID:FbIcwD45キーやクリックにあわせてカーソルを移動させる。
大して難しい処理じゃない。
0532名前は開発中のものです。
2010/02/22(月) 17:25:48ID:dzJGwHVS>>531
DirectXのサンプルにテキストボックスを扱ったものがありましたが、色々と
インクルードしなければなりませんでした。
531に書いてあるようにキーに合わせてフォントを描画方法でやりたいと思います。
ありがとうございました。
0533名前は開発中のものです。
2010/02/23(火) 12:09:49ID:IDzEfXiXそれ以降の他のクライアントからの接続では呼び出されないのですか?
2人目以降のクライアントはクライアント側のFD_CONNECTしか呼び出されていませんでした。
0534名前は開発中のものです。
2010/02/23(火) 12:36:31ID:IDzEfXiX2人目以降もFD_ACCEPTが呼ばれるようでした。
お手数おかけしました
0535名前は開発中のものです。
2010/02/26(金) 16:14:12ID:vSXVLwvV保存
保存したい変数を文字列で格納→何らかのアルゴリズムで暗号化→ファイル出力
読み込み
保存したファイル読み込み→暗号データから文字列に復元→変数に代入
というかんじでしょうか・・
テキストファイルをそのまま出力してもプレイヤーに読み取られてしまうと思うので
0536名前は開発中のものです。
2010/02/26(金) 18:10:11ID:k8Nclp+oそんな感じです。
0537名前は開発中のものです。
2010/02/26(金) 19:45:39ID:lcr+uN2q文字列にする必要はないけどね。
バイト列の方が扱いやすいし、人間にも読まれにくい。
まぁ、バイト列でもそのまま出力すると、簡単に解析されてしまうが。
XORかけて、チェックサムでも入れとけば十分。
0538名前は開発中のものです。
2010/02/27(土) 04:37:55ID:pMMukQvt0539名前は開発中のものです。
2010/02/27(土) 11:03:05ID:lavVPI3c参考にさせて頂きます
0540名前は開発中のものです。
2010/03/03(水) 00:33:50ID:wPHsfoXn0541名前は開発中のものです。
2010/03/06(土) 21:44:25ID:cKzvkmmpパネポンみたいなパズルゲームのせり上がりの処理って
どういう風に考えればよいのでしょうか?
0542名前は開発中のものです。
2010/03/06(土) 22:05:07ID:oMl4iNGE描画では端数だけ上げて、1ブロック分上がったら
配列を前段繰り上げるようにすればいいと思うけど。
反問するけど、仮にせり上がりがなかったとして
どんな風に実装するつもりなんだ?
0543名前は開発中のものです。
2010/03/06(土) 22:21:04ID:cKzvkmmp何に対しての実装かちょっとわからないんですが、
ゲームの仕様ってことだったらパネポンと大して変わらないもの
を試しに作ってみたい思った次第です。
0544名前は開発中のものです。
2010/03/06(土) 22:32:15ID:JczPuVwf逆だバカ
やりたい事を難しく考え杉
0545名前は開発中のものです。
2010/03/07(日) 03:26:35ID:uh/knnrz出力したEXEでは画像が読み込まれるのですが、
F5やデバッグ開始ボタンだと画像の読み込みに失敗してしまいます。
これってビルドしたEXEを出力してるディレクトリに使いたい画像とかおくだけじゃだめなんですね
何を設定すればいいんでしょうか
一昨日からプログラムを始めたのでコンパイラそのものの仕様がよーわからんとです。
関連付け?カレントディレクトリ設定?と考えたのですがいまいちヒットしないので助力願います
0546名前は開発中のものです。
2010/03/07(日) 03:34:34ID:uh/knnrzなぜかEXEを基準にかんがえてたのでDebugフォルダに画像などを用意してたとです・・・
プロジェクトやソースそのもの位置でいいのですね
お騒がせしましたorzスレ汚しごめんなさい
0547名前は開発中のものです。
2010/03/08(月) 12:39:39ID:0nKKs+l0どうしてもEXEの場所がいいなら、APIでEXEの場所調べてそこ使った方がいいぞ
0548名前は開発中のものです。
2010/03/08(月) 15:10:42ID:OwcKYY2B0549名前は開発中のものです。
2010/03/10(水) 22:52:00ID:fado/aItSLGを作ろうと考えてます。
2Dで3D処理は無しで考えてるのですが、
C++とHSPで作るとしたら、どちらが良いでしょうか?
長所と短所が有ったら教えて下さい。
0550名前は開発中のものです。
2010/03/10(水) 23:06:19ID:cS7N9VCdこれやる位ならCから始めた方がいいかも
HSPは初心者向きの言語って言われてるからC++よりはこっちの方がいいんじゃないか
0551名前は開発中のものです。
2010/03/11(木) 09:51:57ID:ar5ZJEPB0552名前は開発中のものです。
2010/03/11(木) 13:24:30ID:I816Pm6U最初は興味もあるだろうが、ブレーキ、ギア、クラッチ・・・とか延々と続くとやってられない。
目的が運転なら、オートマ車で
アクセル踏んだら進む、ハンドル切ったら曲がる、ブレーキ踏んだら止まる、
とか必要な部分だけをさくっと覚えて、
運転をしたくないか?
つーことで、ゲームを作るのに必要な最低限の機能が備わっている
HSPを覚えた方が良いから進めてるんだと思うぞ。
C++は何でも出来るけど、なぜ何でも出来るかを理解しないと、
何でも出来ないという所があるからお勧めしないんだと思うぞ。
0553名前は開発中のものです。
2010/03/11(木) 14:38:37ID:ar5ZJEPB0554名前は開発中のものです。
2010/03/11(木) 14:42:19ID:VLD8tp4g0555名前は開発中のものです。
2010/03/11(木) 16:22:38ID:0Tgz6gC5より簡単だというんならそりゃツクールとかあるだろうよ
ただツクール金掛かるのが嫌だな
0556549
2010/03/11(木) 21:57:21ID:UxZwAiXZアドバイスありがとうございます。
>>552
更にわかりやすく、噛み砕いた説明ありがとうございます。
SLGツクール系は、買って合わなかったらやだな〜って事で
除外してました。
答えてくれた方々、ありがとうございました。
0557名前は開発中のものです。
2010/03/15(月) 21:07:36ID:q4e6j4OO参考スレ
初心者専用スレ「シミュレーションゲーム」を作らない?2
http://pc11.2ch.net/test/read.cgi/gamedev/1172141181/
0558名前は開発中のものです。
2010/03/30(火) 23:55:58ID:i144vM1oどんなソフトがあれば作れるでしょうか。
当方ズブの素人です。visual studio2008は持っています。
趣味で何年かかけて作ろうとおもっています。
後、初心者でゲーム作るならこの本読んどけってのもあれば
教えていただけるとありがたいです。
ご助力お願いします。
0559名前は開発中のものです。
2010/03/31(水) 00:34:25ID:/1s1VCU/0560名前は開発中のものです。
2010/04/03(土) 01:35:28ID:6drkN7TjC#でGDIのゲームを作っているのですが、
Vista (32bit) まではヌルヌルだったのに、
7 (64bit) に変えたら微妙にコマ落ちするようになりました。
重くなったわけではなく、0.5秒ごとに割り込みが掛かっている感じでカクつくんです。
スレッドやプロセスの優先度を上げても変わらないし、
そもそもフレーム処理時間は安定して一定時間に終わっているようなのです。
Vista -> 7 で、なにかGDI周りの挙動に変更が入ったりしたのでしょうか?
0561名前は開発中のものです。
2010/04/03(土) 07:11:45ID:ML07Lysw0562名前は開発中のものです。
2010/04/11(日) 21:47:05ID:Ko/6dSa+>>560
Windows7は全く使ったことのない俺だが、
>そもそもフレーム処理時間は安定して一定時間に終わっているようなのです。
ってことは描画に遅延が入っているか、GDIの描画先がオフスクリーンバッファで
それが表面に更新されていないかだろうね
1フレームの描画が終わったらGdiFlushを呼んでるか、HDCを開放しているか
くらいしか思い浮かばん
0563560
2010/04/12(月) 10:16:43ID:6QZI5wHpループで描画しているので分解能は関係ないんです。
QueryPerformanceCounter使ってるし。
>>562
おっしゃるとおり、GDIレイヤで遅延しているように見えます。
でもGdiFlushなども使ってみましたがダメでした。。。
0564名前は開発中のものです。
2010/04/12(月) 16:29:39ID:Ub/aw0v40565名前は開発中のものです。
2010/04/12(月) 22:16:40ID:ohJzuPYP最終出力を自分のプロセスで行えない場合、システムに余力がないと更新が滞ることもあるな
全てのCPU使用率が常時50%以下になってるか確認してみるとか
0566560
2010/04/12(月) 22:49:05ID:6QZI5wHpDirect2Dでごり押ししてみないと真相は不明でしょうか・・・。
GDIが全体的に遅くなるのなら理解できるんですが、
0.5秒という長すぎる間隔でカクつくのが腑に落ちないっす。
DWMがアンチティアリングをしているせいかとも思うんですが、確認するすべも思いつきません。。
0568名前は開発中のものです。
2010/04/13(火) 00:32:26ID:mniTafWA#これで、結局バックグラウンドでインデクシングが
#発生しているだけだったら笑える。ディスクアクセスしてない?
ところでそのループは描画しているウィンドウを生成したスレッドで動作してるの?
0569560
2010/04/13(火) 01:43:29ID:nmFp0o6dウインドウを生成したスレッドでしています。
何もしていない状態でもかくつきます。
いろいろ試してみたら、やはりDWMのアンチティアリングが影響しているようです。
0.5秒間隔のカクつきはV-sync待ちとのタイミングが最悪な時なのかも?
Aeroを切ったり、CreateWindowのスタイルパラメタを変更しても挙動が変わることが分かりました。
一番安定したのはAero状態のD2DでV-sync待ちで描画したとき。
正直大混乱中。よくわかんねーっす。。。
0570名前は開発中のものです。
2010/04/13(火) 11:00:59ID:mniTafWAAero off と on で動作が違うと言えば、例えば::InvalidateRect()で、第3引数のbEraseをFALSEにすると
Aero off の時クライアント領域が更新されないことがあったりしたな。
ただこれはVISTAも同じだから、7だけおかしいと言うことだと関係ないかも知れないが。
GDIを利用して作成していると言うことだけど、どっかで更新をOSに任せてたりしないか?
一度全部明示的にアップデートしてみるといいよ。
0571名前は開発中のものです。
2010/04/15(木) 22:39:37ID:oS8V8JHFキャラクターが毎フレーム移動するんですが
その際に前回いた座標と今回いた座標を結んだベクトルを計算し、
壁などのポリゴンを通過したら押し戻すという処理をしています。
しかしポリゴンに対して直角(90度)に進めば押し戻されるのですが
10度くらいの角度で進むといずれはめり込み、
計算の誤差のようなもので通り抜けてしまいます。
こういう場合はどうしたら意図した動きになるでしょうか?
普通壁にめり込まない処理というものはベクトルで処理をするものではないのでしょうか?
0572名前は開発中のものです。
2010/04/15(木) 22:56:32ID:oS8V8JHF0573名前は開発中のものです。
2010/04/16(金) 08:49:10ID:E7soBA+n0574名前は開発中のものです。
2010/04/16(金) 15:39:17ID:tfuXF2uQ移動してから次フレームで衝突判定するんじゃなくて
移動させて衝突判定させて移動量減らしてから移動確定
0575名前は開発中のものです。
2010/04/17(土) 18:34:27ID:YPPhHYQEその方法をとっているのですが上手くいきません
ベクトルとポリゴンは諦めて
球とポリゴンの当たり判定にしたいのですが
参考URLなどご存知ないでしょうか?
0576名前は開発中のものです。
2010/04/17(土) 20:49:33ID:g85Nq5+3おとす気が失せるな・・・
0577名前は開発中のものです。
2010/05/02(日) 13:48:47ID:qwH1pwxC心当たりある?
WinMainの最初で呼んでんだけど.
0578名前は開発中のものです。
2010/05/02(日) 21:18:23ID:Fty9ttWnデバッガで起動してないとか
0579名前は開発中のものです。
2010/05/03(月) 00:13:29ID:G8fNhcut別に仕様変更で,最近機能がなくなったとかじゃないですよね...?
0580名前は開発中のものです。
2010/05/03(月) 00:24:48ID:G8fNhcut#include <crtdbg.h>
int main()
{
_CrtSetDbgFlag(
_CRTDBG_ALLOC_MEM_DF //メモリリークチェック用のヒープ使用
| _CRTDBG_LEAK_CHECK_DF //プログラム終了時にメモリリークチェック
);
int* p_int = new int();
return 0;
}
このプログラムでエラーメッセージがでません.
ちなみに,当方VCですが,メッセージは
出力ウィンドウでの確認で間違いないでしょうか?
0581名前は開発中のものです。
2010/05/03(月) 17:53:02ID:F+lE+L/N以下、出たメッセージ >>
Detected memory leaks!
Dumping objects ->
{59} normal block at 0x008F4D40, 4 bytes long.
Data: < > 00 00 00 00
Object dump complete.
<<ここまで
_CrtSetDbgFlag()をコメントアウトすると出なくなるからちゃんと機能してるみたい
環境はwin7 64bit VS2008で、win32コンソールアプリケーション
コンパイルの設定は、プリコンパイル済みヘッダを使用しない、にした以外はデフォルトのまま
0582名前は開発中のものです。
2010/05/04(火) 04:57:17ID:2vXYcehCゲーム製作に関する技術が0の状態です
プログラミングもまったく技術がありません
このゲームを作るのに向いているプログラミング言語がありましたら教えてください
勉強しようと思います
私のPCのOSはwin7です
windows系列で動作するゲームにしたいです
0583名前は開発中のものです。
2010/05/04(火) 06:05:40ID:2vXYcehC32でも64でも動くものにしたいです
0584名前は開発中のものです。
2010/05/04(火) 09:47:00ID:N7bMdxX7ありがとうございます.
コードはおかしくないってことですね.
こちらでも別環境で試してみます.
なんでだろう...
0585名前は開発中のものです。
2010/05/04(火) 11:18:45ID:ATvQPLh8C言語
0586名前は開発中のものです。
2010/05/04(火) 15:19:34ID:3AEGCGVU0587名前は開発中のものです。
2010/05/04(火) 17:08:55ID:2vXYcehCthx
0588名前は開発中のものです。
2010/05/04(火) 21:18:06ID:I3BOmytc0589名前は開発中のものです。
2010/05/05(水) 00:46:35ID:I28q1E30使ったことないから的外してるかもしらんけど
0590名前は開発中のものです。
2010/05/30(日) 22:41:11ID:/03sGIqdまだ学生だから、車輪の再開発をしまくって勉強したいと思ってるんだけど、なんらかの
コンポーネントを使用しなきゃ出来ないのなら、割り切ってコンポーネントの勉強をしようと思うんだけど
0591名前は開発中のものです。
2010/05/30(日) 22:59:33ID:hMrpRgoR0592名前は開発中のものです。
2010/05/30(日) 23:01:41ID:hMrpRgoR0593名前は開発中のものです。
2010/05/31(月) 00:00:56ID:y4dMI0mpVRAM自体のアドレスを取得してロックしようと思ったらDirectXを使うしかないと思う
0594名前は開発中のものです。
2010/05/31(月) 23:03:43ID:QJNjNz5n全ての敵の行動をクラスに纏めたEnemyクラスっていうのを作っちゃって、
そこに敵の種類ごとに動作とか設定しちゃおうかなって思ってたんだけど、
それじゃ敵の種類が少ないマップでもロードに時間がかかるとかってなる?
0595名前は開発中のものです。
2010/05/31(月) 23:06:46ID:QJNjNz5nグローバルな変数を作るとか?
0596名前は開発中のものです。
2010/05/31(月) 23:13:40ID:+7YvNv71Enemy クラスに HP、時間、座標を定義して
Enemy を継承した EnemyA、EnemyB … を作ってそこに種類ごとの行動を書けばいい
ロード時間はといより Enemy で全部やろうとすると処理コストが増えるかと
0597名前は開発中のものです。
2010/05/31(月) 23:30:20ID:SBpXG6MJ0598名前は開発中のものです。
2010/05/31(月) 23:31:08ID:QJNjNz5nそういうのがあるんですね
ありがとうございます
0599名前は開発中のものです。
2010/05/31(月) 23:58:57ID:OsgCe4820600名前は開発中のものです。
2010/06/01(火) 00:53:23ID:8zniKIGy0601名前は開発中のものです。
2010/06/01(火) 11:05:50ID:HlkdJvUb0602599
2010/06/01(火) 18:31:41ID:zaH3D1aV正にそれです。
MIDIパーサ、MIDIレンダラーを作りたいのですが、何をどうすれば良いのか
さっぱりな上、そういった事を解説してるサイトも皆無なので困っています。
0603名前は開発中のものです。
2010/06/01(火) 19:13:55ID:jI99bfoW0604名前は開発中のものです。
2010/06/01(火) 22:07:22ID:02kRTTDwFM音源とかにしといたら?
そこそこのクオリティを持ったMIDI音源とか個人でなんとかなるレベルじゃなさそう
0605名前は開発中のものです。
2010/06/02(水) 11:17:16ID:eHTKFESgこればっかりはプログラムだけじゃ無理だろう
0606名前は開発中のものです。
2010/06/02(水) 22:56:16ID:Ggr0fEGO>>592
>>593
やっぱりそうなのか…
回答ありがとう。とりあえず、Direct3D9の勉強を少しやってみようかと思う。ありがとう
0607名前は開発中のものです。
2010/06/03(木) 22:58:45ID:N5aCEzsmソフトウェアシンセとSMFファイルを解析する部分が要る
とりあえずGM規格の仕様書でも読んでみたらいい、やる気なくすから
0608名前は開発中のものです。
2010/06/04(金) 16:44:04ID:Vz1OVRZS0609名前は開発中のものです。
2010/06/04(金) 17:04:27ID:tnAvyTGmいずれにしてもまずはGM互換の版権フリーか自前の音源データが必要
0610名前は開発中のものです。
2010/06/04(金) 18:16:01ID:vIQ5MHoj編集するだけでも、どれだけ機材と時間と技術と手間がかかるんだか…
0611名前は開発中のものです。
2010/06/04(金) 20:43:58ID:uFMmgqFi0612名前は開発中のものです。
2010/06/04(金) 20:48:59ID:Q9UNwKBAxpだとそんな事なかったのですが
0613名前は開発中のものです。
2010/06/05(土) 06:53:33ID:yudDpx9T実際にやってみるとわかるけど、自分でサイン波とかのオシレータ作って
合成して実際の楽器の音出すのってすごく難しいぞ。
FM音源なんてとても素人がどうにかできるもんじゃない。G
M規格だけでも128種類の音色とドラムセットがあるのに。
0614名前は開発中のものです。
2010/06/05(土) 14:15:02ID:D1eyiAx2>>611はVAクラスか打楽器系の音もサンプリング音源レベルの音質をソフトだけで作るって言ってんでしょ
まあ何も知らないただのバカだろうけど
0615名前は開発中のものです。
2010/06/05(土) 19:21:06ID:1y0Oq8xyどうやって?
今のサウンドカードは標準でFM音源なんて付いてないぞ?
0616名前は開発中のものです。
2010/06/05(土) 21:05:53ID:XfBBOv5Pま、別にいいんだけど
0617名前は開発中のものです。
2010/06/05(土) 22:44:24ID:yudDpx9Tハードウェア的にはFM音源ついてなくてもPCM音源があればおk
そんなことも分からないんじゃ自分で音源作るのなんて無理
0618名前は開発中のものです。
2010/06/05(土) 22:48:00ID:1y0Oq8xy0619名前は開発中のものです。
2010/06/08(火) 17:58:37ID:++DOtdab0620名前は開発中のものです。
2010/06/08(火) 20:08:11ID:SUdoOdZh話がズレてない?FM音源エミュレート結果の出力先にPCMを使用するってだけだろう
いやもうどれが話の本筋なのか分からんけど
ところでちょっとグレーな話になるけど、スーファミエミュから抽出したSPCファイルって
容量が64KBしかないのに結構綺麗な音がでるよね
再生プラグインも100KBそこそこだから波形データを再生機側に大量に持ってるわけでも
なさそうだし、スゲーなーと思ってた
0621名前は開発中のものです。
2010/06/08(火) 21:18:46ID:++DOtdabFF4は、アクトレイザーのストリングスの音聴いて影響されて、
サウンドドライバ作り直しを命じたらしいし
0622名前は開発中のものです。
2010/06/09(水) 09:21:16ID:pmTsWhEo今の同人というかフリーゲーム開発の中でDirectXを使ってる場合、9.0と10.0どちらが主流なんでしょうか?
よっぽど凝った物でもない限り現状普及率が高い9.0のほうがいいのだろうかと思うのですが、この先の事を
考えると10.0以降の仕様に慣れておいたほうがいいのかもしれないし、もしかしたらそれほど10.0でも影響少ないのかと思って悩んでるのですが。
0623名前は開発中のものです。
2010/06/09(水) 10:22:21ID:rHuJZWIL使いこなせないからどっちでも同じです。10..0だとXP切捨てになるし。
10.0以降の仕様に…ならもう11に行った方がいいんじゃない?
今から10.0を一から勉強すると、10.0独自の機能使う頃には12が出てると思われ
0624名前は開発中のものです。
2010/06/09(水) 10:40:14ID:IiMYCbgY9.0と10.0の比較だと今OSとハードの過渡期真っ最中だから
移行するならもう1・2年待った方がいいかもな、まだゲームはXPがメインって奴も多いだろうし
逆に言えばソフトの公開が1年後2年後とかなら10.0に移行してても良いのかもしれん
0625名前は開発中のものです。
2010/06/09(水) 10:42:22ID:fYI9N/700626名前は開発中のものです。
2010/06/09(水) 13:45:50ID:pmTsWhEo10向けのソフトなんてまだそれ程ないし、自分も知識や技術不足等あるので9を扱いきれるようになってから
様子見て10.1以降のに目を向けるようにします。
0627名前は開発中のものです。
2010/06/09(水) 16:54:49ID:bi7/yVM/SFCの音源部は、
・SPC700それ自体がCPU(6502系)なので、ドライバ書くときに、サウンド処理以外の負荷を考える必要がない。
・当時としては大容量の64KiBのSRAM(実際に音色データを置けたのはもっと少ない領域だったようだが)。
・32KHz/8chのADPCM。なので、容量自体はそんなに食わない(高音域の音が歪むという欠点はあるが)。
・再生波形のガウス補間、ピッチ/モジュレーション変更、エコー/リバーブ、フィルタをハードウェアでサポート。
てな具合で、無論、ドライバの工夫もあるんだろうけど、業務用ゲームも含めて、当時のゲーム用としては、もともと最高クラスのPCM音源だったのが要因。
0628名前は開発中のものです。
2010/06/09(水) 20:44:25ID:yKxBirAe0629名前は開発中のものです。
2010/06/09(水) 21:15:34ID:rHuJZWIL自分で一からやるとそりゃあもう死ねます
実装によって仕上がりの音も全然違うし
0630名前は開発中のものです。
2010/06/09(水) 22:32:28ID:qkJYSXJu演奏者雇って楽器は買ってくれば(Windowsにファイルごと丸投げ)、たいした労力はいらんし。
自分で演奏して楽器も自作する(自分でSMFを解析し、シンセサイザーを自作する)となれば、相当な労力がいる。
0631名前は開発中のものです。
2010/06/09(水) 23:59:35ID:eDbPYTsH詳しい解説をありがとう、なんだか音のプログラマブルシェーダみたいですね
なぜSPCファイルが皆同程度の容量なのか不思議だったんだけど、ようは処理系のスナップショットなのか
0632名前は開発中のものです。
2010/06/11(金) 12:50:28ID:hBamGraD>>622ですが、9.0c用のSDKを探しているのですがどのSDKを使えばいいのでしょうか?
0633名前は開発中のものです。
2010/06/11(金) 12:54:06ID:hBamGraDソースとして10ってのと9っての2種類があるのですがもしかしてこのSDKって別に過去の物を使う必要がなく、
9.0cで使える関数等をつかえば9.0c向けのプログラムということになるのでしょうか?
0634名前は開発中のものです。
2010/06/11(金) 12:58:26ID:WclTY3DZ概ねそう。windows APIだって同じだろ。
0635名前は開発中のものです。
2010/06/11(金) 16:24:22ID:b46tP7Yu0636名前は開発中のものです。
2010/06/11(金) 22:30:53ID:WRoLJZOqshared_ptrは使うべき?
ここらへんの作法的なものがさっぱり分からなくて困る
0637名前は開発中のものです。
2010/06/12(土) 08:19:34ID:odsGwdrC私は追加削除は list の方が vector の方が速いと思ってたんですが
どっかで実は vector の方が速いとあったのでやっぱりそうなんでしょうか
しかもそれらSTL自体が遅いと聞いたので自分で作るのも考えたのですが
似たものは作れるのですが、全く同じ使い方のものを作ろうとすると今の自分にはちょっときついので
どこかで自作してるものを探したのですが、見つからなかったのでどこかにありませんでしょうか
自分で参考にもしたいと思ったもので
それとこれらの質問はゲームプログラミングを想定したものです一応念のため
0638名前は開発中のものです。
2010/06/12(土) 09:36:07ID:MfFcNHJl画面に何百万発の弾幕張るような仕様を実現できるかどうかはPCやグラボの性能次第。
速さの限界チャレンジは開発用PC上で”しか”意味が無い。
0639名前は開発中のものです。
2010/06/12(土) 10:08:18ID:odsGwdrC0640名前は開発中のものです。
2010/06/12(土) 10:22:20ID:ISREFi7t0641名前は開発中のものです。
2010/06/12(土) 10:31:19ID:IAfNttk3これって低速なのを承知してイテレータ使って探すしかないの?
それともなんか定石みたいのあるの?
0642名前は開発中のものです。
2010/06/12(土) 10:49:27ID:Z4c//xCXお門違いかどうかは、プロファイラで計測してみないとわかんないね。
>>641
本当にその検索がボトルネックになってるなら、同時にIDがindexのベクタに登録するとか。
つかそれ以前に、enemyに対するeffectって、enemyオブジェクト内にeffectアドレスでも
登録して、effectの寿命はCOMみたいに管理すれば、検索自体が不要な気が…
0643名前は開発中のものです。
2010/06/12(土) 11:12:44ID:IAfNttk3なるほど。後者の方法はいいかもしれないけど寿命管理が良く分からない
万が一先にオブジェクトが消えてしまて存在しないものを参照してアクセス違反とならないか不安
0644名前は開発中のものです。
2010/06/12(土) 13:20:38ID:nozhbs64よほどの数の敵が出てくるとかでなければ、コンテナの違いは
速度的にはあまり意味がない。
コンテナの違いは中身が万単位になってやっと意味が出てくる程度で
数百程度だと優位な差がなかったり、速度の逆転が起こったりする。
要素の挿入や削除でイテレータが無効になるとかの性質の方が重要。
速度に問題があれば、コンテナを変える前にアロケータを変えることを
考えた方がいいかも。
0645名前は開発中のものです。
2010/06/13(日) 04:37:42ID:B+np0z/d0646名前は開発中のものです。
2010/06/14(月) 07:50:15ID:+L/wTpB0もっと実力上がってから挑戦してみることにする
当面は大人しく new と STL 使ってるわ
いやね、言い訳になるが単純にリスト作るだけなら出来ると思うけど
汎用化させたりいろいろ絡んでくるとちときついわ今の自分の力では
0647名前は開発中のものです。
2010/06/22(火) 16:48:44ID:TOC+2Opiただ、配列のサイズ変更も自動でやってくれるとか、
自分なりに使い易い形にカスタマイズはした。
趣味の人ならこういう部分を楽しむのもアリだと思う。
0648名前は開発中のものです。
2010/07/17(土) 22:15:17ID:84ym2+jvただ、ちむこのサイズ変更が自動でなってしまう朝立ちとか、
自分なりにイキ易い形にカスタマイズはした。
趣味の人ならこういう部分を楽しむのもアリだと思う。
0649名前は開発中のものです。
2010/07/20(火) 09:31:58ID:9KeZQpZV0650名前は開発中のものです。
2010/07/20(火) 12:09:38ID:IRMyEe9a0651名前は開発中のものです。
2010/07/20(火) 13:18:37ID:ka0nTHRgRPGツクールみたいな感じで創りたいんだけど、それには自分で専用のエディタをプログラミングしなきゃ駄目?
出来れば画面のある場所をクリックするとイベントが配置されて、画像とかイベント内容とかを
プログラムに書き加えてくれるような仕組みにしたいんだけど・・・
そういうのは難しいんだろうか
(モンスターAをどの位置に配置する、という地図をテキストデータにまとめて保存ということ
なら今の俺の技術でもできると思うんだけど、エディタの設定をもとにプログラムを自動生成して
書き加えてくれるようなのって可能?って質問です)
0652名前は開発中のものです。
2010/07/20(火) 13:43:17ID:4zAYS/8u普通にレイヤー編集が出来るマップエディタでだいじょうぶでしょ
マップチップをモンスターやらイベントやらに割り当てればいい
地形レイヤー(あれば便利な当たり判定レイヤーを分けるといい)
イベント配置レイヤー(アイテム・モンスターレイヤーで分けてもいい)
好きなだけ必要なレイヤー作ればいいと思うよ
0653名前は開発中のものです。
2010/07/20(火) 13:48:33ID:ka0nTHRgレイヤを作ってモンスターの配置・上層マップチップ・下層マップチップに分けて、
それの位置と内容をテキスト化何かに保存、というのは俺も考えてるんだけど、
問題はイベントの内容をエディタの中で決められないかな、ということ
RPGツクールだと「文章の表示」だの「画面を暗くする」だの「場所移動」だのの
コマンドを組み合わせるだけでいいでしょ
それと同じことをオリジナルエディタでやろうと思ったらどういう技術を使えば可能かってこと
0654名前は開発中のものです。
2010/07/20(火) 13:51:20ID:9KeZQpZV0655名前は開発中のものです。
2010/07/20(火) 14:20:13ID:4zAYS/8uオリジナルなら聞くまでも無くどうとでもなるじゃん。
フリーのマップエディタでどうにかならんかってことじゃないわけ?
イベントレイヤにマップチップ1を貼り付けて、
別ファイルたとえば"ev_1.txt"にメモ帳で内容を書くとすると、
簡単にマップチップとイベントを繋げられる。
・・・・ということじゃなく、そういうエディタを作りたいなら
最低WindowsGUIに関するプログラム(C#あたりなら楽)、
ツクール並みのイベント内容を解析したいならLuaあたりの知識、
1からスクリプト作りたいなら、構文解析に関する技術が必要だけど?
0656名前は開発中のものです。
2010/07/20(火) 14:34:33ID:ka0nTHRgそういうんじゃなくて、プログラムとエディタをいったりきたりする手間を省けないかなってことです
例えばエディタ上でイベントを配置したい場所をクリックするとウインドウが出てきて、
そこにプログラムを書いてOKを押すと、そのプログラムをCファイルに書き足してくれる、
というようなものです
0657名前は開発中のものです。
2010/07/20(火) 15:03:14ID:4zAYS/8uプログラムとエディタを行ったり来たりしたくなければ、
スクリプトとしてイベントを外部に追い出すしかないだろうから。
>>651 で考えているのはCに直すんだから一種のトランスレータだろうけど、
その方法は、動かすたびにコンパイルしなおさにゃならんので、
結局エディタとプログラムを行ったり来たりすることになるよ。
しかし、そこから作るよりもあるものを使って作ったほうが最初はいいと思うけどね。
マップエディタと、メモ帳があればいいんだし。
マップチップに対応したイベントファイルにたとえば、
HP=10
移動パターン=1
攻撃力=12
防御力=3
落とす金=10
それをプログラムで読んでパラメータ設定したら、かなりエディタだけでよくなる。
これでも、経験が無いなら四苦八苦するだろうけど。
0658名前は開発中のものです。
2010/07/20(火) 15:04:48ID:4zAYS/8u×マップチップに対応したイベントファイルにたとえば、
○モンスターレイヤのマップチップに対応したイベントファイルにたとえば、
0659名前は開発中のものです。
2010/07/20(火) 15:40:33ID:FFEjXre5下記の画像の逆放物線のような軌道計算は、
どのように行っているのかご存知でしょうか。
もしくは参考サイトなどありますでしょうか。
http://iup.2ch-library.com/i/i0121467-1279607725.jpg
入力情報としては
・頂点座標
・頂点到達時間(フレーム)
・現在再生フレーム(相対)
・横方向の力
出力情報としては
・フレームの進行度に対する前フレームからの相対位置
要するに計算結果を加算するだけにしたい。
を考えています。
0660名前は開発中のものです。
2010/07/20(火) 15:55:52ID:4PiPc8U00661659
2010/07/20(火) 15:59:01ID:FFEjXre5固定数値だと都合が悪いですね
0662名前は開発中のものです。
2010/07/20(火) 16:13:47ID:SmPxzstRフレーム毎の計算だから数列の和だとかそんな感じか
高校数学レベルの話かな
0663名前は開発中のものです。
2010/07/20(火) 16:22:41ID:4zAYS/8ux = x + vx
vx = vx / (適当 * フレーム * 横の力)
y = y + vy
vy = vy / (適当 * フレーム)
みたいなのを毎フレーム呼び出すとかかいな
0664名前は開発中のものです。
2010/07/20(火) 16:38:47ID:ka0nTHRg遅くなりましたがありがとうございます。
テキストデータをエディタで編集して出力して既存のプログラムをテキスト化したものの中に埋め込み、
それの拡張子をつけかえてCファイルにして、コンパイル、
なんてことが出来ればそれが一番いいのですが・・・
色々調べたけど難しいみたいですね
0665名前は開発中のものです。
2010/07/20(火) 16:46:15ID:4PiPc8U00666名前は開発中のものです。
2010/07/20(火) 16:54:45ID:ka0nTHRgつまりテキストを引数にした関数を作っておくってこと?
0667名前は開発中のものです。
2010/07/20(火) 16:59:53ID:4PiPc8U00668名前は開発中のものです。
2010/07/20(火) 17:07:34ID:ka0nTHRg敵のパラメータもテキストで管理して、
マップにおける敵の位置もテキストで管理して・・・
そしたらエディタだけでだいぶ楽できるようになりますね
ただパラメータとかじゃなしの具体的な動作はプログラムでやらざるをえませんが
0669名前は開発中のものです。
2010/07/20(火) 17:12:43ID:4zAYS/8u0670名前は開発中のものです。
2010/07/20(火) 17:22:14ID:ka0nTHRg0671名前は開発中のものです。
2010/07/20(火) 17:27:38ID:4zAYS/8uLuaスクリプトを自作のプログラムに組み込める。
これはたとえば、Cで作った自作プログラムの上でさらにCを動かせるようなもの。
コンパイルなしで。
でもまぁ、最初からそうしようとすると今の状態だときついだろうから、
プログラムとデータを分離することに集中したほうがいいよ。
0672名前は開発中のものです。
2010/07/20(火) 17:41:41ID:ka0nTHRgうーん難しいですね・・・
キーワードとして覚えておきます
ありがとうございました
0673名前は開発中のものです。
2010/07/20(火) 17:53:49ID:4PiPc8U00674名前は開発中のものです。
2010/07/20(火) 18:00:01ID:4zAYS/8uそこのさじ加減は作る人の好みだねぇ
0675名前は開発中のものです。
2010/07/21(水) 00:33:49ID:EY0IZyCn一度のコンパイルで十分くらいかかる位プロジェクトがでかくなったらそんなこと言えなくなるぞ
0676名前は開発中のものです。
2010/07/21(水) 00:57:10ID:eplgz5cR0677名前は開発中のものです。
2010/07/21(水) 02:02:55ID:EY0IZyCn0678名前は開発中のものです。
2010/07/21(水) 06:18:38ID:O18++P2xリビルドならともかく、ビルドでそうなるってのは、どっか設計が間違っていると思う。
0679名前は開発中のものです。
2010/07/21(水) 07:38:28ID:60wOpc+n0680名前は開発中のものです。
2010/07/21(水) 07:39:25ID:60wOpc+n無駄にヘッダを読みまくってたりすると、一箇所変更しただけで
大量にコンパイルが発生して遅くなったりはするけど
0681名前は開発中のものです。
2010/07/21(水) 09:47:27ID:Ef6/96NX0682名前は開発中のものです。
2010/07/21(水) 09:54:22ID:EY0IZyCnどのくらいの大きさのプロジェクト作ったことある?ソースファイル1000個超えたことある?
0683名前は開発中のものです。
2010/07/21(水) 10:08:52ID:DTn2ZgeR0684名前は開発中のものです。
2010/07/27(火) 02:25:46ID:RZRqKDLL何故Cのファイル?
C言語がベースならLuaを組み込んで、エディタからLuaのスクリプト吐くとか。
Lua組み込みすら大変な事情があるなら、構文を制限してcsvとか >>657 みたいな構文で吐くのはまだ楽
ただどっちにしろ羅列したコマンドを自分で処理する必要が出てくる
ただし、イベントスクリプト内で四則演算したいとか関数がほしいレベルの要求があるなら
迷わずLuaなりなんなり組み込み言語に行くのが今の時代だな
1からスクリプト組む時代じゃないわ
0685名前は開発中のものです。
2010/07/27(火) 02:36:14ID:RZRqKDLLコンパイルの速さはそれこそ言語や処理系によるからな
ソースファイルが1000程度なら、Delphiなら10年くらい前でもフルコンパイルに30秒もかからなかったからな。
部分修正なら一瞬だった。
C++なら工夫しないと部分的修正でもファイル多いと死ねた時代だ。
pimplとか試してたわ
家ゲーの知り合いに聞いたら、今はスペック上がったからC++でもサクサクコンパイルできると言ってたが
実際どうなん?
うちはC++から離れちゃったんで最近C++事情に疎い
0686名前は開発中のものです。
2010/07/27(火) 07:58:54ID:gQwuLlovそのファイルを更新した、なんてことしたら大変なことになるよな。
>>685
ソースコードが42MBのライブラリをリビルドすると、数分はかかる > Core2Duo 3GHz/VC++2005
うまく切り分けてあるソースのビルドならほとんどの場合数十秒未満だから、まあ、さくさくっちゃーさくさく。
0687名前は開発中のものです。
2010/07/31(土) 19:12:16ID:odxEQo6u0688名前は開発中のものです。
2010/10/27(水) 15:38:02ID:PA2n5kiTスーファミのドンキーのようなやつはマップチップ使ってるのか?
マップチップ使ってるやつならなんとなく作り方分かるけどあーゆーのはどうやって作るの?
あとマップエディタ使ったときステージ固有のギミックとかどうやって組み込めばいいの?
0689688
2010/10/28(木) 05:05:55ID:BuHTqjnE0690名前は開発中のものです。
2010/12/13(月) 01:35:44ID:k+jnh4qfttp://peufrequente.blog41.fc2.com/blog-entry-636.html
VC#2008 Expressで、ManagedDirectXつかってゲーム作っているのですが、
DeviceList list = Manager.GetDevices(DeviceClass.GameControl, EnumDevicesFlags.AttachedOnly);
を実行するとゲームパッドの取得順番が変わるのかと思いきや、変わりません。
もしかして別に取得する手段があるのではと思い、質問させていただきました。
ご存知の方、どうかご教授お願いします。
0691名前は開発中のものです。
2010/12/16(木) 18:44:40ID:0O6i5tIq環境VC++2010Express
DrectXSDK June 2010
やったこと
VC++で新規プロジェクトを作る( Win32の空やつ)
test.cppをソースに追加する
内容
#define STRICT
#include <Windows.h>
#include <d3dx9.h>
LPDIRECT3D9 g_pD3D;
int PASCAL WinMain(HINSTANCE hInst,HINSTANCE hPrev,char *CmdLine,int CmdShow)
{
g_pD3D = Direct3DCreate9(D3D_SDK_VERSION);
}
プロジェクトのプロパティからVC++ディレクトリをみて
インクルードディレクトリに$(DXSDK_DIR)Include
ライブラリディレクトリに$(DXSDK_DIR)Lib\x86
を追加する。
ビルドする
この作業で
error LNK2019: 未解決の外部シンボル _Direct3DCreate9@4 が関数 _WinMain@16 で参照されました。
が発生してます。
あと、どのディレクトリを参照させればいいですか?
0692名前は開発中のものです。
2010/12/16(木) 20:16:39ID:eb1OKGp3#pragma comment(lib, "d3d9.lib")
とでも書いとけ
0693名前は開発中のものです。
2010/12/16(木) 20:46:19ID:arJifEUh0694名前は開発中のものです。
2010/12/16(木) 22:38:10ID:0O6i5tIqライブラリの指定って必要なんだっけか?
ディレクトリ指定して終わりじゃないんだ。
解決できました、ありがとうです。
>>693
オレはこれしか知らんのだが
最近は違うのがあるのか?
(199X年発行のウインドウズプログラム入門書見ながら)
0695名前は開発中のものです。
2010/12/17(金) 12:23:19ID:NsCCmq8+microsoft.com内を検索してもページによって
WINAPIだったりCALLBACKだったりでわけわからんことになってるな。
どれも最終的に__stdcallになるだろうが。
0696名前は開発中のものです。
2010/12/20(月) 12:54:09ID:CPsUR6OJお前は10年以上経ってもプログラム技法が変わらないとでも思っているのか
0697名前は開発中のものです。
2010/12/20(月) 15:03:26ID:kH/vSo81まぁCといっても色々変遷してはいるが。
0698名前は開発中のものです。
2010/12/20(月) 15:41:17ID:unK/nJml64bitに切り替わる時か、128bitに切り替わる時に何かあるかな?
0699名前は開発中のものです。
2010/12/26(日) 14:40:10ID:BzGIguKqC++でのWindowsプログラミングで、エディトウィンドウAでの文字入力を捕まえてエディトウィンドウBに同じメッセージを飛ばすということをしたいのですが、次のコードだと日本語入力を捕まえてくれません。
(Aをサブクラス化しています)
LRESULT CALLBACK AProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
if(message == WM_KEYDOWN) {
PostMessage(B, WM_KEYDOWN, wParam, lParam);
}
return CallWindowProc(defEditProc, hWnd, message, wParam, lParam);
}
日本語入力も捕まえるようにするにはどうすればいいでしょうか。ご教示お願いします。
0700名前は開発中のものです。
2010/12/26(日) 19:40:07ID:DlRTWhINやりたいことはよくわからんが、WM_CHARの方を使うとか
0701名前は開発中のものです。
2010/12/26(日) 21:04:31ID:BaeaVQ+IフォーカスがBに無いと受け取らないんじゃね?調べてないけど。
WM_USER+xとかで送れば?
0702名前は開発中のものです。
2010/12/29(水) 05:14:22ID:IFaaeh/8捕まえるにはWM_IME_KEYDOWN、WM_IME_KEYUPを見たらいけるかもしれない。
ただし、それをそのまま転送してもだめなはず、
IMEの処理が入る位置はWM_KEYDOWNやWM_IME_KEYDOWNより前の段階であるため。
やるならSendInputやkeybd_eventで同じキーストロークを再現する(これでうまくいくかは知らない)。
あるいは、>>700の言っているようにWM_CHARなどの転送で事足りるのかもしれないけど。
0703名前は開発中のものです。
2010/12/30(木) 22:44:31ID:ptpBQcHBありがとうございました。
0704名前は開発中のものです。
2011/02/05(土) 01:46:02ID:oyWwf9Pp0705名前は開発中のものです。
2011/02/07(月) 17:55:57ID:jb6HR8rZ0706名前は開発中のものです。
2011/02/07(月) 20:20:59ID:xF2jTO5N0707名前は開発中のものです。
2011/02/07(月) 20:44:44ID:9xgbd+uS0708名前は開発中のものです。
2011/04/07(木) 15:30:11.65ID:i/kzJacP対処法も教えてください。
0709名前は開発中のものです。
2011/04/07(木) 16:36:53.27ID:Ifq1Rv8t0710名前は開発中のものです。
2011/04/07(木) 16:52:58.06ID:pcoolw300711名前は開発中のものです。
2011/04/07(木) 18:04:54.19ID:hqT2HpYb「フリーのシューティングゲームなどで」って事はプレイする側の話でしょ?
0712名前は開発中のものです。
2011/04/07(木) 19:11:17.72ID:WA2sOoJW0713名前は開発中のものです。
2011/04/07(木) 19:59:23.79ID:i/kzJacPプログラミングについての質問です。
環境は同じなのに、たまに左上現象が起こるゲームがあるので、気になりました。
0714名前は開発中のものです。
2011/04/07(木) 22:18:20.53ID:hqT2HpYbではなくて
「そういうフリーゲームが時々あるけど、これはプログラム的に何か問題があるんだろうか?」
って質問なのかな。
いや俺はそういうフリゲの作者じゃないから答えられんけど。
0715名前は開発中のものです。
2011/04/14(木) 16:24:33.76ID:tNm2yu1MC言語はライブラリを使わなければだいたいわかります
0716名前は開発中のものです。
2011/04/14(木) 18:45:12.64ID:MAAZSs/A同じ軸でも軸の取る数値の範囲が変わったりするからかな?
0717名前は開発中のものです。
2011/04/14(木) 19:47:26.48ID:CnLBOOeNコントローラ全部が入力無い時に軸の位置に「0」を返すとは限らないからある程度猶予を与えればいい
ハズ。あまり詳しくはない
0718名前は開発中のものです。
2011/04/25(月) 17:45:50.18ID:KE1E9nBpゲームに使われるバイナリの値で
0xFFFFD8E7や0xFFFFD8EBといった値は何を表す値であると予測出来ますか?
0719名前は開発中のものです。
2011/04/26(火) 01:49:00.44ID:h6WQRFtT・固定小数点の座標値(整数部24bit小数部8bitで-39.09765625)
・32bitデプスバッファの任意地点の深度値
・生成される全オブジェクトにデクリメントで振っているシリアル番号
0720名前は開発中のものです。
2011/04/26(火) 02:46:18.54ID:/x7Dm5hDありがとうございました
0721名前は開発中のものです。
2011/05/06(金) 14:16:14.28ID:gs4TXQIxclass example
{
static void main()
{
Console.WriteLine("unkounko");
}
}
技術書を見ながら↑を書いたんですが
エラー 〜\Project1.exe' は、エントリ ポイントに適切な静的 'Main' メソッドを含んでいませんProject1
ってエラーがでてデバッグできません
ナニがいけないんでしょう?
0722名前は開発中のものです。
2011/05/06(金) 20:56:47.66ID:ibiTWqKE0723名前は開発中のものです。
2011/05/06(金) 22:52:11.74ID:r/gVAn5nMainでなく、mainでいいの?
0724名前は開発中のものです。
2011/05/07(土) 19:13:02.95ID:8XRSvEQTノートパソコンでも大丈夫なんでしょうか?
0725名前は開発中のものです。
2011/05/07(土) 19:22:17.45ID:Q8cgsrDCノートだろうとデスクトップだろうと、ツールが要求する動作環境のスペックさえ満たしていれば作れるよ。
0726名前は開発中のものです。
2011/05/09(月) 15:08:27.91ID:r3X4NYF6SAIが無料かと思ってたらシェアウェアでした
0727名前は開発中のものです。
2011/05/09(月) 17:37:52.12ID:F60nSaWVPaint.NETとかGIMPとか?
0728名前は開発中のものです。
2011/05/09(月) 17:42:16.40ID:F60nSaWVGIMP、Pixia、AzPainterの名前が出てきたがどうか?
0729名前は開発中のものです。
2011/05/09(月) 17:48:38.11ID:r3X4NYF6ありがとうございます
3つとも試してみますね
0730名前は開発中のものです。
2011/05/12(木) 21:13:42.01ID:1+y6mWXW昔書いたDirectXの自作のラッパーライブラリのバージョンアップを
7.0からやってないんですが、たま〜に、DirectX7以前のコードは
VistaやWin7で上手く動作しないという話を聞く事があります。
実際問題として、そこまで動作不良が多いんでしょうか?
出来れば、今のまま暫く、自作ライブラリ使いたいので
無視出来る程度の不具合の事例しかないなら、
バージョンアップしたくないんですけど、みなさんの意見聞かせて下さい。
0731730
2011/05/12(木) 21:18:19.47ID:1+y6mWXW0732名前は開発中のものです。
2011/05/13(金) 19:26:20.67ID:69Ai+1uzDirectxで作ったダンジョンとか画像や音楽をCで読み込ませる、でいいんですよね?
0733名前は開発中のものです。
2011/05/14(土) 12:34:06.17ID:9TrYbWlB0734名前は開発中のものです。
2011/05/14(土) 14:47:18.75ID:0GXIJwN50735名前は開発中のものです。
2011/05/14(土) 16:18:11.67ID:iTcd63B+まずは「はじめてのC」を読んでください。
0736名前は開発中のものです。
2011/06/02(木) 12:54:15.23ID:1tobcTkHあとできる限りCPUやメモリが良い物の方がいいんですか?
0737名前は開発中のものです。
2011/06/02(木) 18:21:37.82ID:oVeJslsBCPU : Core i3 2105
MEM : 8GB
OS : Windows7 64bit版
素人がプログラミングして遊ぶ程度なら、CPU内蔵のHD3000で十分すぎる性能。
シェーダモデル4.1、DirectX 10.1、OpenGL3.0、OpenCL1.1に対応。
あと、DirectX11世代が必要だというのならグラボ買う必要あるけど、Geforceとか
Quadroとか無視して良いから。グラボ載せるならRadeonで万全。HD6850買っとけ。
搭載メモリ8GBは最低量。できれば16GB欲しい。
いろんな作業を並行してやる時の快適さが違う。
0738名前は開発中のものです。
2011/06/06(月) 22:20:02.16ID:SmY3HvdC内容:
質問です。現在RPGを作っているのですがマッピングで困っています。
現在テキストファイルを読み込む→書いてある文字(半角)を数値に変換→配列に格納
っていう風にしているのえすが割り当てる文字が無くなってきてしまいました。
数字だけで割り当てる以外に何か他にいい方法はありませんか?
0739名前は開発中のものです。
2011/06/06(月) 22:23:02.47ID:3A2O81ns0740名前は開発中のものです。
2011/06/06(月) 22:31:43.14ID:EjPv1nsnペイントで修正できるし割とよくある手法
0741名前は開発中のものです。
2011/06/06(月) 22:47:56.44ID:SmY3HvdC>>740 ビットマップで描いてますよ。
よく考えたら全角にすればいいだけのことでしたね。変なこと聞いちゃってごめんなさい。
ありがとうございました。
0742名前は開発中のものです。
2011/06/06(月) 22:56:56.47ID:EjPv1nsnビットマップでマッピングしてるならテキストいらないじゃん
0743名前は開発中のものです。
2011/06/07(火) 00:07:47.06ID:K/eJWqg0ビットマップで書いた画像をそのまま、マップのデータとして扱うって事だよ。
赤ならどの地形、青ならどの地形、って感じで。
65536色なら65536種類のマップチップを区別できる事になる。
ビットマップは内部データが圧縮されてないそのまんまなのでこういう場合に使いやすい。
ファイルフォーマットはぐぐって調べればいいと思うよ。
0744名前は開発中のものです。
2011/06/07(火) 01:19:10.03ID:xHDy2WPL0745名前は開発中のものです。
2011/06/07(火) 22:23:17.06ID:0gZY2NZM0746名前は開発中のものです。
2011/06/20(月) 11:25:41.57ID:IzFJkAaU考え方によっては、インスコ時に、一回JITで
その環境毎に最適化されたコードを吐くような
言語がシロウト目には良いような気がするんですが。
つまり、C#や、Java?みたいな
(先々同じコードでプラットフォーム跨いで実行出来そうだし)。
ゲームプログラムに詳しい皆さんから見て
何かC++以外の言語が決定的にダメなところってあるんですか?
(ガベージコレクションでのもたつきとか?)
0747名前は開発中のものです。
2011/06/20(月) 11:37:34.06ID:pwkfIEnc0748名前は開発中のものです。
2011/06/20(月) 11:41:33.54ID:IzFJkAaUゲームプログラムもですか??
0749名前は開発中のものです。
2011/06/21(火) 16:03:47.19ID:qvZTnZcqゲーム開発の経験が無く、言語選択で迷っています。
ゲーム内容はシンプルに2Dで選択のみで進めるRPG予定です
形になるまでが早く、数ある中で、比較的習得が用意な言語はなんでしょうか?
開発経験: PHP, PythonでのWebアプリ開発
プログラミングから離れていたので、趣味で開発出来るレベルまでスキルアップしたいと考えています
0750名前は開発中のものです。
2011/06/21(火) 16:44:58.04ID:ET4j6FRl0751名前は開発中のものです。
2011/06/21(火) 16:45:20.26ID:3S8vxGBOBook
14歳からはじめるC言語わくわくゲームプログラミング教室
0752名前は開発中のものです。
2011/06/21(火) 17:57:49.46ID:qvZTnZcqありがとうございます。
C#は、CやC++に比べ簡単で…と何度か聞いたことがあります。
ゲーム開発用のフレームワークも用意されているのですね
一度触ってみます
>>751
C言語は、ほぼ切り貼りですが、業務で必要なPostgreSQLの自作関数を作成した事があります。
メモリ管理など、気にかける事が多く難しいと聞きますが、やはり学んでおくべきですか?
確実にスキルアップするとは思いますが、今後開発を続ける上でやはり必要な知識となるでしょうか
0753名前は開発中のものです。
2011/06/21(火) 18:06:00.16ID:3S8vxGBO結局ね、情報が多いものを選ぶ事。やってみ、わかるから
C言語から派生した言語が多い。ひとつを完全マスターすることから広がる。
0754名前は開発中のものです。
2011/06/21(火) 18:28:38.03ID:qvZTnZcq仕事でやってるわけではないですもんね
ありがとうございます、勉強してみます
0755名前は開発中のものです。
2011/06/21(火) 20:32:04.04ID:evQPDRUv>ゲーム内容はシンプルに2Dで選択のみで進めるRPG予定です
こんな感じのやつ?
http://www.programmingmat.jp/soft_lib/m11rpg/
0757名前は開発中のものです。
2011/06/23(木) 11:01:52.46ID:bPgnTXjYメインスレッドが停止しないようにするには
どうしたらいいんでしょうか
通信のアクションゲームを作っているのですが
ホストがこれをするとポーズをかけたようになるので
困っています
0758名前は開発中のものです。
2011/06/23(木) 12:05:17.92ID:ZHOr5XNo0759名前は開発中のものです。
2011/06/25(土) 15:32:52.64ID:av3YTDPAもちろん実際はメッセージ処理もしてます。
結構、Sleep()をかませろという話があるんですが
かなり精度が悪くてフレームレートが指定値にならないんです。
while(1){
stime = timeGetTime();
game_main();
while(timeGetTime() - stime < 1000 / 60);
}
0760名前は開発中のものです。
2011/06/25(土) 15:58:51.76ID:av3YTDPAwhile(1){
stime = timeGetTime();
game_main();
while(timeGetTime() - stime < 1000 / 60){ Sleep(0); }
}
0761名前は開発中のものです。
2011/06/25(土) 17:47:30.73ID:URerxJ8Qhttp://bygzam.seesaa.net/article/110314806.html
>timeBeginPeriodでタイマの精度を1msに設定します。この設定はtimeGetTime以外にも、GetTickCountや
>Sleepの精度にも影響します。終了時にはtimeEndPeriodで元に戻しておきましょう。
http://rina.jpn.ph/~rance/directx8/03/01.html
>ここでSleep()関数を実行している理由は、ウィンドウを最小化したときなどにWindowsが固まったようになる現象を防ぐためである。
俺は1ms以上余るならSleepそれ未満はループで調整してる
0762名前は開発中のものです。
2011/06/25(土) 17:49:23.50ID:URerxJ8Q0763名前は開発中のものです。
2011/06/25(土) 19:01:57.96ID:U+AhBja3なんでSleepを使うのか全く意味が不明。
0764名前は開発中のものです。
2011/06/25(土) 21:30:18.22ID:JoYEMJgktimeBeginPeriodの設定が要るって気付かなくて悩まされたの思い出したわw
0765760
2011/06/25(土) 23:37:47.57ID:av3YTDPAもちろん、timeBeginPeriod()とtimeEndPeriod()は設定してます。
ただループにSleep()を入れると多く待ちすぎてしまったりしてたので困ってました。
でも >>761さんが言うように、余り時間でSleep()するかどうか決定すればよさそうですね。
とりあえずSleep(0)だけは必ず入れるようにしますね。
>>763 それはどういうことでしょうか?
0766名前は開発中のものです。
2011/06/26(日) 00:16:04.63ID:Fm5IE/R10767名前は開発中のものです。
2011/06/26(日) 00:27:46.94ID:C/6aPfwcマルチメディアタイマのイベントというのがよくわかんないんですが
それを使えばSleep()しなくてもCPUに高負荷がかかりませんか?
0768名前は開発中のものです。
2011/06/26(日) 02:36:36.47ID:C/6aPfwcFPSが安定しないので
もうウェイト処理にSleep(0)だけ入れる事にした ヽ(`Д´)ノ
Sleep()の仕様で、引数に与えた値以上、戻ってこない事があるらしいから
それが原因なのかな…
0769名前は開発中のものです。
2011/06/26(日) 08:11:41.37ID:Fm5IE/R1キーワードを入れて検索する程度のことすら出来ない怠け者にはプログラムは向いてないよ。
0770名前は開発中のものです。
2011/06/26(日) 08:26:23.84ID:C/6aPfwc>それを使えばSleep()しなくてもCPUに高負荷がかかりませんか?
すみません、この上記の質問だけ教えてもらえませんか?
Yes/No?
0771名前は開発中のものです。
2011/06/26(日) 09:04:29.33ID:Fm5IE/R1やった上で、疑問に思ったことを聞くならともかく、
すぐに実験できることをやろうともしない人間にこれ以上答えることはない。
0772名前は開発中のものです。
2011/06/26(日) 09:35:10.81ID:C/6aPfwcすんませんす。
timeSetEvent()で指定してコールバックで
処理するという形になるんですね。
なるほど。
ただSleep()も試行錯誤してたら
引数の数値を大きく指定するようにすれば
そこそこの精度で安定するようにはなりました。
0773名前は開発中のものです。
2011/06/26(日) 10:20:15.53ID:h26G+E5Yttp://dixq.net/rp/43.html
ここは既知?
自分の場合、垂直同期切り忘れとか実行中にクラスの生成と解放をしてたとかあったな…
0774名前は開発中のものです。
2011/06/26(日) 10:54:34.44ID:C/6aPfwcご紹介ありがとうございます。
ただSleep()さえかけなければ
実際にはパフォーマンスカウンタを使うので
60fpsの誤差は殆どないんです。
ただCPU使用率が100%近くになったりしてたので
なるべく余った時間、CPU負荷をかけたくなく
Sleep()入れて休ませるつもりでいました。
とりあえずSleep()でも、なるべく大きな値を入れるようにしたら
fpsが安定するようになりました。
いくつかのPCで試しましたが、結構安定してます。
(パフォーマンスカウンタで計測すれば、殆ど60ピッタリです)
while(1){
stime = timeGetTime();
game_main();
if((dif = 1000 / 60 - (timeGetTime() - stime)) > 0){
Sleep(floor(dif));
}
while(timeGetTime() - stime < 1000 / 60){ Sleep(0); }
}
0775名前は開発中のものです。
2011/06/26(日) 10:59:23.35ID:U4EFMTMz今は違うんだっけ。
0776名前は開発中のものです。
2011/06/26(日) 12:33:06.53ID:B5xxb33H厳密に言うとメインスレッドでSleepは使ってはダメ。
Sleep中はメッセージ処理が行えないから、ブロードキャストメッセージを使用している
他のアプリケーションのパフォーマンスに影響あったりする。
FPS調整用の短いSleepならほとんど問題ないけど、余裕があればSleepのかわりに
MsgWaitForMultipleObjectsを使った方がいい。
>>775
昔から、明文化はされてないけどSleepの元になるタイマーはtimeBeginPeriodの
影響を受けて精度が変わる。何も設定してないと10ms精度くらい。
0777名前は開発中のものです。
2011/06/26(日) 12:38:17.18ID:C/6aPfwcMsgWaitForMultipleObjects ですね。
調べてみます。情報ありがとうございます^^
0778名前は開発中のものです。
2011/06/26(日) 13:34:56.21ID:Fm5IE/R1コールバックじゃなくてイベントと書いているんだが。
0779名前は開発中のものです。
2011/06/26(日) 13:55:56.88ID:h26G+E5Yそこまで気にかけるならもう回答教えてあげてもいいんじゃないのw
0780名前は開発中のものです。
2011/06/26(日) 14:04:02.65ID:h26G+E5Y小数点以下の話ならごめん(^_^;)
{
t = timeGetTime();
game_main();
while(timeGetTime() - t < 17)
{ Sleep(0); }
}
0781名前は開発中のものです。
2011/06/26(日) 19:28:33.67ID:EEDTFaxzそれだとCPU使用率が下がらない。
0782名前は開発中のものです。
2011/06/26(日) 20:31:02.39ID:h26G+E5Y0783名前は開発中のものです。
2011/06/26(日) 21:04:13.27ID:C/6aPfwcウィンドウズのイベントがコールバックで呼び出されるという話じゃないの??
0784名前は開発中のものです。
2011/06/26(日) 21:49:54.06ID:Fm5IE/R1ちゃんとヘルプを読め。
使うのはイベントオブジェクトであって、コールバックじゃない。
0785名前は開発中のものです。
2011/06/27(月) 02:04:43.20ID:mjTrT8bwイベントオブジェクトの設定もあるんですね^^;
みなさんありがとうございます。
とりあえず今回は、>>774の方法を中心に調整して行きたいと思います。
FPSの安定とCPU使用率を抑える事が大分両立出来ました。
0786名前は開発中のものです。
2011/06/27(月) 13:05:38.66ID:5jj8qo/eSleep()するとスレッド スイッチするんじゃないの
でもって10msだか何だか戻ってこないでしょ?
だから10ms以下のSleepは保障できないのでは・・・
0787名前は開発中のものです。
2011/06/27(月) 15:37:59.15ID:KSejmRDb0788名前は開発中のものです。
2011/07/27(水) 18:19:20.32ID:rtDjJBOt0789名前は開発中のものです。
2011/07/27(水) 20:08:07.17ID:d+vft6M6という冗談はおいておいて、見てのとおりC/C++かと。
0790名前は開発中のものです。
2011/08/05(金) 02:02:20.66ID:iQzPAYN5必要な時にオープンして用が済んだらクローズするのがファイルを扱う基本だと思うのですが
ゲームデータ全て、または画像毎や音声毎などにまとめたパックファイルを利用する場合、
何度も同じファイルにアクセスすることになると思うのですが、例えばゲーム中ずっとオープンしっ放しで利用しても良いものでしょうか?
それともやはりデータにアクセスする度にオープン→クローズするべきなのでしょうか?
0791名前は開発中のものです。
2011/08/05(金) 04:03:33.45ID:LUnU1i9G読み込みアクセスしかしてないなら、クローズなんて気にする必要ない。
0792名前は開発中のものです。
2011/08/05(金) 21:10:30.95ID:2OzNzc7rhttp://raicho.2ch.net/test/read.cgi/newsplus/1312544716/
0793アジェグ4倍 ◆4xAJeG.COM
2011/08/15(月) 12:14:45.95ID:pL1hbMOkCreateWindowsの後のループは、GetMessageのままのほうがいい。
で、WM_CREATEのイベントのときに、60FPSでループするスレッドを作る。
スレッドのループは、何らかのフラグで抜けるようにして、
WM_DESTROYのイベント時に、そのフラグをセットさせるってとこだな。
キーとマウスのイベントは、フラグのセットなどだけにとどめて
すぐにイベント処理を終わらせること。
あと、Sleepと画面反映の順序を間違えないように。
計算して裏画面に描画して、Sleepで時間を調整してから反映、だぞ。
・・・と、イロイロ書いてみたが、理解してもらえるだろうか・・・
0794アジェグ4倍 ◆4xAJeG.COM
2011/08/15(月) 13:26:29.82ID:pL1hbMOkソースレベルでイロイロ書いてるみたいだから、
おれのやり方も書いてみよう。
DWORD StartTick = timeGetTime() ;
DWORD NowTick ;
DWORD NextTick ;
bool SkipFlg = false ;
for( int LoopCnt = 1 ; ExitFlg == false ; LoopCnt++ ) {
// 計算処理
if( SkipFlg == false ) {
// 描画処理
}
SkipFlg = false ;
NextTick = ( LoopCnt * 1000 ) / 60 ;
NowTick = timeGetTime() - StartTick ;
if( NowTick < NextTick ) {
Sleep( NextTick - NowTick ) ;
// 画面反映処理
}
else {
// フレームスキップが必要
SkipFlg = true ;
}
}
こんな感じかな。
0795名前は開発中のものです。
2011/08/15(月) 13:40:49.56ID:cTd0dgcsそれ6月の話題だし、素晴らしいコードを披露するならともかく
今更unsignedとsignedの区別もついてないようなコード貼られても困る。
0796アジェグ4倍 ◆4xAJeG.COM
2011/08/15(月) 13:53:07.65ID:pL1hbMOkはいはい。
というわけで、くれぐれもマネをしないように。
著作権の問題とか発生しかねないからねぇ。
0797名前は開発中のものです。
2011/08/15(月) 15:59:55.34ID:71G/E+750798名前は開発中のものです。
2011/08/15(月) 16:15:04.32ID:cxMX6aDk0799アジェグ4倍 ◆4xAJeG.COM
2011/08/15(月) 16:38:36.57ID:pL1hbMOk糞コテみたら、まずはググレカすことを覚えろよ。
0800名前は開発中のものです。
2011/08/15(月) 16:40:46.38ID:726htfBM0801アジェグ4倍 ◆4xAJeG.COM
2011/08/15(月) 16:44:14.52ID:pL1hbMOk悪いことは言わん、今のうちにあぼーん登録しておくがよい。
0802名前は開発中のものです。
2011/08/15(月) 20:09:42.78ID:WSvdh9Hqそこで自棄を起こして荒らし行為なんてせずに、おとなしく引き下がる事を望む。
0803アジェグ4倍 ◆4xAJeG.COM
2011/08/16(火) 08:37:55.17ID:t616+10I過疎スレで、おれが来るまで10日も放置してたのに、
おれが来たとたん、タチマチこんなに集まっちゃってさ。
sageりゃいいってもんじゃねーんだぞ。
ほんとはうれしいんだろ?
寂しかったこのスレに、大物コテが現れてくれて。
ちなみにおれは、↓のようなMIDIアプリを開発している糞コテさ。
いまは、イロイロな機能追加を進めててね。
http://www2.ocn.ne.jp/~j3262il6/rds/
このソフト、ソースも公開してるけど、くれぐれもパクったり
参考にしたりしないように。
容赦なく、timeGetTimeとかやっちゃってるからね。
0804名前は開発中のものです。
2011/08/16(火) 21:09:07.25ID:3+35ODV/0805名前は開発中のものです。
2011/08/17(水) 00:02:27.51ID:FbzsBwEqパケット投げるのには手軽で便利だよ。
clock()よりは早く投げられるし。
0806名前は開発中のものです。
2011/08/17(水) 02:21:39.99ID:H/5FPjKZ0807アジェグ4倍 ◆4xAJeG.COM
2011/08/17(水) 09:06:45.15ID:4BdszuWf強いて言えば、このクソコテが使ってるからだろう。
ホカの手段としては、QueryPerformanceCounterてのがあるようだが、
おれが試してみた限りでは、timeGetTimeと挙動に大差はなかったねぇ。
そうなるともう、アルゴリズムの問題だな。
上の方では、Sleep(0)などとも言ってるけど、
待ち時間が1ミリ秒を切るようなら、それはすでに処理オーバーだから、
フレームスキップの処理などを考えないと。
0808名前は開発中のものです。
2011/08/25(木) 21:01:01.31ID:L1verjXw
こんにちは。初めてですがよろしくお願いします。
使用文法はcです。
今回おかしいなと思ったのはキャラクターが動かないというバグです。
使用している構造体は
unit_status[k].unit_member[i].xxx
となっていて、kがグループ(つまり味方か敵かなど)、iはその中での番号です。
kが1の時は敵、0の時は味方というかんじです。
(プレイヤーに割り当てられた構造体はkが0,iが0です。ループ中に遭遇した場合はスキップされます。)
敵はしっかり動きますが、味方がうんともすんとも言いません。どうしたらいいのでしょうか?

void unit_ai_base_main(){
for(int k=0;k<UNIT_STATUS_MAX;k++){//動かすグループ
for(int i=0;i<UNIT_NUMBER_MAX;i++){//そのグループのmemberを動かすためのループ
if(k==0&&i==0)break;//プレイヤーだった場合ブレイク
testtest++;
if(unit_status[k].unit_member[i].life>0){//仲間が死んでたり居なかったりしたときの分岐
// aiの分岐。
}
}
}
}
コードをはっつける良い場所ないですかね・・・
0811名前は開発中のものです。
2011/08/30(火) 17:19:22.22ID:84vu7iX6
(´・ω・`)あぁ・・
0813名前は開発中のものです。
2011/08/30(火) 19:08:06.33ID:NWN85EFfm9(^Д^)プギャー
0814名前は開発中のものです。
2011/09/08(木) 18:29:05.58ID:Oef4cD8Uとかどうだろう
0815名前は開発中のものです。
2011/09/23(金) 20:05:36.80ID:8vj2FBxM普通入門書終えたら読めるようになるのでしょうか?ワンクッションおけるような書籍があれば
教えてください。(DXライブラリは使わないものでお願いします)
0816名前は開発中のものです。
2011/09/23(金) 20:12:31.42ID:BbPCTDgWCとかC++の入門書を終えたレベルじゃあれを理解するのは無理だよ。
あの本はある程度、ゲーム作製の経験のある人間でも難解だったりする。
絶版になってるけど古本なら1000円で買えるし
http://www.amazon.co.jp/dp/4797325453
これでも買っておけば?
Windowsのゲームプログラミングの初歩の初歩が学べるよ?
0817名前は開発中のものです。
2011/09/23(金) 20:21:43.07ID:Unh+z/jyサンプル解説の初級本なら、これでいいんじゃね、
0818名前は開発中のものです。
2011/11/29(火) 11:00:43.66ID:E9cixHcQcodepadは最近遅くなってきたからこっちも試してみて
http://ideone.com/
■ このスレッドは過去ログ倉庫に格納されています