2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

Windowsゲームプログラミング 質問スレ

1 :うゆ ◆vvvK3Fcqdg :2008/11/06(木) 21:28:45 ID:lNn2skuQ
※回答する人も、質問する人も必ず読んでください

【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
 「ググれ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。

【 質問する香具師 】
・ どんな事で躓いているのか明確にしる。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書け。

2 :名前は開発中のものです。:2008/11/06(木) 21:30:16 ID: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:. :.   | : : \
/\ : : : : : : : : : : : : : : :|            \ \:. . / : : : : |

3 :名前は開発中のものです。:2008/11/06(木) 21:45:18 ID:MY0vkdOy
>>1-2

4 :名前は開発中のものです。:2008/11/07(金) 11:26:17 ID:zpZ6H2po
自演禁止


5 :名前は開発中のものです。:2008/11/08(土) 02:44:21 ID: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;
    }
  }
}

6 :名前は開発中のものです。:2008/11/08(土) 02:46:36 ID:HuLbUvGn
二次元のマップって普通1次元配列でするよね?

X方向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クリアしてくれるから便利だよな

7 :名前は開発中のものです。:2008/11/08(土) 02:51:52 ID:HuLbUvGn
C言語でアクションゲームが作りたい
http://pc11.2ch.net/test/read.cgi/gamedev/1020417733/
110 名前:名前は開発中のものです。 投稿日:03/05/29 11:44 ID:xadUaM2+
まともだよね
Cがテーマだったりすると厨房は書きこまないのかな

8 :名前は開発中のものです。:2008/11/08(土) 02:58:07 ID:dxRdOPSU
>>6
2次元のデータを1次元配列で管理しようとするのは、
俺みたいな昔の貧乏性のプログラマだけでいい。
斜め移動でも座標計算1回で済むとか、そんな貧乏臭い発想。

コンパイル時にサイズ不定でも、簡単なラッパ作ればいい。

2次元のものは2次元のまま扱った方が、デバッグもしやすい。

9 :名前は開発中のものです。:2008/11/08(土) 09:53:33 ID:UXTY631e
左右がつながってるマップだと境界のこと考えなくて済むしな。


『延々と西に向かってたら、いつのまにか北極に立っていた』
な…、何をいっているのかわからねーと思うが(ry

10 :名前は開発中のものです。:2008/11/10(月) 07:44:57 ID:qLM/iweq
>>8
1次元でも2次元でもバイナリ的には同じじゃん。
ただ表記方法が異なるだけ。
アクセススピードも同じだから、好きな方使えばいい。


11 :名前は開発中のものです。:2008/11/10(月) 18:09:32 ID:sl4Agbo8
記述的に分かりやすいのは多次元にする方だと思う。
多次元のメモリの確保、開放は少しややこしいけど、
ライブラリとして4次元ぐらいまで作っておけば便利。

12 :名前は開発中のものです。:2008/11/11(火) 07:30:30 ID:Cky45WKB
>>8
日本語わかる?

13 :名前は開発中のものです。:2008/11/11(火) 09:46:35 ID:sZyTNaq5
ワカリマセーン、ニホンゴムツカシーネ!

14 :名前は開発中のものです。:2008/11/11(火) 22:02:10 ID: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);
    }
   }
  }
 }
}

15 :名前は開発中のものです。:2008/11/11(火) 22:04:00 ID:v37PimrE
主な変数説明
・BlockX、BlockY :ブロックがx・y軸に最大いくつ並んでいるか
・BlockFlag[][] :ブロックが存在しているかいないか、0以外で存在
・ShellX、ShellY :弾のx・y座標
・ShellR :弾の半径
・LeftEdge、UpEdge :ブロック崩しの画面の左端、上端の位置
・ShellVX、ShellVY :弾のx・y速度

当たっているのが縦からなのか、横からなのかの判定がどうにもわからなかったので
当たったらx・y速度両方反転するようにしてしまっています
よければその判定方法も教えてください
宜しくお願いします

16 :名前は開発中のものです。:2008/11/11(火) 22:07:21 ID:z2MnAfhy
移動前と移動後の間も含めて接触判定をするだけ

17 :名前は開発中のものです。:2008/11/11(火) 23:33:50 ID:v37PimrE
>>16
移動前と移動後の間も含めて接触判定……って
いまいちピンと来ない、どういうことでしょうか?

18 :名前は開発中のものです。:2008/11/12(水) 01:01:19 ID:M3s12QpR
>>17
ボールとブロックの距離が、
ボールの(1 フレームの)移動距離よりも短いとき、
ボールはブロックに衝突することなくすり抜けしまう。
対処方法として、
ボールの移動前後を結ぶ線分との交差判定を行う
ことが挙げられる。

19 :名前は開発中のものです。:2008/11/12(水) 06:00:58 ID:xaKS9jsU
>>15
> ShellVX*=(-1);
同時に2つのブロックに接触すると元に戻りそうな嫌なコードだ

20 :名前は開発中のものです。:2008/11/12(水) 10:40:33 ID:kFb9KO8q
>>14
>>19でも指摘されてるけど、2つのブロックに同時に触れた場合は
移動方向が元に戻るから貫通するよ。
だから「ShellVY*=(-1);」の後に「break;」を入れれば
とりあえず貫通するバグは無くなる。

でもそもそも判定ロジックが間違ってるので、全部書き直さなきゃダメ。

当たった部分が縦の面か横の面かの判定をしなきゃまともに跳ね返らない。
前フレームの玉の位置と現在の位置を線で結んで、各ブロックの
4つの側面のどこと交差しているかを判定する必要がある。
横面と交差してるならYだけ反転、縦面と交差してるならXだけ
反転させる。

玉のスピードが速いと、複数のブロックと同時交差する場合もある。
その時は一番玉に近いブロックとの判定だけに絞り、玉の位置も
そのブロックに接触する直前のポジションまで移動させる。


21 :14:2008/11/12(水) 15:58:41 ID:58FrgqUc
なるほど、理屈は理解できました
しかしどういうソースを書けばいいのかがまるで思いつかない……
いったいどういしたらいいのでしょうか?

22 :名前は開発中のものです。:2008/11/13(木) 09:45:19 ID:KTGSzFRw
>>21
ベクトルが理解できてないみたいだね。
まずは数学の勉強から始めないと。
線分交差の判定はここを参考にしてみたら?
http://www5d.biglobe.ne.jp/~tomoya03/shtml/algorithm/Intersection.htm


23 :14:2008/11/14(金) 05:07:34 ID:wWFUvlwz
>>22
ありがとうございます
しかし読んでみたはいいのですがそれをどう組み込んでいいかがやっぱり思いつきませんでした

なのでがんばって自己流で判定組んでみたら
「○○.exe の 0x0056e0b6 でハンドルされていない例外が発生しました: 0xC0000094: Integer division by zero」
とか出されてしまいました、一体これはどういうことなんでしょうか?

24 :14:2008/11/14(金) 05:14:12 ID:wWFUvlwz
ソース

int 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;

25 :14:2008/11/14(金) 05:14:58 ID:wWFUvlwz
while(ShellX>LeftEdge&&ShellX<LeftEdge+350&&ShellY>0&&ShellY<20*BlockY){ //ブロックが存在しうる範囲かどうか
 if(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; //次のエリアへの突入時間加算
   }
  }

26 :14:2008/11/14(金) 05:15:41 ID:wWFUvlwz
 }else{ //Yのエリアが先に変化
  if(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;
 }
}

27 :名前は開発中のものです。:2008/11/14(金) 07:16:14 ID:EfjKu0FE
0除算例外
>>25>>26にある除算全てが該当するな

アルゴリズムまでは読んでないのでほかの人に任せた

28 :14:2008/11/15(土) 03:43:14 ID:NhltAbHO
前のほうでやってるのに忘れていました
とりあえず
ShellXT<ShellYT のところを
ShellXT<ShellYT && ShellXT!=0 にしてみたら動いたは動いたのですが
ボールがあらぬ挙動をします
当たっているのに当たった動きをしなかったり、突然わけのわからないところへ移動したり
原因がさっぱりです……

一応上記の判定は、画面を35*20のエリアに分けて、今いるエリアから別のエリアに移動したら、
そこにブロックが有るか無いか判定、という形で組んでみています
(今更ですが、ブロックを35*20でやっているので、ですね)

もしかしたらこのあたり判定でなく、>>20の方法でやらなければダメなのでしょうか
でしたら、よければそのソースを教えていただけませんでしょうか?

29 :名前は開発中のものです。:2008/11/17(月) 07:17:05 ID:Pi/WdcU7
もしかしなくても、お前の方法は完全に間違い。
先にベクトルの勉強しろって。


30 :名前は開発中のものです。:2008/11/17(月) 08:29:32 ID:4WZ1RBFj
線分単位の当たり判定まではいらないにしても
少なくともどちらに跳ね返すかの判定はいるだろう
ボールの速度がブロックの厚みを超えないようにするだけでだいぶ計算量はへるし

31 :名前は開発中のものです。:2008/11/17(月) 15:27:54 ID:p5mj6MH5
>>29
間違ってはいないよ。14の考え方は論理的には合っている。
自分で思いついた方法なら、そのまま突き進むのを俺は薦める。

とりあえず、問題がありそうな点
・XT,YTはintだと精度が足りない(AX,AY以外は全てfloatの方が望ましい)
・「左方向に突入」の部分のShellXT=35/ShellVX;は+=の間違い
・XT,YTが1フレーム分の時間を超えていたらループから抜ける必要がある

32 :名前は開発中のものです。:2008/11/19(水) 06:25:45 ID:pWNBSaSF
合ってねーよバカw


33 :名前は開発中のものです。:2008/11/20(木) 02:14:48 ID:njtRhxXk
なんかわからんけど >>14>>19 を見た感じ
これでいんじゃね?

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;
    }
   }
  }
 }
}


34 :名前は開発中のものです。:2008/11/20(木) 07:27:59 ID:ILiqIbsP

来た方向にそのまま戻ってくだけじゃねーかよw
反射させろよw



35 :名前は開発中のものです。:2008/11/20(木) 10:05:54 ID:4yNvzVLI
回帰性があるんですね

36 :名前は開発中のものです。:2008/11/20(木) 17:22:35 ID:rpm+4CxU
ゲーム作るならついにD言語のほうがとうとういいよ

37 :名前は開発中のものです。:2008/11/20(木) 17:55:39 ID:2O47CO/r
ついにとうとうDの時代が来たか

38 :名前は開発中のものです。:2008/12/04(木) 15:02:10 ID:tF31gb+s
Vista対応のゲームをつくる場合、
\Program Files以下にsavedataを作るのはまずいのでしょうか?

39 :名前は開発中のものです。:2008/12/04(木) 15:13:47 ID:f93IhlbP
>>38
まずいよ
fopen( )だと NULL が帰ってくるから

40 :名前は開発中のものです。:2008/12/04(木) 15:15:55 ID:+ofge7Nr
まずいと思うよ。書き込めるように対策してたとしても、
プレイする人の環境によって、そのまま保存されたりVirtualStoreディレクトリに
自動的に置き換わったり、警告出たり出なかったりと、動作がまちまちになるからねえ。

41 :名前は開発中のものです。:2008/12/04(木) 19:26:59 ID:tF31gb+s
ありがとうございます。やはりそうでしたか。

savedataどこに作るか悩みますね。。
どこに作るのが一般的なのか調査してきます。
こちらでもアドバイスいただけると幸いです。

42 :名前は開発中のものです。:2008/12/04(木) 23:28:46 ID:L0NPB3+N
マイドキュメントでも良いけど、ユーザーが直接ファイルを参照する必要がないなら
CSIDL_APPDATAのが適切かな。

43 :名前は開発中のものです。:2008/12/05(金) 09:49:13 ID:tEf/k/KB
そうだな。
他のアプリでも使う可能性がある場合はMyDocument、専用ならAppDataだな。

44 :41:2008/12/05(金) 18:35:25 ID:7X+FAXTm
> 42 43
ありがとうございます。やはり結論としてはApp dataに落ち着きそうですね。

45 :名前は開発中のものです。:2008/12/05(金) 21:38:25 ID:j0PqzKS1
中学1年で数学を挫折した馬鹿な僕に教えてください
普通の3D→2Dの座標変換(x、y、z座標を持った物体の画面上の表示場所x、yを求める)
の計算方法は分かるんですが、
今分からなくて知りたいのはラスタースクロールで奥行きを出すときで、
あるY座標に来たときにXをどれだけずらせばいいかを算出する計算方法です。
具体的に言えばストリートファイター2の地面の横スクロール(立体感がついている)や、
古くはマグマックスの地上面の地表みたいな表現です。
簡単に説明できなければお薦めの参考図書を紹介してくれるのでも良いです
お願いします

46 :名前は開発中のものです。:2008/12/06(土) 02:19:07 ID:H7gLDNRD
そんなの雰囲気でおk
なんでもかんでも方程式で出さないと気がすまないのか?

47 :名前は開発中のものです。:2008/12/06(土) 02:28:57 ID:x2Ho2N6O
スト2の地面なんて、たんにY座標に正比例してるだけじゃなかった?

48 :名前は開発中のものです。:2008/12/06(土) 07:30:02 ID:EvnFjAdZ
>>46
答えられないなら無理にレスしなくて結構です
>>47
どういうことですか?
適当にやったらまったく立体的に見えなくてダメでしたので…

49 :名前は開発中のものです。:2008/12/06(土) 11:32:04 ID:KLvL9x5Z
やった事無いから適当に考えるが。

背景の中心、地面の一番奥から一番手前まで直線が引いてあるとして
一番手前の地面を左右にスクロールさせると、その直線は傾く。
けど曲線にはならない。直線のはず。

つまり正比例で座標ずらせばいいってだけじゃないのかな。

それと言っておくが

>答えられないなら無理にレスしなくて結構です

こういう事を言うやつはよくいるが、「自分の性格は悪いです」って公言してるようなもんだから
誰も回答してくれなくなるぜ。

50 :名前は開発中のものです。:2008/12/06(土) 11:57:50 ID:je8dQCcg
クオータービューで検索してね
"3DRPGプログラミング" この本を買って読んでみなさい。


51 :名前は開発中のものです。:2008/12/06(土) 19:52:48 ID:4OvlXTAb
>>43
文句たれるバカが沸くから
結局ユーザに選ばせるしかない

52 :名前は開発中のものです。:2008/12/07(日) 08:52:11 ID:GBSyFyEZ
適当な数式作るにはセンスが重要だよね……

>>48
スト2のリュウステージをラスタースクロールのみで再現しようとするなら、
まず板の継ぎ目がある一点に収束するように引いておく(画面中心点が妥当)。
その点からの相対Y座標を使い、
各ラインのスクロール量X = 立ち位置ラインのスクロール量X * 各ライン相対Y / 立ち位置相対Y
でいいんじゃないかな。

ただ上記の処理だと半画面分スクロールしただけでもドットがボロボロになるので、
普通は拡大縮小処理も一緒に使うと思うよ。
この場合、板は普通に長方形で書いておき左右は均一に、上下は奥に行くほど
小さくなるような雰囲気で色を塗り、
各ラインの拡大率X = 各ライン相対Y / 立ち位置相対Y
で、画面の垂直中心線上のスクロール量が同一になるように補正する。

53 :名前は開発中のものです。:2008/12/07(日) 09:12:51 ID:NKrbC59O
>>52
きめ細かい解説ありがとうございます。
ストIIは実際拡大縮小もやっているのでしょうかね?

54 :名前は開発中のものです。:2008/12/07(日) 18:46:01 ID:49VdVrcF
センスのない奴ほど数式に頼りたがるよな
それで、修正のリクエストがあったときに
物理法則がどうのこうのと力説したがる

55 :名前は開発中のものです。:2008/12/09(火) 07:07:30 ID:+Z5nbwy8
数式を使わずにどうやってプログラミングするんだ。
ツクール派?


56 :名前は開発中のものです。:2008/12/09(火) 10:32:23 ID:pmbjGPY8
ジャンプを実装するのに
いちいち質量がいくつで、重力係数がいくつだから・・・・
とかやりだすことだろ

57 :名前は開発中のものです。:2008/12/09(火) 10:58:49 ID:UXQm+qSa
ジャンプなんかは適当でもいいし、
どんなに不自然なジャンプでもそれによってゲーム性にオリジナリティが出るんだからそれでいい。
だが3D表示をするにあたって計算が適当じゃあ3Dに見えないだろ
問題が全く別だよ
トンチンカンな会話すんな

58 :名前は開発中のものです。:2008/12/09(火) 11:55:35 ID:HsEnKH5F
じゃあ全く別な問題を持ち出す>>57が一番トンチンカンということになるな。

59 :名前は開発中のものです。:2008/12/09(火) 14:25:54 ID:6m6wEUZw
普通に考えてこんなのに3D計算なんかしてないだろ
単純に奥のものが手前にあるもより遅く動いてるだけ
どれくらい遅くするかは作った人間のセンス
たぶん何度も係数をいじって自分の感覚で
ベストと思われる動きでフィックスしてるはず
この感覚が万人に受け入れられない人をセンスのない人という

60 :名前は開発中のものです。:2008/12/11(木) 07:02:29 ID:5iwyeWDL
3D計算してもしなくても、最終的に数式に落とす事になるだろ。
それを聞いてるんじゃないの?
具体的な係数を聞いてるわけじゃないし、そこはAとかBとかでいいじゃん。


61 :名前は開発中のものです。:2008/12/18(木) 11:30:02 ID:xmq4VfJC
ライトユーザー向けのPCゲームつくりたいんだけど、
Vramの推奨スペックはいくつにすべきか?
ご意見伺いたいです。

62 :名前は開発中のものです。:2008/12/18(木) 12:25:16 ID:5uBOIM3K
何作るかによるでしょ。
3DじゃなけりゃWindowsが使えるだけあればいいよ。

63 :名前は開発中のものです。:2008/12/18(木) 12:43:11 ID:NjDBhxVW
>>61
2Dなら800*600*32ビット1画面で2Mバイト
裏画面入れて4Mバイトあればいいんじゃない


64 :名前は開発中のものです。:2008/12/19(金) 05:45:59 ID:/GzaBikq
>>61
現に画面が表示されていれば、VRAM容量は関係ない。
画面表示用バッファは、すべてメインメモリ(DIBなど)に取れるから。


65 :名前は開発中のものです。:2008/12/19(金) 07:18:28 ID:5Lxw8rsT
2Dゲーならシステムメモリだけでも全然快適に動くから
VRAMゼロでもかまわないよ。


66 :名前は開発中のものです。:2008/12/19(金) 09:16:19 ID:aOn2CrS2
チェックした最低動作環境でのVRAM容量を書いておけばいいよ

67 :名前は開発中のものです。:2008/12/19(金) 17:59:20 ID:gIPakjTt
いまどきの安物パソコンなら専用VRAMなんか構えてないから
メインメモリ共有だし。容量だけなら128MB〜512MBくらいは普通にある。

68 :名前は開発中のものです。:2008/12/19(金) 22:25:50 ID:VMJ9+Wbr
>>61
2Dゲーなら問題なし。
3Dなら、ユーザーが大目のMMORPGを参考にするといいと思う

69 :名前は開発中のものです。:2008/12/19(金) 22:26:25 ID:VMJ9+Wbr
> 大目のMMORPGを
大目の日本のMMORPGを



70 :名前は開発中のものです。:2008/12/20(土) 00:34:45 ID:EllKojph
俺も2Dゲームは画像データとかシステムメモリに置いてたけどさ、
描画周りにアクセラレーション効かせるのってあんまり一般的じゃないの?

71 :名前は開発中のものです。:2008/12/20(土) 00:55:24 ID:CbJUTGDn
いつの時代からタイムスリッパしてきやがりましたか?

72 :名前は開発中のものです。:2008/12/22(月) 00:06:41 ID:gFPzk4ah
>>61
どのみちライトユーザーにVRAMとか行っても理解してもらえない。
奴等は自分のマシンのスペック分からずにで、動いたかどうかしか興味が無い。

73 :61:2008/12/22(月) 12:28:11 ID:fcAyGbxP
Vramの件、みな、どうもご親切にサンクス。
レスおそくなりすいません。カキコできなくて。

何作るかによりますね。すいません。2Dゲーで
Flashで作ったアニメデータがバリバリと動く予定です。
DirectX使っていますので、Vramの確保は必須かもと思っていました。。
ライトユーザーに理解してもらえなくてもいいんですが、
作り手としてってことでしょうか。


74 :名前は開発中のものです。:2008/12/23(火) 02:14:34 ID:vL1qdlBE
>>73
72書いた者だけど、質問の意図は分かります。
ただ、どれだけ気にしてもやっぱり動かない環境は残ってしまって、
そういう環境のユーザーほどマシンスペック分からずに苦情出してくるからな〜
すんません。個人的トラウマでした。
否定的な意見はやめて、

DirectXなら、使用するDirectXのバージョンがそのままマシンの世代を表しているって
考えてもいいんじゃないでしょうか?
例えば、DX7使用ならVRAM8MB、DX8ならVRAM32、とか。
あ、値は適当ですが。

75 :名前は開発中のものです。:2008/12/23(火) 20:12:05 ID:NOdX60e0
お前「殺意を覚えるくらい馬鹿ですね」って言われたことない?

76 :名前は開発中のものです。:2008/12/23(火) 20:41:02 ID:DrL02hk4
VRAMの大きさ(容量)を知る関数のようなもの、ありますか?

77 :名前は開発中のものです。:2008/12/24(水) 13:55:34 ID:ir5LUNRv
>>76
DirectDrawなら
IDirectDraw::GetCaps( )で
http://msdn.microsoft.com/ja-jp/library/cc353808.aspx
dwVidMemTotal
ビデオ メモリの合計容量。


78 :73:2008/12/26(金) 16:23:02 ID:YwwBT0Kv
>74
どうもサンクス。
トラウマ…なんとなくわかります。

79 :名前は開発中のものです。:2008/12/31(水) 14:01:10 ID:VvNRRwGl
Windowsのソリティアのように
コントロールをドラグ&ドロプ、リリスしたとき、
定位置に整列する(磁石に引きつけられるように)コードの
せめて考え方、ヒントを教えて頂けないでしょうか



80 :名前は開発中のものです。:2008/12/31(水) 14:11:55 ID:Zi1V94lh
フレーム毎に目的の位置に近づけていくだけ

81 :名前は開発中のものです。:2008/12/31(水) 14:12:09 ID:sicDYG8u
論理的思考を身につけるには、まず正しい日本語から。

82 :名前は開発中のものです。:2008/12/31(水) 14:25:51 ID:M5esy22P
まずは自力で線分を引けるように。
線が引ければ途中のXY座標もわりだせるだろう。

83 :名前は開発中のものです。:2008/12/31(水) 14:42:28 ID:Y1/xuelj
表示する座標 (x,y)
移動前の座標 (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との違いは始点と終点の距離にかかわらず同じ時間で終点に到達する

84 :名前は開発中のものです。:2008/12/31(水) 20:18:33 ID:Zi1V94lh
>とすると遠いときほど早く近いときほど遅くなり磁石っぽい

磁石は距離が近くなるほど磁場が強くなるので、遠いほど遅く、近くなると速くなる。
つまり真逆。

85 :名前は開発中のものです。:2009/01/04(日) 15:53:08 ID:PprE941C
DirectXとc++で2D格闘ゲームを作りたいと思うのですが、ソースってどこかにないですかね
参考にしたいのですが、ググり方が悪いのか出てきません
ソースの置いてある場所があったら教えて頂きたいのですが、ないですかね

86 :名前は開発中のものです。:2009/01/04(日) 17:35:22 ID:VQhzW2V4
逆に君は自分の自作のソースを晒したいと思ってますかね
ぐぐってパクるだけで分け与えなければどこにもなくて当たり前じゃないですかね
馬鹿ですかね

87 :名前は開発中のものです。:2009/01/05(月) 01:19:54 ID:HsIAylDp
>>86
ガキ臭い煽り方だな
なんか嫌なことでもあったのか

88 :名前は開発中のものです。:2009/01/06(火) 13:57:16 ID:24x5pO5Z
いや、でもいいこと言っている

89 :名前は開発中のものです。:2009/01/06(火) 14:37:31 ID:ZJKN10wA
子曰く
「どうすればいいのか、どうすればいいのか、と考え悩みぬいた者でなければ
 私にもどうしようもない」

最初から他人をアテにしてるようじゃダメってことだな。

90 :名前は開発中のものです。:2009/01/06(火) 19:50:41 ID:5KaPAE6Y
情弱ですか

91 :名前は開発中のものです。:2009/01/06(火) 21:55:02 ID:3TYaYHJU
>>85
格闘げーはアニメーション画像が命みたいなところがあるから、
素材の用意が大変過ぎてプログラミングの教材には向かない罠。


92 :名前は開発中のものです。:2009/01/06(火) 22:09:59 ID:kH8rEgPB
>>85
逆にいえばアニメーション、当たり判定、キー入力ができれば作れるともいえる
キー入力はちょっと特殊だけどそれ以外はインベーダーゲームの応用

93 :名前は開発中のものです。:2009/01/06(火) 22:15:01 ID:NsliiIma
ジョイメカファイト・・・

94 :名前は開発中のものです。:2009/01/07(水) 08:43:07 ID:tOeiWdUq
いっそ3D格ゲーにすりゃ、3Dアニメーションの基本をごっそり勉強できる

95 :名前は開発中のものです。:2009/01/07(水) 16:52:39 ID:F0TH9wEI
PS3のリトルビッグプラネットのCGはDirectXでも表現出来るの?

96 :名前は開発中のものです。:2009/01/07(水) 17:03:09 ID:DnzfbcT/
表示するだけならできるだろうけど
アレのすごい所って主に物理演算の部分だろ?
まったく別問題な希ガス

97 :名前は開発中のものです。:2009/01/07(水) 17:10:42 ID:F0TH9wEI
物理演算はNVIDIAならphysxが使える
あの程度なら余裕なはず

98 :名前は開発中のものです。:2009/01/07(水) 17:14:31 ID:F0TH9wEI
で具体的にどうやればあんなクオリティのCGが作れるのか知りたい
プログラムは出来るけどCGに関してはまったくの素人なんで

99 :名前は開発中のものです。:2009/01/07(水) 19:51:09 ID:ZchRr+VS
>>94
モデリングとアニメーションツールの勉強から始めなきゃならないじゃん。

プログラミングの勉強としてはすっごく遠回り。


100 :名前は開発中のものです。:2009/01/08(木) 02:23:25 ID:OwvAnpBE
>>98
とりあえずBlenderでも弄ってみたら
質は遠く及ばんなりに、基礎やクオリティ上げる定番手法は一式遊べるよ

101 :名前は開発中のものです。:2009/01/08(木) 13:45:17 ID:NsMjn5lD
多少はモデリングのことも勉強しとかんと
デザイナーと会話できないからな

102 :名前は開発中のものです。:2009/01/09(金) 00:10:10 ID:xgPo70G1
DirectXでって言ったでしょ

103 :名前は開発中のものです。:2009/01/09(金) 00:31:42 ID:venL3ic3
>102
CG板で聞けば?CGの話なんだし

104 :名前は開発中のものです。:2009/01/09(金) 02:32:56 ID:2uf5nwF0
>>102
>>96
表示だけならDirectXでもできるぞ。他の人間も指摘してるとおり
データ(モデル・モーション・マテリアル(まぁシェーダーも含むが))を用意できればの話だがな
動きについては物理シミュ用のライブラリ(bulletとかPhysX)でもひっぱってきたほうが楽だな
ただアレの爆発エフェクトを真似るためには簡易なCFDのコードが必要だが、ゲーム用のフリーの
ライブラリでそういう機能を提供してるものがあるのかどうかは知らん

なければ適当に2D格子用意して格子気体法とかCIP法の劣化版みたいなコードを組めばいい
どうせシミュったって何かを厳密に再現する必要はないし、支配方程式が導出できる必要も無い
それっぽい流れ場のアニメーションができればなんでもいい

>で具体的にどうやればあんなクオリティのCGが作れるのか知りたい

>>103
データを作る部分の話はCG板で聞いたほうがいいんじゃね
ティーポットとかトーラスとかシリンダに毛とか生やすだけでおkならD3DXでいけるけどな

105 :名前は開発中のものです。:2009/01/09(金) 03:03:09 ID:xgPo70G1
いやだからリアルフォトマティックレイとレーシングでしょ?
モデルとかそういう問題なの?
ただの無地の球体でもレイトレーシングのアルゴリズムで全然違うでしょ
レイトレーシングの仕方なんて聞いてないんだよ
同じ効果をDirectXで高速に描画出来る方法があるのかって話をしてるの

106 :名前は開発中のものです。:2009/01/09(金) 03:06:00 ID:xgPo70G1
あと物理演算の領域はこっちの分野だから君らに教わることはないよ

107 :名前は開発中のものです。:2009/01/09(金) 03:22:44 ID:2uf5nwF0
>あと物理演算の領域はこっちの分野だから君らに教わることはないよ

おかしいな。分かるならCUDAとか使ってるだろうし
GLSLやHLSLでサクサクと俺シェーダー組めてもいいはずだが・・・

リアルタイムなCFDをやる場合って差分スキームはいつもナニ使ってるの?
後学のために教えてください

108 :名前は開発中のものです。:2009/01/09(金) 08:06:03 ID:xgPo70G1
CUDAとシェーダーは別次元の話だな
物理演算をリアルタイム処理する人しかこの世にいないと思ってんの?

109 :名前は開発中のものです。:2009/01/09(金) 08:10:48 ID:xgPo70G1
高速化技法をいくら語られても根幹のアルゴリズムが分からないって話をしてんの
シェーダー分かったらなんなんだ
超リアルなCGが書けるのか?書けないだろ?

110 :名前は開発中のものです。:2009/01/09(金) 08:22:52 ID:xgPo70G1
リトルビックプラネットのCGはフォトリアルスティックレイトレーシングの結果のようなリアルな画像なの
PS3でもさすがにフルHDをレイトレーシングするような能力は無い
君の大好きなCUDAやGLSLを使ってもPCでは到底無理なの
PS3はDirectXベースに作られてるんだから当然同じことがPCでも出来るだろうと思ってるわけ
レイトレーシングはあり得ないのでどうやってんのかを知りたいの
物理演算とか誰も聞いてないから

111 :名前は開発中のものです。:2009/01/09(金) 08:49:59 ID:9nYZuqdQ
自分で解答言ってないか?

112 :名前は開発中のものです。:2009/01/09(金) 12:20:56 ID:FD9CF3VW
なんでコイツ上目線で質問してんの?人格障害でもあんの?

113 :名前は開発中のものです。:2009/01/09(金) 13:18:37 ID:i9tzRBGb
2chに慣れちゃだめだぞ。:アルファルファモザイク
http://alfalfa.livedoor.biz/archives/51415753.html


114 :名前は開発中のものです。:2009/01/09(金) 18:15:29 ID:xgPo70G1
明らかに知識が下の人が的外れな回答して偉ぶってるからw

115 :名前は開発中のものです。:2009/01/09(金) 20:40:58 ID:GzTmK6ph
つ鏡

116 :名前は開発中のものです。:2009/01/10(土) 03:00:31 ID:1Stepbtb
(;・∀・)

117 :名前は開発中のものです。:2009/01/10(土) 17:35:41 ID:mQJ59Fn9
ほう、PS3がDirectXとな

で、リアルタイムレイトレーシングが無理だと判ってるなら
工夫して俺シェーダー積み上げるしかないのも判ってるんでしょ
リアルに見せるフェイク処理の引き出しを地道に増やすしかあるまいて

118 :名前は開発中のものです。:2009/01/10(土) 20:43:58 ID:BBJn1kSx
PS3のグラフィックチップはGeForce7800ベースだそうだから、
ハード的にDirectXベースというのは間違いでもないよ。

LBPに関しては、何か特別なレンダリング技術を使ってるわけじゃなく、
単にアートディレクションと、質感の設定が秀逸なだけだと思うけど、
「この部分の質感が」とか「この部分のエフェクトが」とか、
具体的に言わないと誰もわかんないんでは?

119 :名前は開発中のものです。:2009/01/10(土) 21:37:42 ID:VXNtlD0N
>PS3のグラフィックチップはGeForce7800ベースだそうだから、
>ハード的にDirectXベースというのは間違いでもないよ。

間違いを認めず、こういう恥の上塗りをする奴って、
いったい何を考えて生きてるんだろう?

ハッキリ言うが間違い以外の何ものでもない。

120 :名前は開発中のものです。:2009/01/10(土) 21:47:52 ID:cb8O919u
同感。

121 :名前は開発中のものです。:2009/01/10(土) 21:59:30 ID:6nsF3ORJ
さあ詭弁のガイドラインでもみてみよう

122 :名前は開発中のものです。:2009/01/10(土) 22:06:42 ID:t9/hm2L8
なんつうんだろう。
あまり人付き合いがなさそうな人に送る、座右の銘。

「土下座する、勇気」。

退く勇気は、がむしゃらに突撃する勇気よりも、大切なんだよ。

123 :名前は開発中のものです。:2009/01/10(土) 22:10:51 ID:6nsF3ORJ
てか、>>113が貼られてんだから少し落ち着けとw

124 :名前は開発中のものです。:2009/01/11(日) 20:03:10 ID:X63+5W++
PS2はopenGLだったと思ったけど、PS3もOpenGLなん?

125 :名前は開発中のものです。:2009/01/11(日) 20:09:11 ID:HfT5qRpC
GLES1.0+RSX拡張
RSX叩くにはPSGLやlibgcmってライブラリを使う
シェーダ言語はCg

126 :名前は開発中のものです。:2009/01/12(月) 01:15:34 ID:wGDVqFsB
ググってみたのですが、見つからなかったので教えて下さい。
linuxについてるGlineというゲームを、
勉強がてら.netのC#で作ろうと思っているのですが、
できれば得点などのロジックをオリジナルに忠実に再現したいと思っています。
オリジナルのソースもしくは得点ロジックが出ているところってありますでしょうか。


127 :名前は開発中のものです。:2009/01/12(月) 02:32:32 ID:St/Xi0CE
>>126
gnome-gamesってソースパッケージがあるはずだから
yumなりsynapticなりで探せ
その中に含まれてる

どうしてもみつからなかったらもう一度聞いて

128 :名前は開発中のものです。:2009/01/12(月) 20:19:41 ID:Ucs8+CZO
>>125
それを総合してDirectXって言うんだよ。


129 :名前は開発中のものです。:2009/01/12(月) 20:52:24 ID:XiJ3otEj
>>128
お前の言っていることは、
PCがあったら、Linuxが動いていようがFreeBSDが動いていようが、
それを統合してWindowsだと言っているほど間抜けだぞ。

130 :名前は開発中のものです。:2009/01/12(月) 21:16:19 ID:bD3J7wUJ
さすがにネタっぽいな
ファーレンハイトが懐かしいぜ

131 :名前は開発中のものです。:2009/01/12(月) 21:18:31 ID:sqS0O25/
家庭用ゲーム機は全部ファミコンで、携帯音楽プレイヤーは
全部ウォークマンですね。

132 :名前は開発中のものです。:2009/01/12(月) 21:34:42 ID:tFvWI/5z
まぁ、おれの中学時代のあだ名はウォーズマンだけどな。

133 :名前は開発中のものです。:2009/01/12(月) 21:40:02 ID:17ZETQ9S
はて・・・?
PS3の開発環境は既にDirectX対応してなかったけか、PhyreEngineで。
DirectXのAPIも実装済みで、OpenGLとDirectX、どちらでも好きな方を選べるとか。

134 :名前は開発中のものです。:2009/01/12(月) 22:38:10 ID:bD3J7wUJ
組み合わせの選択幅が広過ぎるってんで鳴り物入りで紹介された奴だな
ローレベルライブラリじゃなく、フレームワークにあたるエンジンだ
PC/XBOX版で下層エンジンにDirectXも選べるという構成のようだね

135 :名前は開発中のものです。:2009/01/12(月) 22:59:42 ID:r1loPmTT
GKはどうしてもPS3にDirectXが入っててほしくないようだな

136 :名前は開発中のものです。:2009/01/13(火) 23:52:00 ID:31cKUcOq
フレーワークレベルでDirectXも選べるのと、ハードウェアの公式ライブラリでDirectXが動くのとは相当の違いがw

137 :名前は開発中のものです。:2009/01/13(火) 23:55:09 ID:IjMcH/Ql
そもそもPS3ではDirectXを選択すること自体不可能だから、違い云々以前の問題。

138 :名前は開発中のものです。:2009/01/13(火) 23:55:48 ID:UVAnUSa6
しょうがないから俺も今日からDirectXで動くよ。
ああ、髪が表示されないのは、レンダリングが遅いだけだから。

139 :名前は開発中のものです。:2009/01/14(水) 00:26:48 ID:Xhrp9vz4
東京証券取引所はDirectX
大阪証券取引所はOpenGLで動いているという事実

140 :名前は開発中のものです。:2009/01/14(水) 09:51:30 ID:ffiL9vPn
「WOLF RPGエディター」とは? 
・高度なRPG開発が可能な、完全無料のゲーム作成ツールです。
・製作者はなんと「モノリスフィア」やツクール2000で「シルフェイド幻想譚」などを製作した
 SmokingWOLF氏だよ。
・雰囲気はRPGツクール2000に近い。RPGツクール2000で自作システムを作りこむ際に
 不満だったところがいろいろ解消されていて、かなり自由度が高いです。ただし
 その分初心者には難しいかも。すでにツクール2000で自作システムを組むのに
 慣れた人や、RPGツクールでは物足りないけどプログラミングはちょっとという方にお勧め。
・作成したゲームは自由に配布したり、コンテストに投稿することも可能。
 また本ソフトを持たない人でもプレイ可能!ファイル暗号化も完備してるよ!
・要望、不満点、バグ報告などなど書き込みお願いします。今もどんどん進化中です。
・それとマップやキャラなどのドット素材もじゃんじゃん募集中ですので
 一度サイトにお越しくださいませ。
・このツールで作ったゲームをサイトで紹介してるから、ダウンロードしてどういう
 ゲームが作れるのか見てみてね。

2ちゃん本スレ
http://pc11.2ch.net/test/read.cgi/gamedev/1229261856/l100

141 :名前は開発中のものです。:2009/01/16(金) 20:27:23 ID:2P1JjUIA
半年ROMれ

142 :名前は開発中のものです。:2009/01/26(月) 11:18:31 ID:fNy7USfU
C + WinAPIでのオフスクリーンの使い方がわからんのだが。。。

HDC off,hdc;
PAINTSTRUCT ps;
hdc = BeginPaint(hWnd, &ps);//hWndは描画先のウィンドウはんどら

 off = CreateCompatibleDC(hdc);
 <offに対してBitBltやらなんたらかんたら>

 BitBlt(hdc, -----, off, 0, 0, SRCCOPY);
EndPaint(hWnd, &ps);

でできると思ったのにうまくいかない。。
どこが悪いか指摘求む|・`)

143 :名前は開発中のものです。:2009/01/26(月) 11:23:21 ID:jYriVdyp
そのoffに対して適切な大きさのbitmapはSelectしてるか?
もししてないならば、1x1ドットのモノクロビットマップになってるんじゃないか。

144 :142:2009/01/26(月) 14:32:33 ID:fNy7USfU
>>143
ありがとう。
BitBltとかする前にCreateCompatibleBitmap(hdc, X, Y)したHBITMAPを
offにSelectObjectしたらできた。

HBITMAPは使用後Deleteしないと危ないってことも身をもって理解した。

145 :名前は開発中のものです。:2009/01/26(月) 15:12:42 ID:jYriVdyp
WM_PAINTごとに作りっぱなしにしたのかw
大きさ変わらないなら、ウィンドウができた時に1つ作っておいて使いまわせる。
ウィンドウサイズが変わったら作り直して、ウィンドウ破棄の時に消す、とかね。

146 :142:2009/01/27(火) 11:20:58 ID:63/MDkS6
>>145
WM_PAINTは無効にして、好きなときに再描画するようにしてるんだが、、まぁいいか)
再描画する関数が呼ばれるたびに作ってDeleteしなかったな。
タスクマネージャー開くとメモリ使用量のグラフがぐーんとのびてた)
1つを再利用する案、使ってみます(`・ω・´)

147 :名前は開発中のものです。:2009/01/27(火) 11:46:12 ID:g6Z0rQ8m
なんでWM_PAINTだと思ったか。
BeginPaintがあったからだよ〜ん

148 :名前は開発中のものです。:2009/02/06(金) 09:00:05 ID:SU1u5PRJ
えっと
複数のエンジンを搭載した宇宙船をエンジンの出力調整で移動させたいのですが
物理に不自由な人間なもんでまったくどうすればよいのやらこまっております
下の図の矢印のようにエンジンがついてると仮定して
  ←△→
   □
←△□△→
   ↓

左上のエンジンと右下のエンジンの出力を上げると機体が回転するだろうなとはわかりますが
プログラムまでもってけないわけです

一応2Dでの運用を想定しております

複数の速度ベクトルを合成?するのかな
でも回転するとしたらどうすれば…
よくわかりません…orz

149 :名前は開発中のものです。:2009/02/06(金) 09:32:08 ID:IDvsYi6Y
スラスターの再現をすることに何かこだわりがあるなら物理の教科書を読むんだ。

つ Amazon.co.jp: ファインマン物理学 (1): ファインマン: 本
http://www.amazon.co.jp/dp/4000077112

150 :名前は開発中のものです。:2009/02/06(金) 12:07:05 ID:f9/yfsRC
それぞれ回転する中心点の軸をずらして回転行列掛けりゃいいじゃん

151 :名前は開発中のものです。:2009/02/06(金) 14:12:04 ID:2FMS0uiB
こんなの嘘物理でよくね?
中心軸を1点にしておいて、そこを中心に
右上か左下に出力があるときは反時計まわり
左上か右下に出力があるときは時計まわり
移動はすべての出力のベクトルの和
これだけでそれっぽく動きそうな気ガス

152 :名前は開発中のものです。:2009/02/06(金) 16:59:07 ID:R0I8WLM/
中心軸は上の出力で下にずらす
下の出力で上にずらす
両方の出力だと相殺されてずれない
でどう


153 :名前は開発中のものです。:2009/02/06(金) 19:21:57 ID:IDvsYi6Y
お前らそうやってゲームにニセ物理組み込んでるんだな……。俺も俺も

154 :名前は開発中のものです。:2009/02/06(金) 22:01:45 ID:aGsbwcTW
148じゃないけど
静止状態から真空無重力だと148の左上だけ出力した場合回転するんだっけ?w

155 :名前は開発中のものです。:2009/02/06(金) 22:13:48 ID:d5elOzBE
だから、そういう物理を気にしだすと
操作が直感的じゃなくなってプレイヤーのストレスになりかねないから
嘘物理でいいんじゃねって話

156 :名前は開発中のものです。:2009/02/06(金) 22:52:53 ID:aGsbwcTW
>>155
実装はそうだろうけど、知ってた方が、それを基本に考えられるから無駄にはならんと思うがw
148のを自分で組んでみようと思ったら154のが気になって止まったw
で、どうだっけ?w

157 :148:2009/02/06(金) 23:19:27 ID:SU1u5PRJ
>>150
ごめんなさい、回転行列がわかりませんorz
>>151>>152
私も同じような考えにたどり着きました

必死に考え直した結果こうなりました
まちがってるかな?
ttp://www.dotup.org/uploda/www.dotup.org21184.png

中心:緑丸
エンジン:青丸
出力方向:紫矢印

エンジンの出力ベクトルを中心点とエンジンを結んだ線とその垂直線を座標としたベクトルに分割し
赤を回転用のベクトル、水色を移動用のベクトルに分ける

あとは回転と移動をそれぞれ計算すればOK?

すいません日本語にも不自由しているようですorz

158 :名前は開発中のものです。:2009/02/06(金) 23:48:02 ID:T8ShVnXb
>>157
それで合ってるよ。もっと正確に言えば、中心点ではなく重心。
あと、そこについてるのがロケットエンジンなら、普通は矢印は逆向きだな。

そこから真面目に回転速度を求めるには、「慣性モーメント」という知識が必要になる。
値は適当にでっちあげでいい。

159 :名前は開発中のものです。:2009/02/10(火) 15:41:10 ID:eV8ZtmO6
.NETかMFCを勉強しようと思うのですが,
ゲーム開発だとどちらが役に立ちますか?

160 :名前は開発中のものです。:2009/02/10(火) 15:52:39 ID:Xj3fFujS
どっちも微妙
言語はC++のみ?

161 :159:2009/02/10(火) 16:05:56 ID:eV8ZtmO6
>>160
微妙ですか;
どの言語で学びたいというのは,特に無いですが,
C++がコード書いてる量多いです.
VBは入門書通して読んだので簡単なアプリケーションなら作れる程度で,
C#はJavaに似てるから読めるってくらいで,書いたことはないです.

162 :名前は開発中のものです。:2009/02/10(火) 16:12:06 ID:Xj3fFujS
C++やってるなら、.NETはC#前提で考えたほうがいいかも。
MFCでゲーム部分で役に立つところは少ないと思うよ。素でAPI呼ぶのとかわらない。

どっちもウィンドウ作ったりイベントハンドラ使ったりするところは楽できるけど
そういうのを生かすゲームを作るのかどうかってとこだね。
言語とライブラリやフレームワークで選んで、それが.NETやMFCを使ってたら
それも覚えるって感じでいいんじゃないかな。

163 :159:2009/02/10(火) 18:33:00 ID:eV8ZtmO6
了解しました.ゲーム開発で使うといっても,
深い部分の機能まで扱う訳じゃないんですね.

一冊買って読もうと思ってましたが,
Webで調べて動かしてみる程度にしようと思います.
ありがとうございました.

164 :名前は開発中のものです。:2009/02/10(火) 21:26:47 ID:jpQUb+L2
>>163
C++にSDKがシンプルで案外楽なんじゃないかな。
描画や音でハードなことやろうとしたらDirectXやOpenGL/OpenAL使えばいいしね。

165 :名前は開発中のものです。:2009/02/11(水) 12:06:33 ID:4NJho4Vs
>>159
ゲーム本体作るなら、C++ + DirectX
ツール作るなら、.NET(C#)だな

166 :名前は開発中のものです。:2009/02/12(木) 20:13:23 ID:GF7pXsC2
3Dゲームには垂直同期とか異方性フィルタといったフィルタ機能が多く存在しますが、
こういったものの具体的なアルゴリズムが書かれてある書籍を教えて下さい。

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

167 :名前は開発中のものです。:2009/02/12(木) 21:16:01 ID:qYzhx+29
君の「アルゴリズム」の定義は、おそらく一般的なそれとは異なっている。

168 :名前は開発中のものです。:2009/02/13(金) 03:30:08 ID:YfvPS2XS
異方性フィルタとか言い出す前に、
普通に素のモデルを画面に表示できるようになれって話だな。

169 :名前は開発中のものです。:2009/02/13(金) 10:16:54 ID:XaGVfN4Q
>>167
どういうことですか?


170 :名前は開発中のものです。:2009/02/13(金) 14:18:20 ID:n2spZu5F
>>169
垂直同期てなんですか
フィルタなんですか
アルゴリズムなんですか


171 :名前は開発中のものです。:2009/02/14(土) 17:18:16 ID:sx6BcV1l
C++/DirectX でアクションゲームを作ってるのですが、色んなPCで同期をとるために経過時間を計測するのって、
一般的にどの関数使うんでしょうか?
あと、昔、DOSで作ってたころはVシンク割り込みでどうたらこうたら、ってやってたきがするんだけど、
これって今の液晶画面で計測できるもんなんでしょうか?

172 :名前は開発中のものです。:2009/02/14(土) 17:43:59 ID:9hSEub+0
時間の計測は QueryPerformanceCounter とか。
Windowsでは垂直同期の周期は環境によって全然違うので、
基本的には垂直同期に依存しないように作る。

173 :名前は開発中のものです。:2009/02/15(日) 00:36:23 ID:FJmkH997
>>171
精度がミリ秒程度でよければ、timeGetTime。timeBeginPeriodで精度を上げるのを忘れずに。

高精度がいるなら、>>172

174 :名前は開発中のものです。:2009/02/15(日) 00:41:57 ID:brCH5Anb
>>172
>>173

ありがとうございます。
多環境で同期をとるのにどの程度の精度が実際に必要かやってみないとわからないので、
教えていただいた関数をもう少し調べてやってみます。

175 :名前は開発中のものです。:2009/02/15(日) 19:09:59 ID:MYSF9VWq
垂直同期は
D3DRASTER_STATUS rs;
do{
pd3dDevice->GetRasterStatus(0, &rs);
・・・
}while(!rs.InVBlank);
とかやるといいらしい。
ループ内でスリープ入れないとCPU使用率が100%になっちゃうかな?

176 :名前は開発中のものです。:2009/02/15(日) 21:23:34 ID:A1rRuMYU
メモ代わり。
MessageBoxがなぜか表示されない。グーグル先生曰く
WM_PAINTでBeginPaintとEndPaint処理をしてないからだと。
言われたとおりにしたら見事に解決した。
描画処理を別スレッドでやっててもWM_PAINTの処理は必要らしい。
windowsの中の人はよく分からんなぁ。

177 :名前は開発中のものです。:2009/02/16(月) 00:29:54 ID:7z4LXD+E
WM_PAINTはDefWindowProcに流せば、中でBeginPaint/EndPaintを呼んでくれるはずだが。

178 :名前は開発中のものです。:2009/02/16(月) 08:35:55 ID:bKMsn7yg
そこら辺はカスタムウインドウだかしない限りは自動で出来るはずだから、参考書でも眺めたら?と3年ほどプログラミングしてない学生が入ってみる

179 :名前は開発中のものです。:2009/02/16(月) 11:54:02 ID:0xRjldBE
BeginPaint呼ばないと無効領域のクリアができないからだよ
クリアできないといつまでたってもWM_PAINT送り続けられる。
ValidateRectで消してしまうのも手だが。

180 :176:2009/02/16(月) 19:52:31 ID:RG1TxuqM
>>179
ものすごく納得した。サンクス
自作のuiライブラリの処理が甘かったなぁ。

181 :名前は開発中のものです。:2009/02/22(日) 10:56:36 ID:JmJl5yfs
オンラインで10×10マスのビンゴゲームをイメージして下さい。
参加者は、月1回オンラインで100個の数字を記入したシートをUPし、
毎日5個の数の発表を待ちます。

こんな感じのプログラムを創って貰うとき、何に注意して、どこに商談すればいいですか?
お願いします。


182 :名前は開発中のものです。:2009/02/22(日) 13:07:55 ID:9a/tyRQO
なんだかすごい釣り針が…

183 :名前は開発中のものです。:2009/02/22(日) 15:53:56 ID:uv0okrQ5
>>181
そのイメージの元となったビンゴゲームの開発元に
「絵をちょこちょこっと変えたバージョンを作って売ってください」って言うのが一番確実で手っ取り早い。

184 :名前は開発中のものです。:2009/02/22(日) 17:14:10 ID:9a/tyRQO
>>183
こんなところで聞くようなイタイ業者にヒントも出すなよ。
色んな意味でろくな事にならないぞ。

185 :名前は開発中のものです。:2009/02/25(水) 15:43:56 ID:W/hwiF8T
仕様書をまとめたほうがいい
技術的には低の低

186 :名前は開発中のものです。:2009/02/26(木) 04:43:10 ID:EST0UxDP
http://search.vector.co.jp/search?query=%83r%83%93%83S

187 :名前は開発中のものです。:2009/03/25(水) 20:42:40 ID:iHO/uHhQ
ウィンドウを表示するプログラムを作っているのですがウィンドウが表示されず、
visual 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);
}

つづく

188 :つづき:2009/03/25(水) 20:43:23 ID:iHO/uHhQ
int WINAPI WinMain(
HINSTANCE 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;
}

189 :名前は開発中のものです。:2009/03/25(水) 20:58:00 ID:cPG1Bp4Z
showwindowが抜けてる、かも

190 :名前は開発中のものです。:2009/03/26(木) 03:35:13 ID:Q1jkMb06
WS_VISIBLEがあるからShowWindowは必要ないかな

WNDCLASS構造体に値を設定しただけでRegisterClassで登録してないのが原因だと思う

191 :名前は開発中のものです。:2009/03/26(木) 10:22:58 ID:uoZMP3+M
>>190 の通り。
RegisterClass(&wc);
をCreateWindowの前に。


192 :名前は開発中のものです。:2009/04/05(日) 21:54:31 ID:Ul2Xl6r0
あんまりWindowsと関係無いのですが、C++でのメモリ確保方法について質問です。

ゲームでnewとdelを繰り返し使いまくると、やってられないから、
存在フラグを持って制御するように。
と、どこかで見た覚えがあります。

それならば、もうnewでメモリを動的確保ぜずに、
普通に静的宣言でいいのではないかと思ったのですが、
動的確保のメリットって何なのでしょうか?

私は仕事がハード畑一色の人なので、頭が固いです。
どなたか教えてくださいorz

193 :名前は開発中のものです。:2009/04/05(日) 22:34:27 ID:V3UuquCs
×ハード畑なので、頭が固い
○高卒なので、頭が悪い

194 :名前は開発中のものです。:2009/04/05(日) 22:38:51 ID:bmURRfR1
>>192
例えばメモ帳を作るとき、読み込んだデータの長さは分からない。
こういうとき静的な確保だと、何メガバイト確保すればいいのかわからないし、
もし確保した量よりデータが大きければ扱えないし、小さければ、無駄になる

そこで、new/malocなどで動的に確保してやれば、必要な分だけ確保できる。

195 :名前は開発中のものです。:2009/04/05(日) 22:48:17 ID:8bGUAz8h
>>192
使用メモリーが決まってて、制限以内なら静的確保で問題なし。
普通は全部持つ友もリーがはみ出るから、効率いい方法を探すだけ。

196 :名前は開発中のものです。:2009/04/06(月) 20:32:34 ID:wZso2H2m
>>192
個人的には動的確保のほうが流れが分かりやすいけどね。
>>194のような柔軟性も持たせられるし。柔軟性を持つということは
コーディングでメモリ空間の大きさをやたら意識する必要も無くなる。
メモリ確保の速度の関係で、予め確保しておいたメモリ空間を使う
ってのはちょくちょく聞く話だけど、
そういう特別な事情が無い限り動的な確保が王道じゃないかなぁとは思う。

まぁ趣味でやるなら不正アクセスが無い限り自由にやりやがれって話ですよ。

197 :名前は開発中のものです。:2009/04/10(金) 05:55:47 ID:q4HGwHB4
ゲームプログラミングの経験はあまりないのですが、
3DのMOを開発しようと思っています。

そこで開発環境についてお聞きしたいのですが、
簡単に調べて以下のようなものがあるのが分かりました。
・XNA
・Unrealなどのゲームエンジン

XNAはXbox360対応を無視して単にPC向け開発環境として見た場合、良い選択肢でしょうか?
またそういう用途で広く使われているのでしょうか?
Unrealなどのゲームエンジンは、やはりXNAに比べるとすばやく開発出来るのでしょうか?
どの程度自由度が制限されますか?

分かる方よろしくお願いします。

198 :名前は開発中のものです。:2009/04/10(金) 06:01:34 ID:q4HGwHB4
あと、フリーのゲームエンジンでメジャーなものがあれば教えてください。

199 :名前は開発中のものです。:2009/04/10(金) 07:56:06 ID:xaOVHUcG
RPGツクールでも使っとけ。
求めてるのはそういうお手軽にゲームつくれるツールだろ?

200 :名前は開発中のものです。:2009/04/10(金) 08:01:59 ID:q4HGwHB4
そんなものを求めているとは一言も書いていません。
プログラミングの知識としては、OSアーキテクチャからアプリ・サーバ・WEB開発までいけます。
メジャーな開発環境はなんなのか、どんなものがあるのか
そういったトレンドを知りたいと思っています。

201 :名前は開発中のものです。:2009/04/10(金) 08:44:23 ID:3LDySn8E
生意気だから教えてあげないぷー

202 :名前は開発中のものです。:2009/04/10(金) 10:02:25 ID:o/eQJnMQ
俺ならXNA以外のエンジンを進める。XNAの欠点にXBOX用コントローラーしか
利用できない。XNA用のランタイムがほとんどのPCには入っていないので、
利用者に別途インストールをお願いしなければならない。XBOXゲーム機では
なんら問題ではないが。PCでは使いたくない欠点だ。

203 :名前は開発中のものです。:2009/04/10(金) 19:34:54 ID:ESPzFswh
Ogreでも使ってろよクズが

204 :名前は開発中のものです。:2009/04/10(金) 19:48:05 ID:WdqvyJ6f
>>197
Windowsの3Dゲーム開発で何が主流か?といわれたら、主流はない。
あえていうなら、DirectX。
XNAはありえない。
Ogreとかもないな。

UnrealやHalflifeのMODみたいな感じでゲーム開発使うのは海外では流行っているし、
情報あるから(ただし英語)いいかもしれない。
敷居も低い。
ただ、ゲーム開発の主流ではないと思うが。



205 :名前は開発中のものです。:2009/04/10(金) 19:48:54 ID:WdqvyJ6f
> 敷居も低い。
1から3Dエンジンを作るよりも、って話ね。

206 :名前は開発中のものです。:2009/04/12(日) 10:37:36 ID:O+0G4WiN
別にPC前提ならXNAでもXBOXコントローラー以外も使えるけどな。
C#でやりたいというわけでもないなら、XNAじゃないほうがいいだろうな。

207 :197:2009/04/12(日) 11:22:43 ID:2pX9j9Yn
レスありがとうございます。

個人でやるつもりなので
多少パフォーマンス面でデメリットがあったとしても
C#みたいなスピーディに開発出来る言語が良いんですよね。
その点、XNAはログイン処理とかまでフレームワーク化しているようで
おまけに基本的な事をやるにはサーバ要らずと言う点はスタートのし易さと言う意味では強力かなと。

>>203
Python OgreはPythonと言うだけで惹かれますね。

>>204
ランタイムだけでなくフレームワーク、エンジンレベルのものを使おうと考えています。

>>202>>206
貴重な情報ありがとうございます。

とりあえずXNA本を一冊読んで見ます。

208 :名前は開発中のものです。:2009/04/12(日) 17:48:24 ID:uJhs7hdp
まて、XNAはフレームワークだろうけど、エンジンというほどじゃない気がw

OgreってのPython バインデイングもあるのね…。
せっかくだから、Panda 3DってのもPython+3Dエンジンだぜ

C#に拒否反応ないなら、(デプロイにユーザー開発者双方で手間かけてもいいなら)
Pythonとかでもいいよな。

209 :名前は開発中のものです。:2009/04/12(日) 22:03:27 ID:vkgd6Htu
質問です。2Dのゲームの場合絵を描くことについてですが
gifじゃないといけない理由ってありますか?
gifだと256色しかないんで別の拡張子で素材作りたいのですが。
pngとかjpgとかgifとか拡張子ありますがgif以外でもつくれるならば
別の拡張子で綺麗な絵柄で作りたいと思っています。
可能ならばメリットとデメリットってありますか?

210 :名前は開発中のものです。:2009/04/12(日) 22:28:24 ID:LCOFWzsh
プログラム的な話で言えば別に色情報さえ読み取れるなら
どの形式だろうが或いは独自形式であっても問題ない
しかし、なにかのツクール系みたいなツールで作っていて
対応フォーマットがgifにしか対応してないっていうなら従うしかないんじゃない?
むしろgifのほうがライセンスの問題で使うべきではないんだが
DirectXであればbmp、png、jpg、tga、dds、あたりが標準で読める

211 :名前は開発中のものです。:2009/04/12(日) 22:44:13 ID:ZQ7DXobT
DirectX != D3DX

212 :名前は開発中のものです。:2009/04/12(日) 22:45:13 ID:vkgd6Htu
>>210
ありがとうございます、ツクール系ではなく普通に本勝って付録でついてる
サンプルプログラムを改造してゲーム作る予定です。
で、素材の絵を描いていたのですがドット打ちできないんで普通にフォトショップで
描いていたのですが不安になったんで質問させてもらいました。

アクションゲームを作ろうと思うのですがキャラクターのモーションとかも
pngやjpgでいけますか?gifアニメみたいにアニメーションにはできないと
聞いたのですが

213 :名前は開発中のものです。:2009/04/12(日) 23:35:32 ID:LCOFWzsh
>>212
そもそもアニメーション情報を含めることのできる画像フォーマットを使ったとしても
ゲーム上でアニメーションさせるにはそのための機能を自分で実装しなくてはいけません
gifアニメーションで作ったとしても勝手に再生してくれるわけではないのですよ

一般的な方法でいうと
1枚の画像にアニメーションのパターンを全て含めて
画像のどの部分をどのタイミングで表示するのかを
プログラム側から指定してやることでアニメーションをさせます
プリーのツールでそういったアニメーションデータを作成してくれるものもありますが
それはあくまで画像の区切りやタイムテーブルのデータの作成を簡易にしてくれるものであって
それらを読み取ってアニメーションをさせる部分は自分で実装する必要があるのです

214 :名前は開発中のものです。:2009/04/12(日) 23:43:13 ID:vkgd6Htu
>>213
ありがとうございます、それに関してはなんとなくわかります。(アニメーションは自分で実装)
でも描いてるうちに参考の画像見ると全部gifなんでgifじゃないといけない理由が
あるのかなあと気になっていたのです。

自分ドット打ちはできなかったんで・・・

215 :名前は開発中のものです。:2009/04/13(月) 00:03:20 ID:qsxqoxw3
gifでないといけない理由はなにもない
単純にインデックスカラー対応で圧縮されてて
ファイルサイズが小さいからとかそんな理由と思われる
まさか、web上の素材サイトを参考にしてそう言ってるわけじゃないよね?

216 :名前は開発中のものです。:2009/04/13(月) 00:19:55 ID:bYodFX/G
>>215
いや、mugenとかですね。
キャラの動きとかの研究にmugenのキャラを見てましたが全部gifだったんで

217 :名前は開発中のものです。:2009/04/13(月) 05:22:32 ID:DrRdSLAX
時代背景もあるんじゃないのか?
10年くらい前は256以下なら、pngよかgifくらいな時代だったはずだし(まあ、同時にgifライセンスうぜーって時期でもあったが)
俺はよくわからんので。

mugen詳しい人よろ

218 :名前は開発中のものです。:2009/04/13(月) 07:03:54 ID:kKYIuKnL
おれは盲目的にbmpとpng(^-^;
さて

>サンプルプログラムを改造してゲーム作る予定です。
一応PGなら改造って言葉は使わずあくまで「参考にして」ってしとけ
たぶんそんな機会は訪れないと思うが足元すくわれるぞ

219 :名前は開発中のものです。:2009/04/13(月) 08:23:11 ID:GN8f0M0n
どうせ出来ないんだからいいんじゃないの

220 :名前は開発中のものです。:2009/04/13(月) 15:20:22 ID:yYZDsjyV
それを言っちゃあおしめえよ

221 :名前は開発中のものです。:2009/04/30(木) 14:07:29 ID:XSOMXuai
XNAでインベーダーゲームを作ってるんだけど
敵キャラを下にゆっくり移動させるのにはどうしたらいいんだ?
ちなみに右に行って下
左にいってしたってかんじ

222 :名前は開発中のものです。:2009/04/30(木) 16:14:51 ID:Szb967NA
if (mode == 右に動かす)
{
  (敵を右に動かす処理)
  if (一定量右に行ったか) mode = 下に動かす;
}
else if (mode == 下に動かす)
{
  (敵を下に動かす処理)
  if (一定量下に行ったか) mode = 左に動かす;
}
else if (mode == 左に動かす)
{
  (敵を左に動かす処理)
  if (一定量左に行ったか) mode = 下に動かすpart2;
}
else if (mode == 下に動かすpart2)  // ←これは else でもいい
{
  (敵を下に動かす処理)
  if (一定量下に行ったか) mode = 右に動かす;
}

これじゃあかんの?

223 :名前は開発中のものです。:2009/04/30(木) 17:45:01 ID:6x5SV4ES
Dictionaryを使えと何度いえb(ry

224 :名前は開発中のものです。:2009/05/02(土) 11:18:09 ID:1icd8u4m
指定RECTの領域を別RECT(複数)を見てその領域を除いた
複数の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つになるみたいにしたいんだけど、うーん

225 :名前は開発中のものです。:2009/05/02(土) 11:44:19 ID:3Ey8sJwq
分割するという発想じゃなくて
「指定のRECTを含まないRECTを一つ除外する」という処理を
再帰的に指定のRECTと同じサイズになるまで繰り返せばいいんじゃね?

226 :名前は開発中のものです。:2009/05/02(土) 12:21:12 ID:hJ68J4gV
面白い問題だと思ったが、メンヘラが出てきてしまった。
こういう奴は自分のネタ書き込みが実装できなくても、
他人のアイデアに延々ケチを付け続けるので、書き込むのが既にウザイ

227 :名前は開発中のものです。:2009/05/02(土) 12:28:05 ID:1icd8u4m
なんだかよくわからない人がいますが
>>225さんありがとう、何とかなりそうです

228 :名前は開発中のものです。:2009/05/02(土) 13:38:05 ID:3Ey8sJwq
ですよねー
実装もできないひとにアイデアだけ出されてもムカッとしますよね
すでに質問主さんも解決されてるようですが
念の為、簡単なソースを上げておきますね

http://www5b.biglobe.ne.jp/~mya_a/DirectX/main.html

229 :名前は開発中のものです。:2009/05/02(土) 14:23:04 ID:n7KvWJCZ
すげー 前提無視すればお前の妄想でも
コード書けるだろうよw

本物のキチガイ歪みねーな

230 :名前は開発中のものです。:2009/05/02(土) 15:17:44 ID:AaWksVDK
>224
指定RECTを複数RECTの座標軸で分断する
(例題の組なら9つに別れる)
分断されたそれぞれのRECTと複数RECTを判定して取り除く
残ったRECT同士で辺の共有を調べ、長さが揃えば結合する

こんな感じでどうよ

231 :名前は開発中のものです。:2009/05/02(土) 15:58:10 ID:1icd8u4m
>>228
実はまだ解決できていなかったのでソースはありがたいです

>>230
なるほど、複数RECTの座標軸で分断して結合ですか
思い浮かばなかった

お二方どうもありがとう、どうにか実装してみます

232 :名前は開発中のものです。:2009/05/03(日) 01:41:43 ID:DXIo6YRI
スルースキルの高さに感心した

233 :名前は開発中のものです。:2009/05/03(日) 22:48:03 ID:MdPMSTHC
考えられる最小構成でウインドウ作って画面描画とかは何もしないプログラムで
フレームレートを調べたらSleep(0)で2000前後、Sleep(1)で500前後でした

スペックは CoreDuo1.6Ghz GeForce7400go です
こんなもんでしょうか?
もっと凄まじい数値がでるかとwktkしていたのですが…
そして実際に2Dや3D描画をしてしまうと50以下の数値になってしまいます。
フレームスキップ無しではこんな程度なのでしょうか?

234 :名前は開発中のものです。:2009/05/03(日) 23:54:24 ID:fxWPMoUR
みた感じノートのスペックだしそんなものでは?

235 :名前は開発中のものです。:2009/05/03(日) 23:56:09 ID:Xp9/OEVA
はーどうぇああくせられーしょんできてないんじゃ

236 :名前は開発中のものです。:2009/05/04(月) 00:10:43 ID:y/3FOMzs
>>233
Sleep(0)はともかく1の方に関しては、WinMainの頭にでも
timeBeginPeriod(1)って入れてみな。

237 :名前は開発中のものです。:2009/05/04(月) 00:12:46 ID:SSrJcNUp
ちっぷせっとどらいばをさいしんにしてみるとか

238 :名前は開発中のものです。:2009/05/04(月) 00:57:21 ID:zCXNz15P
最近のモバイル版ゲフォには省電機能っぽい何かが無かったっけ

239 :名前は開発中のものです。:2009/05/04(月) 06:49:48 ID:ivjAH+EW
>>そして実際に2Dや3D描画をしてしまうと50以下の数値になってしまいます。
どれくらいの量の描画だか分からないけど、常駐ソフトを数本起動してる気がしる。
CoreDuo1.6Ghz GeForce7400goでちょっと描画したら60切るとか普通ないでしょう。


240 :名前は開発中のものです。:2009/05/04(月) 11:13:52 ID:g3YbI5fi
電源プランを省電力とかにしてるとガツンと速度落ちたりするし
そもそもモバイル用GeFoってnVidiaとかPCショップが謳ってるほど性能高くないよ
メモリがDDR2だったりすることもあるしバス幅も64とか32とか
7400GoだったらCPUパワーでカバーできるFFベンチならある程度のスコア出せるけど
純粋にGPUパワーを図る3DMarkなら
ハイエンドノートの1/10とかデスクトップに比べたら1/15程度のスコアしか出ない
市販のソフトでもちょっとオブジェクトが増えたらすぐカクカクする

241 :名前は開発中のものです。:2009/05/04(月) 13:51:13 ID:+gA/YHQh
[test]test

242 :名前は開発中のものです。:2009/05/04(月) 13:54:28 ID:st/gePPw
やってみたやつを公開してスレの暇人にも試してもらえばいいじゃない

243 :名前は開発中のものです。:2009/05/04(月) 14:16:05 ID:kjiUunSo
>>233
うちは、Core2DuoT7200no2GHz & GeForce7400goだが、
OpenGLでテクスチャ付ポリゴンを500枚くらい描画しても、
Sleep(0)で1000FPS超えるぞ。
60FPSに固定した場合は、一秒間に990msくらいはSleepしてられるよ。

244 :名前は開発中のものです。:2009/05/04(月) 17:48:30 ID:NkdQPUap
CPUの拡張命令とかGPUの制御言語使えばよくね
もちろんハードの制約を意識しなければいけないが


245 :233:2009/05/04(月) 20:31:34 ID:VkgPC6sB
http://down11.ddo.jp/uploader/download/1241436560.zip/attatch

こちらが実行ファイルとそのソースファイルです
みなさんのPCでの数値とかも知りたいです

246 :233:2009/05/04(月) 20:32:46 ID:VkgPC6sB
パスワードは fps です

247 :名前は開発中のものです。:2009/05/04(月) 20:48:30 ID:+gA/YHQh
3D描画は

248 :名前は開発中のものです。:2009/05/04(月) 21:03:12 ID:/bA/nhvO
結果
Pen4 2.8G  1487 500
Core2 2.5G 3049 999
描画が無いから、frame per second じゃないなw

>>234が妥当な見解で、Sleep()はそう言う挙動をする物なんだな。
そして>>243から、233は自分の3D描画を見直す必要がありそう

249 :233:2009/05/04(月) 21:28:13 ID:VkgPC6sB
http://down11.ddo.jp/uploader/download/1241439738.zip/attatch

パスワードは fps です

画面消去と裏画面フリップのみですが60fpsまで下がります

ちなみにDirectX SDKのサンプルSkinnedMeshは550fps近く出ているのが謎です
プログラムの組み方で変わるのでしょうか?

250 :名前は開発中のものです。:2009/05/04(月) 21:32:35 ID:kjiUunSo
>>246
>>243ですが、
(0)2150、(1)950
といったところ。

そちらの環境では描画が、垂直同期になってるとか?
なんにしても、ゲームで60fps固定で動かしたい、とかなら、
別にゲームループ用のスレッド立ち上げて、そこではメッセージ処理させずに、
次のフレームまでの残り時間をSleep()とかにした方がいいかも。

251 :名前は開発中のものです。:2009/05/04(月) 21:35:17 ID:kjiUunSo
>>249
コキコの入れ違いか。
なぜかDLできないので試していないけど、
60fpsに落ちるなら、まず間違いなく垂直同期がONになってるね。

252 :名前は開発中のものです。:2009/05/04(月) 21:46:32 ID:ivjAH+EW
>>245
1000と350だった。Athlon(tm) 64 X2 6000+(3.0GHz)なんだけど、しょぼん。
SetWindowTextが遅いな。プリントしたら10000超えたよ。

>>249
垂直同期させない場合、
d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE ;
にすると、そのままのが出るよ。
試してないけど。


253 :233:2009/05/04(月) 22:09:47 ID:kwNCoBb+
なる程、試してみます
皆さんの数値も参考になりました
ありがとうございます

254 :名前は開発中のものです。:2009/05/04(月) 23:27:39 ID:NUebcNJ2
質問してもいいですか?
プログラムを勉強しようと思うのですが、最初は何から始めた方が良いんでしょうか。
本当に何も知らないので、できれば参考図書なんかをあげてもらえませんか?
お願いします。

255 :名前は開発中のものです。:2009/05/04(月) 23:33:39 ID:kjiUunSo
>>254
まず言語はC++にしとけ。慣れてきてから色々制限のある言語だったら泣くに泣けないから。
コンパイラはVS2008EE無料あたりをインスコ
そしたらは「猫」でググる
乙。

256 :名前は開発中のものです。:2009/05/04(月) 23:53:33 ID:v8MyF9Tp
初心者はC++は非常に難しいのでは
とりあえずはCを大分理解できないと厳しいんじゃね
と思うんだが俺が馬鹿すぎるのかなあ

257 :名前は開発中のものです。:2009/05/05(火) 00:18:25 ID:2Wnl8Pwh
俺も初心者だけど、C++でクラスやテンプレートを読めるおかげで
ライブラリやネット上の公開コードとかの恩恵を受けられるのは大きいよ

258 :名前は開発中のものです。:2009/05/05(火) 00:31:54 ID:0zW0QhP9
>本当に何も知らないので、
BASIC言語を学んでみなさい。
いちばん簡単だから 一生懸命にやれば出来る。
http://www.seiai.ed.jp/t2000/basic/index.html

ゲームを作れるようになった後に、
C言語に進むのも良いだろう。
プログラミングの経験があればC言語収得も容易になる。

259 :名前は開発中のものです。:2009/05/05(火) 10:17:25 ID:g+u8xL7p
BASIC→C→C++→ってのが無理なく進める気がする

ふと気になったが、プログラムを勉強って何だ?

260 :名前は開発中のものです。:2009/05/05(火) 11:25:19 ID:Wgvx6E2M
C++が出来ればCは出来たも同然じゃん?
JavaとC#とも親和性が高いし

261 :名前は開発中のものです。:2009/05/05(火) 11:50:36 ID:RCDRu7ea
C++やってるつもりが、中はCだった、というのでいいんじゃない?

262 :名前は開発中のものです。:2009/05/05(火) 12:34:11 ID:KNtrpfTu
まあベターC的にC++やるのはいいと思うけど分かりやすいところからやっていけばいいかな

263 :名前は開発中のものです。:2009/05/05(火) 14:12:53 ID:a5WwpTFu
BASICやHSPを勧める奴が絶対に出てくると思ってたが、やめとけよ
変な癖がついて、後から苦労するぞ

Click & Createが超オススメ

264 :名前は開発中のものです。:2009/05/05(火) 14:42:12 ID:TfjtoxKy
俺もC++でBASICみたいな使い方してないし
普通にC++から初めていいんじゃないかな。
勉強のための資料も一番豊富じゃだろうし。

265 :名前は開発中のものです。:2009/05/05(火) 16:05:04 ID:RCDRu7ea
言語もそうだが、グラフィック関連はOpenGLだけは辞めておいたほうがいい。
vista用のintelドライババグで五回は死ねる。

266 :名前は開発中のものです。:2009/05/05(火) 16:30:26 ID:KNtrpfTu
初心者からクラスの概念とか始めても大丈夫か
それにポインタとか絡んでくると混乱しないか

267 :名前は開発中のものです。:2009/05/05(火) 16:35:38 ID:u1F14pk8
皆さん、レスありがとうございます。
>>258を読んで頑張ってみます!

268 :名前は開発中のものです。:2009/05/05(火) 17:05:27 ID:2Wnl8Pwh
>>258を見て馬鹿にされてると思わないなら、何の問題も無い。

269 :名前は開発中のものです。:2009/05/05(火) 17:43:52 ID:Pt0wvz3P
>>266

むしろ初心者から始めた方がよくないかなぁ。
俺は未だにBASICの考え方から抜けられんし。

いまさら自分で試せんからなんとも言えんけど。

270 :名前は開発中のものです。:2009/05/05(火) 22:27:41 ID:8gC2H/EA
RPGをVB6で作ろうと思っているのですが、C++を学習したほうがいいんでしょうか?

あとキャラクターのステータスですが、配列にして、
配列(0)がHP、配列(1)がMP…と言った感じでいいんでしょうか
30人ぐらいをストーリーにより入れ替わり立ち代わりの予定なのです


271 :名前は開発中のものです。:2009/05/05(火) 22:29:20 ID:8gC2H/EA
すいません、配列は二次元配列の予定です

セーブ等はとりあえずCSVに書き起こしています

272 :名前は開発中のものです。:2009/05/05(火) 22:53:50 ID:qQRAGi2L
Sleep(0)のメインループとメインループ部を別スレッドにして回した場合、
どちらも似たようなCPU使用率になります
CPU使用率を下げつつ、Sleep(0)と同等の速度を出す方法ってありますか?

273 :名前は開発中のものです。:2009/05/06(水) 02:13:24 ID:Q/fdNOmi
メインループを適当な間隔のタイムイベントでコールバックすれば良い

274 :名前は開発中のものです。:2009/05/06(水) 02:38:15 ID:9tyyI+jx
>>270
VB6は、たしかに当時は流行ったけど、後継VB.NETで構文がまるっきり変わっちゃったので、
いまから勉強するのはお勧めしない。

この板にもC++でRPG作ってる人居るだろうから参考にしてみ。

275 :名前は開発中のものです。:2009/05/06(水) 02:40:58 ID:36dZu90f
>>270

あくまで俺の個人的意見になるけど

>RPGをVB6で作ろうと思っているのですが、C++を学習したほうがいいんでしょうか?

VBでもゲーム作る人はいるし、VBが悪いってわけじゃないけど
C++と既存のライブラリでやった方が色んな意味で楽だと思う。


>あとキャラクターのステータスですが、配列にして、
>配列(0)がHP、配列(1)がMP…と言った感じでいいんでしょうか

基本的な考え方は間違ってない。
今後、自分で管理のしやすさ、変更のしやすさを試行錯誤していく事になると思うけど。

276 :名前は開発中のものです。:2009/05/06(水) 02:41:17 ID:9tyyI+jx
>>272
メインループを別スレッドにして、尚且つ、そのスレッドの中でSleep(1以上)する。
固定FPSのゲームならSleep(0)で何か(timeGetTimeとか)を監視し続ける必要ないでしょ。
ゲームじゃなくて演算速度を出したいだけなら、CPU使用率最大にしてぶん回すべき。

277 :名前は開発中のものです。:2009/05/06(水) 03:33:19 ID:AA8cKT/J
いきなりC++から初めてできるものなのかね
言語の習得に時間が懸かって挫折しなきゃいいがね

278 :名前は開発中のものです。:2009/05/06(水) 03:50:17 ID:0TC6ScVO
出来ない奴は何やっても出来ない奴だよ
ゆとり教育の弊害とか誰もがしってるだろ?

挫折したら言語の所為、DirectXの所為、OpenGLの所為、
自分は非が無い完璧超人w

279 :名前は開発中のものです。:2009/05/06(水) 04:32:44 ID:9tyyI+jx
>>277
MFCじゃなくてSDKなら丁度良いんじゃないかな。
VBは、GUI作るには便利だけど、ゲームだと結局WinAPIベースになっちゃうし。

280 :名前は開発中のものです。:2009/05/06(水) 05:31:19 ID:AA8cKT/J
ならまずはC+DXライブラリ辺りなんじゃね
HSPならもっと簡単かもしれん
もっと手っ取り早く作るんだったらツールでいいんじゃね

281 :名前は開発中のものです。:2009/05/06(水) 07:25:56 ID:8ey4uMo7
初心者にC++勧めるってのは、Perlを勧めるのと同義に等しい(頭痛が痛い)

今時はPerl使うには、いわゆる"モダンPerl"(笑)が普通でその手の書籍とか何冊も読まないまともに使えない。

同様に、C++も"Modern C++ Design"、"C++ Template Metaprogramming"、"Effective C++"とかよまないと
スタート地点にも立てない。
こんな言語、俺は絶対初心者に勧めないw

入門なら昔のBASICに相当するLL系のスクリプト言語でいいだろ
例えば、PythonやRuby

282 :名前は開発中のものです。:2009/05/06(水) 08:40:20 ID:TlNG4nJg
そこでなぜPythonやRuby がでるんだよ!
ゲームならHSPのほうがゲーム向きで情報豊富で簡単だろ。
PythonやRuby 信者なら理解できるがw
俺はC++に入信してるけどね

283 :名前は開発中のものです。:2009/05/06(水) 08:53:02 ID:8ey4uMo7
>>282
ゲームだけやるんなら、HSPでもいいと思う。あくまでBASICの代わりだけど。

まあ、個人的には、ゲーム特化するならHSP勧めるくらいなら、ActionScriptを勧めるな。
今時の流れなら、Flashアプリで公開ってのはよいしな。
HSPはちょっとマイナーすぎなのと、応用性がなさすぎる

しかし、情報豊富って、マイナーすぎてユーザー数が他の言語と違いすぎるだろHSPはw

284 :名前は開発中のものです。:2009/05/06(水) 08:56:09 ID:8ey4uMo7
こんなところで言語論争してもしゃーないけど、
google trendsの結果でも貼ってみる。
さすがにHSPはなあ…
しかし、C++はさすがだ

Google Trends: C++,HSP,Ruby,Python
http://www.google.co.jp/trends?q=C%2B%2B%2CHSP%2CRuby%2CPython

285 :名前は開発中のものです。:2009/05/06(水) 08:58:42 ID:8ey4uMo7
(言語名) + gameにしてみた。
Google 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

(言語名) + ゲームだと計測不能…

286 :名前は開発中のものです。:2009/05/06(水) 08:58:52 ID:TlNG4nJg
初心者が始める言語は何でもいいと思ってる。出来るやつ何でも出来る。
PythonやRuby が外れたのを確認したから宗教論争はここで終わるw

287 :名前は開発中のものです。:2009/05/06(水) 09:03:50 ID:TlNG4nJg
>>284
言語が全体的に下がり気味なのがさびしい・・・

288 :名前は開発中のものです。:2009/05/06(水) 10:35:24 ID:S6pkCKb4
なんだかんだ言っても使う道具が違うだけで使う人間は替わらないからな
書きたい言語で書かせればいい

289 :名前は開発中のものです。:2009/05/06(水) 10:47:05 ID:wX7ojKK3
HSPなんて日本以外じゃ当然ゼロと思ったら
ドイツ語関係でちょっと出てるな、別の何か?

290 :名前は開発中のものです。:2009/05/06(水) 13:02:01 ID:UbZvhOTa
HSPちらっと見たけど結局憶えること多そうだし
最初からCとかやったほうがいいじゃんと思った

291 :名前は開発中のものです。:2009/05/06(水) 13:08:21 ID:1MHMMcy8
ifやループの基本的なところまでならVBでもHSPで覚えてもいいと思うけどね
HSPは非常にとっかかり易い、画面が非常にシンプルで分かりやすい
C辺りインストールして起動してみたが、何していいのか分からない人はHSPで一度なんでもいいから作ってみるといいと思う


292 :233:2009/05/06(水) 19:46:25 ID:K9az0PAH
http://down11.ddo.jp/uploader/download/1241606473.zip/attatch

パスワードは fps です。

描画部分を別スレッドで60fps固定にした所、メインループ部はSleep(1)で600万ループ
Sleep(13)で40万ループさせる事に成功しました。
CPU使用率はSleep(13)で10以下に抑える事にも成功しました。

293 :名前は開発中のものです。:2009/05/06(水) 21:10:26 ID:9tyyI+jx
>>292
おめ。
>>243環境で、(1)が1200万ループ、(13)が100万ループでした。
いいゲーム期待してます。

294 :名前は開発中のものです。:2009/05/06(水) 22:22:00 ID:31BsjZ7x
私は経験0のプログラミング初心者です。
一昨日から友達と2D格ゲーを作ろう!という話になって少し勉強しました。

HSPで簡単なシューティングを作ることには成功したのですが、このまま
HSPを勉強すれば2Dの格闘ゲームを作るようになれるのでしょうか。
普通のゲームはC++というのを使っているのですよね?
今から同じ時間を費やすとしてHSPとC++だったらどっちが先に2D格ゲーを作ることができるでしょうか。
期間は2、3年でメルティブラッドくらいのゲームが作れたらなあ、と思っています。


295 :名前は開発中のものです。:2009/05/06(水) 22:29:35 ID:S6pkCKb4
ゲームにおいては過程が考えられるかどうかじゃないか?

296 :名前は開発中のものです。:2009/05/06(水) 22:44:47 ID:31BsjZ7x
>>295
過程というと、次に背景を付けてキーボードで動かせるようにして…
みたいなことのことでしょうか?

それとも、このキャラがこう動いたら次はこう動くとか、そういうことでしょうか?

297 :名前は開発中のものです。:2009/05/06(水) 22:47:21 ID:JPAy5CO1
格ゲーは当たり判定と状態の塊だ。
まぁHSPで状態管理するのは大変だろうね。
まぁCやC++を使ったからといって楽になるというものでもないが。

しかしそれよりも、余計なことを考えて手を止めるのが一番よくない。
せっかくHSPを使い始めたんだから、とにかく猪突猛進に雛形を作ってみるんだ。

298 :名前は開発中のものです。:2009/05/06(水) 22:51:20 ID:JuuuPdEY
>>270 >>294
C++を倦厭する人達ってレスの書き方まで似てくるよね
必死さがにじみ出るというか、息切れ寸前というか…

299 :名前は開発中のものです。:2009/05/06(水) 22:53:45 ID:31BsjZ7x
>>297
なるほど!!わかりました!
そうですね、なんか今日1日どっちにすればいいかで延々と迷ってましたし。

とりあえず雛形を作ってみます!ありがとうございました!

300 :名前は開発中のものです。:2009/05/06(水) 22:58:53 ID:S6pkCKb4
個人なら書けるので書きゃいいのに○○のほうがいいですかとか

そもそも解らなけりゃ違いも判らんだろうよ。
まず作れ。話はそれからだ

301 :名前は開発中のものです。:2009/05/07(木) 22:22:40 ID:xXXFn8bD
>>294
経験ゼロから2日で簡単なシューティング作るって何気にスゲーな

メルティブラッドってYoutubeくらいでしか見たことないが、
あの辺まで目指すんならC++にしといた方がいいと思う。
もしくはHSPでもっと簡素なゲームを作ってみるか。

302 :名前は開発中のものです。:2009/05/10(日) 18:30:54 ID:dU5vID34
RPGの戦闘部分を作ってるんですが、ターン制(ドラクエ)のようなものはどういう風に順番が決まるんでしょうか?
すばやさに乱数を加算除算して順番を決めるのは分かるのですが、同じ数値の人が来たときにはどういう処理が良いでしょう?

動的配列を作り、配列[3]等として順番を決めよう・・と思ってたらなんだか頭の中が混乱してきましたorz
同じものに対して順番を決める、という処理はどうするのが一般的でしょうか?


303 :名前は開発中のものです。:2009/05/10(日) 18:36:29 ID:FZlRfxit
見つかった順番か、もう一度乱数を引く

304 :名前は開発中のものです。:2009/05/10(日) 18:39:25 ID:dU5vID34
>>303
ああーなるほど!ありがとうございます!
見つかった順番ってのが分かりやすくていいですね。っていうかそのまんまでしたね

305 :名前は開発中のものです。:2009/05/27(水) 17:17:29 ID:seiL/yBx
実際ゲーム作ってみるといかに市販のゲームが細かいところまで作られてるかわかるよな・・・

306 :名前は開発中のものです。:2009/05/27(水) 17:37:40 ID:ooeFDaTf
しかしあのスタッフロールの長さは異常

307 :名前は開発中のものです。:2009/06/07(日) 02:22:52 ID:iHKxpSHX
>>125
>PSGLやlibgcmってライブラリ

これって公開されてるものなんですか?

308 :名前は開発中のものです。:2009/06/07(日) 02:40:26 ID:XgZ1BVy+
常識で考えろ

309 :名前は開発中のものです。:2009/06/07(日) 03:08:08 ID:iHKxpSHX
貴方の常識なんてどうでもいいんです
事実が知りたいんです

310 :名前は開発中のものです。:2009/06/07(日) 05:28:36 ID:XgZ1BVy+
俺の常識は持ち出してないつもりだが

311 :名前は開発中のものです。:2009/06/07(日) 09:37:33 ID:830nrNph
ここで誰かが答えたとして、それが事実だと信じるのか。
結局自分で調べない事には事実かどうかなんてわからんぞ。

312 :名前は開発中のものです。:2009/06/07(日) 15:25:03 ID:iHKxpSHX
それじゃこのスレいらねーじゃん
くだらね

313 :名前は開発中のものです。:2009/06/07(日) 15:31:33 ID:iHKxpSHX
つか、使える意見を言えない奴が分かったような顔して偉そうにしてると社会では痛い目みるぞ

314 :名前は開発中のものです。:2009/06/07(日) 17:03:36 ID:oeT3VEAp
社会(笑)

315 :名前は開発中のものです。:2009/06/07(日) 18:07:55 ID:M6h6jWTy
そりゃクレクレ厨は痛い目に遭うだろうねw

316 :名前は開発中のものです。:2009/06/08(月) 17:05:24 ID:mawEHegr
社会があまねく有益な意見で満たされて居たら、さぞかし過ごしやすかろうなあ

317 :名前は開発中のものです。:2009/06/09(火) 09:47:49 ID:ruRVuuZj
有益な意見には耳を塞ぐくせに
何言ってんだ

318 :名前は開発中のものです。:2009/06/26(金) 22:36:27 ID:x76xIHaA
マイケルの夢は空へ消えた

つまり
◎マイネル
○ドリジャ
▲デスカ

だなw

319 :名前は開発中のものです。:2009/06/28(日) 22:39:34 ID:3N82CdXt
C++でブロック崩しを作っているのですが、玉の種類を増やそうと思っています
玉の制御はスクリプトで書こうと思っているのですが、
pythonかluaのどちらかだとしたら、どちらがいいと思いますか?
参考にしたいので意見をおしえてください

320 :名前は開発中のものです。:2009/06/28(日) 23:36:19 ID:hGHmXBpJ
どちらもだめ
制御はC++が向いている


321 :名前は開発中のものです。:2009/07/10(金) 16:03:53 ID:GcVAWp8q
http://www.dotup.org/uploda/www.dotup.org221278.7z.html

スクリーン全体を書き換えるやり方だと無駄が大きいので、キャラクターが前にいた場所だけ書き換えるやり方に変更した。なぜか、知らないが、時々残像ができる。治す方法があったら教えてほしい。

プラットフォーム: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);
}


322 :toya:2009/07/12(日) 01:04:32 ID:+auraSRZ
seisho53pe-ji

323 :名前は開発中のものです。:2009/07/12(日) 10:59:23 ID:yE1osiWd
ファイル無いと言われたわ

324 :名前は開発中のものです。:2009/07/12(日) 23:06:56 ID:Pm94PkQG
http://www10.ocn.ne.jp/~mitinoie/RPGClient.7z

取り合えるこちらにアップロードしておいた。
3日後に消す。

325 :名前は開発中のものです。:2009/07/13(月) 18:38:14 ID:IC1GLBGZ
うーん、突っ込むところ多いけど、、、
とりあえずぶつかった時のundoがx,yを戻してるけど
移動時はxだけ、yだけ保存だから戻すときずれて残像になってるね
ほかにもあるみたいだけど、、、これから帰宅なのでまた・・・

関数のコメントは // じゃなくて /// がお勧め

326 :名前は開発中のものです。:2009/07/13(月) 20:38:23 ID:rYbn9Phm
>>325
理由はなに? > //->///

327 :名前は開発中のものです。:2009/07/13(月) 20:54:40 ID:r/cCOFUb
//より///の方が気恥ずかしさと健気さがより際立つ

328 :名前は開発中のものです。:2009/07/13(月) 20:59:01 ID:rjiSz6yn
(//ω//)→(/*/ω/*/)

329 :名前は開発中のものです。:2009/07/13(月) 23:04:03 ID:m7y/L96o
てか、最強のプログラム言語ってぶっちゃけどれよ

330 :名前は開発中のものです。:2009/07/13(月) 23:19:08 ID:NIAmNvGo
最強とか聞いちゃう人は黙ってC#使うのが最強なんじゃないかな

331 :名前は開発中のものです。:2009/07/13(月) 23:59:24 ID:E7cdGbOK
最強論に対極は付き物、高級言語の対極にあるハンドアセンブルを極めてはどうか

332 :名前は開発中のものです。:2009/07/14(火) 00:11:31 ID:pOq3rm7P
それは確かに最強だ。

333 :名前は開発中のものです。:2009/07/14(火) 09:16:51 ID:4Xpi43sp
いっそハードを極めてはどうか

334 :名前は開発中のものです。:2009/07/14(火) 10:11:20 ID:n67BwWQX
>>326
C#でIDEで編集中、メソッドの上で///と入れると
summaryタグとかparamタグが自動で追加されて
そこにコメント書き込んどけばインテリセンスとかでそのコメントが見られるようになる

>>324
とりあえず、Unit.moveToXXXの中、4つとも_oldx、_oldyの保存やってみて。

335 :名前は開発中のものです。:2009/07/14(火) 19:29:22 ID:A7Jso/3Q
IDE

336 :名前は開発中のものです。:2009/07/14(火) 19:30:39 ID:A7Jso/3Q
IDEなら何でも自動に追加されると思うなよ

337 :名前は開発中のものです。:2009/07/14(火) 20:20:15 ID:7qnK4jbf
VisualStudioと書くと突っ込まれそうだったから
無難な言葉を使ったが
結局何言っても同じなんだよな
ただ口はさみたいだけ

338 :名前は開発中のものです。:2009/07/14(火) 20:24:08 ID:7qnK4jbf
一応言っておくけど質問した人が
何使っているかは把握した上での
レスだからね

339 :名前は開発中のものです。:2009/07/14(火) 20:29:42 ID:p3cJHfZl
>>334
サンクス。
///で追加されるとは知りませんでした。

340 :名前は開発中のものです。:2009/07/14(火) 23:16:39 ID:msfsUkAz
>>329
Lisp
異論は認める。

341 :名前は開発中のものです。:2009/07/15(水) 03:33:48 ID:oAaV9htY
>>340
lisp嫌いじゃないけど、最強というには、人によってコードがバラバラすぎてなぁ・・・・。
やっぱし、今時はTeam開発をしっかりと前提にできるものが良いと思う。

よって、C++
C++もテンプレ入り乱れまくりやなんやすると、途端に霧の中に為ってしまうけど・・・・。

342 :名前は開発中のものです。:2009/07/15(水) 08:49:05 ID:wvQDgYgC
最強はマシン語だろ。

343 :名前は開発中のものです。:2009/07/15(水) 12:29:04 ID:ozTsOauR
「最強のプログラム言語」とか言っちゃってる奴はまず日本語を勉強してこいよ

344 :名前は開発中のものです。:2009/07/15(水) 20:47:11 ID:vgHuQMIa
C++なんて無思想ごちゃまぜ言語じゃないか
言語にコーディング規約的なものまで求めるなら
JavaやC#が最強

345 :名前は開発中のものです。:2009/07/17(金) 10:39:57 ID:WnY7CWjL
qwertyuioasdfghzxcvb

346 :名前は開発中のものです。:2009/08/16(日) 09:50:39 ID:mUJcX4L/
HelloWorldのソースこんぱいるするだけでとまどったな

347 :名前は開発中のものです。:2009/08/16(日) 19:14:24 ID:55Gu4o4r
初めはそんなもんでしょ
コンパイラの使い方も併せて学ぶ段階だし

348 :名前は開発中のものです。:2009/08/18(火) 19:55:07 ID:GrHz78T5
95時代に作った自作ゲームをVista対応化させようとしているのですが、
たとえばゲーム成績のランキングをそのPCの全アカウントで共有するためには
ゲームを管理者実行させるほかに手はないのでしょうか?

349 :名前は開発中のものです。:2009/08/18(火) 20:49:11 ID:Jhv90Vd4
>>348
ランキングデータの属性を誰でも読み書き可にすればいいんじゃないの?

350 :名前は開発中のものです。:2009/08/18(火) 21:03:05 ID:CP6QXV5y
C:\Users\Public\
に作ればいいんじゃね
やったことないので推測だけど


351 :名前は開発中のものです。:2009/08/18(火) 21:55:10 ID:lURobZwZ
サービスプログラムを作れ

352 :名前は開発中のものです。:2009/08/18(火) 22:09:00 ID:GrHz78T5
>>349-350
その発想はなかった。早速やってみる

>>351
それだけのために常時常駐させるのかww

353 :名前は開発中のものです。:2009/08/19(水) 02:30:02 ID:y+Txo86j
放物線を描こうとしてるんだが、斜め上にうまく打ち出せない。詳しい人がいたら教えてほしい。
public 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;
}


354 :353:2009/08/19(水) 02:31:20 ID:y+Txo86j
実行環境:C#3.0

355 :名前は開発中のものです。:2009/08/19(水) 10:25:19 ID:zkIhyE9m
>>353
vx,vyは速度だと思うが、dt = cmd.vx / 120.0;ってのは何?
120ってどこから出てきた数字?

sx,syからdx,dyに向かって放物線を描く弾をrotの角度で撃ちたいってことでいいんだよね?
それって解無しの場合があるが、その処理が全く入ってないんじゃないか?

sx,syから見てdx,dyがa度の位置にある場合、発射角がa度以下では絶対に届かない。
発射角がちょうどa度だと初速は∞になる。

初期条件の与え方に問題があるかと。
着弾点を指定したいなら、普通は角度は初期条件で与えない。

356 :名前は開発中のものです。:2009/08/19(水) 19:57:30 ID:y+Txo86j
http://hakuhin.hp.infoseek.co.jp/main/as/shot.html#SHOT_02_01
こちらのソースではうまく動いてたのですが、C#に移植するとうまく動かないとは・・・、
>>355
dtは微分です。

>初期条件の与え方に問題があるかと。
>着弾点を指定したいなら、普通は角度は初期条件で与えない。
どういう風にすればいいのでしょうか?
こっちの方面には疎いので教えてほしいです。


357 :名前は開発中のものです。:2009/08/20(木) 00:34:17 ID:hfiYF6j1
単純にURLの奴と比較すると
double 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使って計算する。

358 :356:2009/08/20(木) 21:23:01 ID:IHNCk0SU
>>357
速度が一定の時のソースは同じサイトで見つかったのですが、速度一定勝つ角度は計算する方法が見つかりませんでした。
どういう風にするんでしょうか?

359 :名前は開発中のものです。:2009/08/21(金) 10:48:09 ID:DvszpD1q
t = (dx-sx)/cosα*(初速) を
(dy-sy)=sinα*(初速)t - gt^2 に代入してαを求める



360 :名前は開発中のものです。:2009/08/21(金) 12:52:07 ID:hppXED8L
(dy-sy)=sinα*(初速)t - gt^2/2だった

361 :名前は開発中のものです。:2009/08/21(金) 19:22:48 ID:7MXGbqnZ
>>359
αということは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


362 :名前は開発中のものです。:2009/08/21(金) 23:49:07 ID:e3g3OiNI
一発で出ないでしょ
逐次計算で初期角度をatn((dy-sy)/(dx-sx))にして
x方向とy方向の到着時間を比較して、それが近くなるまで繰り返し

363 :名前は開発中のものです。:2009/08/22(土) 02:49:05 ID:RxygmHfQ
やってみたがうまくいかない・・・。
public 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;
}


364 :名前は開発中のものです。:2009/08/22(土) 02:51:09 ID:RxygmHfQ
訂正
× rot++
○ rot += 1 * Math.PI / 180

365 :名前は開発中のものです。:2009/08/22(土) 05:25:00 ID:JiYVKMm8
1 * は意味あるのか

366 :名前は開発中のものです。:2009/08/22(土) 07:28:00 ID:v9eiapHS
そういう年頃なのさ

367 :名前は開発中のものです。:2009/08/22(土) 19:32:58 ID:UJPlGrDF
必ず1が係数となっていることに気づかなければlogXの部分積分はできないんだよ!!!

368 :名前は開発中のものです。:2009/08/22(土) 19:34:43 ID:p3yP0Up8
発射位置(x0,y0)と目標位置(x1,y1)が同じ高さ(つまりy0==y1)の場合なら

仰角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だから、それ以外は解なし(初速が足りない)

369 :名前は開発中のものです。:2009/08/22(土) 21:04:38 ID:RxygmHfQ
>>368
求めたいのは斜めの場合です・・・


370 :名前は開発中のものです。:2009/08/22(土) 23:07:35 ID:p3yP0Up8
それじゃあ面倒だが>>359方式で…途中の式は省く
1 / 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;

一応動いたけど左向きに発射するときは初速度をマイナスにしないとダメっぽい


371 :名前は開発中のものです。:2009/08/24(月) 19:01:06 ID:IPXhfjSk
C何でも質問サイト
かなりレベル高いゲームあるね、ここは
http://dixq.net/sakuhin.html

372 :名前は開発中のものです。:2009/08/24(月) 19:09:58 ID:711xndDg
何の脈略もなく宣伝行為に及ぶのはいったい何なの?

373 :名前は開発中のものです。:2009/08/24(月) 21:39:10 ID:ir6nHlVB
素朴な宣伝がまだ有効だと思っている、頭の硬直化したおっさん。

つか、この板が軽く馬鹿にされてて吹いた。
http://slashdot.jp/askslashdot/comments.pl?sid=463936&threshold=0&commentsort=3&mode=thread&pid=1627366#1627603
最近の奴にとっては、この板は「作ろうスレを立てる板」って認識なのかね。

374 :名前は開発中のものです。:2009/08/24(月) 21:39:27 ID:ir6nHlVB
すまん、スレ間違えた。

375 :名前は開発中のものです。:2009/08/25(火) 19:10:21 ID:UObdHxkO
ドラクエ8-9だとキャラクタのポリゴンに黒い輪郭線が付いているじゃん
あれどうやってるかわかる人いる?

376 :名前は開発中のものです。:2009/08/25(火) 22:41:10 ID:AOgNxinP
同じモデルを黒く塗りつぶしてちょっと大きくして面カリングを逆にする

377 :名前は開発中のものです。:2009/08/27(木) 00:10:49 ID:4dHRqDCZ
深度バッファを描画して隣接するピクセルとの深度値の差が一定以上なら黒く塗りつぶす
法線を描画して隣接するピクセルとの法線の向きが一定以上の角度で黒く塗りつぶす
オブジェクトをそれぞれ別の色で塗りつぶして描画して隣接するピクセルの色が異なっていたら黒く塗りつぶす

これらを組み合わせるのが一番きれい

378 :名前は開発中のものです。:2009/08/27(木) 16:45:06 ID:TkpNRAkw
DQ9はたぶんDSのハードの機能を使ってる。
仕組みは>>377の3つめに近いと思う。
自分でやるならまずは>>376のやりかたからだろうね。

379 :名前は開発中のものです。:2009/08/27(木) 23:51:51 ID:+fcJCniV
>>375
色んな手段があるけど、描画結果から想像するとこれだと思う。

モデル読み込み時にメッシュが他のメッシュに接続しているかどうかを求めておいて、
次の条件が1つでも当てはまったときメッシュ辺を描画する。
・接続するメッシュが無い ※接続が裏表になっている、接続するメッシュが複数ある場合もこの扱い
・接続するメッシュが視点から見ての裏表になっている

描画例(Javaアプレット)
ttp://www5b.biglobe.ne.jp/~clap/applet3/MagicAction/AppletMotion7Viewer.html

380 :名前は開発中のものです。:2009/08/28(金) 03:33:06 ID:HsGKMciu
>>370
実装してみたのですが、放物線を描かないみたいです。
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

381 :名前は開発中のものです。:2009/08/28(金) 15:02:48 ID:DmqjfMSC
C言語のindex関数、rindex関数に相当するWin32APIは何でしょうか?

382 :名前は開発中のものです。:2009/08/28(金) 16:10:33 ID:dkA1HT2S
>>381
strchr、strrchrではだめなのか

383 :名前は開発中のものです。:2009/08/28(金) 16:13:07 ID:DmqjfMSC
>>382
それANSIじゃないんですか?UNICODE(加えてANSIも混在)のソース内で適宜文字列比較したいんですが
ようするに引数にTCHAR型を渡したいんです。

384 :名前は開発中のものです。:2009/08/28(金) 16:18:49 ID:fGO+3/fF
>>381
StrChr、StrRChr

385 :名前は開発中のものです。:2009/08/28(金) 16:22:17 ID:fGO+3/fF
TCHARなら_tcs系使えばいいだけだろwww
_tcschr、_tcsrchr

386 :名前は開発中のものです。:2009/08/28(金) 23:23:03 ID:DvI+Lg5w
>>380
どういう軌道になったの
直線にみえるなら正しい可能性がある
(銃の弾道のように初速度が十分に速いとほぼ直線になる)

この場合、2次方程式のもう1つの解を使えば、
銃で空を撃って落ちてきた弾があたるような軌道になるはず
ゲームなので適当にパラメータをいじってイメージにあった軌道にすればいい

それでも動かないなら、すまんが原因はわからん

387 :名前は開発中のものです。:2009/08/29(土) 00:10:27 ID:kY5tJbv2
Windows7
Directx 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.

のエラーが出ます。

これを解決するにはどうするのですか?

388 :名前は開発中のものです。:2009/08/29(土) 00:41:26 ID:ekhY5LT7
VisualStudioの「ツール」-「オプション」-「プロジェクトおよびソリューション」-「VC++ディレクトリ」で
「ディレクトリを表示するプロジェクト」に「ライブラリファイル」を選択してd3dx9d.dllのあるディレクトリを追加する
(例、C:\Program Files\Microsoft DirectX SDK (November 2008)\Lib\x86)

「プロジェクト」-「プロパティ」-「構成プロパティ」-「リンカ」-「入力」で
「追加の依存ファイル」にd3dx9d.dllを追加する


389 :名前は開発中のものです。:2009/08/29(土) 00:44:38 ID:im1B0JiC
7でもd3dx9d.dllのエラーは残ったままか。

390 :名前は開発中のものです。:2009/08/29(土) 00:46:04 ID:ekhY5LT7
ごめん、libじゃなくてdllなのか
dllがある場所が分かってるならパスを通せば動くと思うよ

391 :名前は開発中のものです。:2009/08/29(土) 00:53:25 ID:kY5tJbv2
>>389
vistaでも同様のエラーがでました。

system32のフォルダには確かにd3dx9d.dllがありませんでした。

392 :名前は開発中のものです。:2009/08/29(土) 01:06:36 ID:kY5tJbv2
directx sdkのフォルダにありました。
そしてそれをsystem32のフォルダに突っ込んだら解決しました。

393 :名前は開発中のものです。:2009/08/29(土) 02:16:55 ID:ihAb3rV7
>>386
なにも表示されませんでした。
デバッカーで追ってみると、判別式の段階でマイナスになってしまいます。

(この時の値はdx = 332,sx=172,dy = 0,sy = 0です)

394 :名前は開発中のものです。:2009/08/29(土) 16:07:12 ID:dF9sCpgQ
初歩的質問なんですが
プレイヤーの位置やミサイル座標などの変数は普通グローバル変数にするもんなんですか?
関数をかいてるとうまくいかないので悩んでいます。

395 :名前は開発中のものです。:2009/08/29(土) 16:11:20 ID:KWkdqwG6
書き方なんてどうでもいい。
余計なことを考えている暇があったら完成させることを優先しろ。

396 :名前は開発中のものです。:2009/08/29(土) 16:39:21 ID:J4wr3SeP
>>395が正しいよ。
本当はそれは設計が拙いんだけど、
設計だけ上手くなっても屁の突っ張りにもならない。

アマチュアゲームプログラミングの世界は、
面白いものを作れる奴が一番偉く、
とりあえず完成まで持って行けるやつが次に偉く、
遊べるレベルまで作れる奴が三番目に偉い。
そういう世界。

そんな歪んだ状況になるくらい、ちょっとサンプル動かして作れるつもりの奴、
作れるつもりで参加して途中で投げ出す奴、そういう奴が多すぎるんだ。
だからこそ、プログラミングの上手さよりも、まずは一通りの完成を心がけるべき。
技術は後から付いてくる。

397 :名前は開発中のものです。:2009/08/29(土) 18:52:48 ID:z18fO2ms
完成が見えたら後は無駄な作業が待っているだけなんだから、切り上げて次の事に
手を出した方が効率がいいじゃないか。

398 :名前は開発中のものです。:2009/08/29(土) 22:13:10 ID:vrpydYWV
>>394
>プレイヤーの位置やミサイル座標などの変数は普通グローバル変数にするもんなんですか?
普通はしない
適当なクラスに突っ込んどけ

399 :名前は開発中のものです。:2009/08/29(土) 23:44:52 ID:z18fO2ms
まて、嘘を教えるな。
グローバル変数にしてバグ発生を減らすべきだろ。

400 :名前は開発中のものです。:2009/08/30(日) 00:12:41 ID:Vp+tSpyX
グローバル変数にしてバグ発生を減らす。 とは、はじめて聞いたな

401 :名前は開発中のものです。:2009/08/30(日) 00:43:29 ID:Ipqtkf/M
いや、馬鹿に取っては正しいと思うよ。
変に複雑化させるよりも、自分の能力で制御できる範囲に
複雑性を抑えておく必要があるから。

402 :名無しさん@そうだ選挙に行こう:2009/08/30(日) 08:19:54 ID:sFh4aBMU
一人で作っているのなら、作りたいように作ればいい。
こうしなければいけないなんて方法はないし、
お互いの開発技法を論じても、毎度発生する、
ただの押し付け合いにしかならない。

403 :名無しさん@そうだ選挙に行こう:2009/08/30(日) 08:31:44 ID:Vp+tSpyX
>>402
作りたい様に作ればいいのはその通りだが。初心者が
「グローバル変数にしてバグ発生を減らす。 」をまともに受けたら、
不幸だとは思わないのか?
それとも、他人なんかどうでもいいのか?

404 :名無しさん@そうだ選挙に行こう:2009/08/30(日) 10:32:50 ID:sTPPAqK6
他人の不幸がどうでもよくないというなら
君が「グローバル変数のどこがどう悪くて他にどういう方法がいいのか」を
懇切丁寧に教えてあげればいいんじゃないかな。

405 :名無しさん@そうだ選挙に行こう:2009/08/30(日) 12:10:52 ID:Ljdw77HH
>394
そういう時は、とりあえずグローバル変数で組んでみて、問題点が出てきたりしたら変えればいい。
そうやって、一つ一つ九州で豚骨ラーメンを食べる。

406 :名無しさん@そうだ選挙に行こう:2009/08/30(日) 13:07:04 ID:4N+M4wcS
自分は関数にstatic宣言した変数(構造体)を
ポインタで返して使うかな。

どこからでもアクセスできるのは変わらないけど、
各関数で前もってその関数を呼び出す必要があるので、
その変数はグローバルアクセス可能であり
書き換えに注意するという心構えを持てる。

407 :名前は開発中のものです。:2009/09/03(木) 23:49:56 ID:T5vV7TnQ
グローバル変数を使わないにしてもmain関数で変数宣言して使い回ししてたら似たようなもんだしな
クラス使えないなら何でもいいから一つ作って、その先にあるものを勉強していくべきだと思う

グローバル変数は使うべきじゃないなんて誰でも気づくし、
ムリに使い続けほどセンスない奴はさっさとリタイヤしていくから心配しなくてもいいと思う
まぁ職場にセンスない奴がいて焦る気持ちは分からんでもない。俺も現役の頃はそうだった

408 :名前は開発中のものです。:2009/09/04(金) 08:08:36 ID:9GRbyIPY
ベルレ法を使って物体を移動させたいんですが直線運動でなく回転運動をさせたい場合どのようなプログラムになるんでしょうか?

409 :名前は開発中のものです。:2009/09/11(金) 19:32:49 ID:tdiXH7FQ
var px:int = player.x / 40;
var py:int = player.y / 40;
//playerの移動
if (left == true) {
if (map[px - 1][py] == 0) {
player.x -= 4;
}
}else>右上下に続く

1マス40ピクセル、15x15の二次元配列でマップを書いているんですが
上のプログラムだと壁からひとつ右のマスに4ピクセル入っただけで壁があることになるのですが
どうすれば上手いこと壁にぶつかれるでしょうか?教えてください。

410 :名前は開発中のものです。:2009/09/11(金) 20:08:12 ID:82Pb8qAz
40ピクセルの大きさのマスを4ピクセルずつ移動するって事は
壁の判定は、ちょうどマスに合っている位置から動き出そうとする瞬間のみにするとかどうよ。

つまり player.x % 40 == 0 の時のみ左右の壁チェックをするとか。

具体的には……

if ( player.x % 40 != 0 ||
map[px - 1][py] == 0 ) {
player.x -= 4;
}

かな?


411 :名前は開発中のものです。:2009/09/11(金) 20:23:15 ID:c5vNUe99

var 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>右上下に続く

こんな感じでどうかしら

412 :名前は開発中のものです。:2009/09/11(金) 20:25:24 ID: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>右上下に続く

すまん訂正

413 :409:2009/09/11(金) 21:54:54 ID:tdiXH7FQ
>>410-412
ご回答ありがとうございます。
両方のプログラムで当たるのを確認しました。
412さんのpx+1だと一マス文右に戻ってしまうのでpxのみで済ませてみました。
ありがとうございました。

414 :名前は開発中のものです。:2009/09/12(土) 05:22:29 ID:z98JJXec
RPGのイベント処理で質問です
イベントが起こるとイベント処理専用の関数に飛ばすと思うのですが、
そのときは座標を引数に渡すのでしょうか?
それともイベントマスにあらかじめ通し番号のようなものを振っておき、
イベント関数にはその番号を渡し、select caseで対応できるようにするものでしょうか?

415 :名前は開発中のものです。:2009/09/12(土) 07:01:33 ID:O3gITtWc
自分がやりやすい方法で実装しろとしか言いようがない。

416 :名前は開発中のものです。:2009/09/13(日) 00:08:12 ID:AGUGCw1Z
var px:int = player.x / 40;
var 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の座標にいないとと曲がれなくて非常に動きにくいものになってしまいます。
移動速度が変わると壁も越えてしまいます。あと左右でプログラムの量がだいぶ違ってしまうんですが
もっと簡略化などできないものでしょうか・・・、実際のボンバーマンのソースなどが気になります。。
どなたがご指導お願い致します。

417 :名前は開発中のものです。:2009/09/13(日) 00:16:39 ID:eXPdHMCQ
座標じゃなくて、チップ単位だな>ボンバーマン。


418 :名前は開発中のものです。:2009/09/13(日) 00:19:33 ID:ufmFSA1d
アドバイスもらうだけならともかく、プログラムを作り直してくれというのはさすがに感心しないな。

原因と結果と、自分の目標がはっきりしてるのなら自分で試行錯誤できるはずだよ。

419 :名前は開発中のものです。:2009/09/13(日) 00:32:47 ID:QM+uLV1D
なんかもうプログラムごちゃごちゃに見える
移動に関する部分、一度全部まっさらにして書き直したほうが良い気がする…

420 :名前は開発中のものです。:2009/09/13(日) 00:50:42 ID:2/1HGZrm
>>414
自分は座標を引数に渡す。
その座標と、設置してある全イベントを比べて、
位置が同じのを実行していく。

もちろん、マップに入った時に始まるとか、
位置の関係ない開始方法のイベントでは渡さない。
(いろんな開始方法を同じように扱うため、
範囲外である-1を渡している)

421 :名前は開発中のものです。:2009/09/13(日) 07:39:20 ID:dEvmTtL8
>>414
位置はグローバル変数に入れておき、引数では渡さない
後は>>420と同じ

422 :名前は開発中のものです。:2009/09/13(日) 17:50:18 ID:PX8WBuTn
俺は一定時間記憶してるキーヒストリー作って曲がらせた

423 :名前は開発中のものです。:2009/09/13(日) 18:31:41 ID:AGUGCw1Z
軽々しく質問をして申し訳ありませんでした。
一度白紙から自分で頑張ってみます。回答ありがとうございました。

424 :名前は開発中のものです。:2009/09/16(水) 20:45:32 ID:9Gk9YNxC
ゲームループについて質問があるのですが
@とAの形式、どちらの方が一般的でしょうか?


@
while(1)
{
  入力(キーボード、パッド)
  ゲーム処理
  出力(描画、音)
}

A
while(1)
{
  if( イベントあれば)
  {
   入力(キーボード、パッド)
  }
  else
  {
   ゲーム処理
   出力(描画、音)
  }
}

425 :名前は開発中のものです。:2009/09/16(水) 21:12:41 ID:Acu1/qMJ
いや、2だとおかしいだろ。入力と出力を同時に行えない。
1の場合はタイトル画面やメニュー画面で入力や処理や出力を変えたいときに不便。

書くと長くなるので、http://dixq.net/g/#34
こんな感じでいいと思う。正直、動けばなんでもいいし。

426 :名前は開発中のものです。:2009/09/16(水) 21:45:12 ID:TMi/1sDM
elseが無ければ2はまぁあるな
でも意味的には1と変わらなくなるけどね

427 :名前は開発中のものです。:2009/09/16(水) 22:06:47 ID:MfrYy8zd
入力処理でイベント解消してるかもしれんじゃん。

428 :名前は開発中のものです。:2009/09/17(木) 00:55:45 ID:1euYuxFh
2ch初心者です。

現在、学校の課題でX-Window Systemとかいうものでゲームを開発するというのが出されているのですが、
学校の開発環境はLinuxでviエディタで開発しています。

自宅で開発したいと思ったのですが、C++でX-Window Systemを開発することはできますか?

当方、あまり知識がなく困っています。

Cの場合、コンパイルするときに

gcc abc.c -lX11 -L/usr/X11R6/lib

この記述が必要らしいのですが、C++の場合は
ライブラリを追加するんですかね?

そのライブラリは標準とかじゃなくてインストしないとないんですかね?

もうなんか分からなさ過ぎて意味不明ですみません。

429 :名前は開発中のものです。:2009/09/17(木) 01:12:44 ID:WBKCHyYB
>>428
まず、大事なことを言う

X-Window Systemは、Windowsではない
そして、ここはWindowsのスレ

430 :名前は開発中のものです。:2009/09/17(木) 01:22:42 ID:cp1RSSKv
誰もレスしないと思うからおれがしてやるよ

まずスレ違いだし、そこまでキーワード知ってるんなら
linux C++ コンパイルとかでググればg++とか出んだろカス

そんなんじゃ開発なんて到底無理
お前は向いてない
消えろカス

431 :名前は開発中のものです。:2009/09/17(木) 01:35:47 ID:1euYuxFh
>>429
>>430
ありがとうございます。
色々調べたんですが、結局分からなくて。
最終手段にここを頼ったんですが、スレ違いのようですね。
すみませんでした。

432 :名前は開発中のものです。:2009/09/17(木) 01:48:25 ID:ssx4Df8S
>>431
Cygwin使えばWindowsでもC/C++でX 向けのソフトをコンパイルと実行できるよ。
C++に関しては>>430が言うようにg++使うといい。


433 :名前は開発中のものです。:2009/09/17(木) 01:49:18 ID:ssx4Df8S
なんか間違えた。
C++に関してはのくだりは、gccじゃなくて、g++使えって意味ね。

434 :名前は開発中のものです。:2009/09/17(木) 01:51:31 ID:cp1RSSKv
先生に聞けよ

gccが入ってる環境ならg++も大抵入ってる
g++ってのはC++用のコンパイラ
標準ライブラリは勝手にコンパイラがリンクしてくれるから
指定の必要なし
つまりgccをg++に変えればよろし

再度言う
お前は向いてない
消えろカス

435 :名前は開発中のものです。:2009/09/17(木) 02:13:03 ID: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++では実行できない)
・ライブラリをインストールする必要がある
とかいうことなんですか?

向いてないのは分かります。
むしろしたくないのですが、課題なので仕方ないのです。

ほんとうに申し訳ありませんです。

436 :名前は開発中のものです。:2009/09/17(木) 02:19:15 ID:ikGHLMwf
インクルードパスが通ってないだけだろ。
スレ違いだと分かっててここで続けるなよクズが。とっとと失せろ。

437 :名前は開発中のものです。:2009/09/17(木) 03:51:18 ID:XYjt8Ojw
>435
とりあえずこっちに戻れ
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を直叩きとかないわぁ

438 :名前は開発中のものです。:2009/09/17(木) 07:08:56 ID:ySq31WPj
>>435
言っていることが滅茶苦茶。
g++はC++コンパイラなんだから、C++で実行出来ないわけではない。

439 :名前は開発中のものです。:2009/09/17(木) 07:17:26 ID:4nOkpMzw
>>435
早く消えろよ

440 :名前は開発中のものです。:2009/09/17(木) 10:40:02 ID:xzC51KWx
>>435
スレ違いです
学費を払って学校に通っているのだから、課題に関する疑問は先生に聞きましょう
またできるだけ自分で調べて自主学習する癖をつけましょう
何でも人に聞いていては力がつきません

441 :名前は開発中のものです。:2009/09/17(木) 10:48:41 ID:ssx4Df8S
>>435の人気に嫉妬

442 :名前は開発中のものです。:2009/09/26(土) 09:22:03 ID:E2IXiY4A
確定しました。やっぱり来るみたい。今回は10月1日までは警戒が必要。
千葉神奈川静岡東京茨城や他の関東が危険

(重要事項につき会員同時公開) 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

地震来たら権力者達が犯人。・・・ユダヤ人は大量に人を殺しています。


443 :名前は開発中のものです。:2009/10/12(月) 23:04:42 ID:Smf+4Qbv
ゲームで使う画像の種類で悩んでいます。
tgaやdds,png等アルファチャンネルが使えるもので何を使うのが
いいでしょうか…

444 :名前は開発中のものです。:2009/10/12(月) 23:29:52 ID:AQICrxba
>>443
まず使おうとしてる言語やライブラリがサポートしてる形式を調べてみたら良いと思います。
環境によっては使えない形式もあります。

445 :みけ:2009/11/21(土) 14:09:05 ID:K1cRQZx9
はじめまして。
actionscriptでボンバーマンを作っています。
爆弾の火炎がブロックを突き抜けないようにするにはどうしたらよいですか?

446 :みけ:2009/11/21(土) 14:10:44 ID:K1cRQZx9
はじめまして。
actionscriptでボンバーマンを作っています。
爆弾の火炎がブロックを突き抜けないようにするにはどうしたらよいですか?

447 :名前は開発中のものです。:2009/11/21(土) 15:26:28 ID:ooIk2Hg8
ボンバーマンが壁を突き抜けないようにできているのなら
自ずと解るんじゃないかな。

448 :みけ:2009/11/21(土) 15:57:19 ID:K1cRQZx9
確かに、ボンバーマンは壁を突き抜けませんが、爆弾の火炎は十字に爆発するので、
ブロックがあるところで部分的に突き抜けないようにしないとならないんです。
その方法が知りたいです。

449 :みけ:2009/11/21(土) 16:10:29 ID:K1cRQZx9
爆弾の火炎の件、解決しました。回答者の方ありがとうございました。

450 :みけ:2009/11/21(土) 18:13:06 ID:K1cRQZx9
火炎の件、やはり解決しませんでした。ボンバーマンと
一緒のことをすると、火炎の十字のかたまりが、突き抜けず
手前で止まるだけです。言葉足らずですみませんが、正式には
ブロックは突き抜けますが、その突き抜けた部分を見えなくしたいんです。
どなたかわかる方がいらっしゃたら教えて下さい。

451 :名前は開発中のものです。:2009/11/21(土) 18:50:00 ID:B/+Ptzyr
プログラミング言語の前に日本語の勉強からはじめよう

452 :名前は開発中のものです。:2009/11/21(土) 22:48:11 ID:5gUZ2QdM
日本語なんか日常会話ができれば適当でいいよ。
それより英語を勉強しれ、マジで。

453 :名前は開発中のものです。:2009/11/22(日) 00:09:44 ID:NM+RZ4x0
>>450

言ってる意味がわからんわ。
見えなくしたいのなら描画しなけりゃいいんじゃ。

454 :名前は開発中のものです。:2009/11/22(日) 00:43:44 ID:o94KfNkS
>>450
俺のスーパー適当解釈によると

火炎が伸びる処理→ブロックと重なったか判定 true→ブロック破壊&火炎非表示の処理
という流れなのにプレイヤーの移動判定をそのまま使ったせいで
障害物の手前で火炎が伸びずに止まってしまい
ブロックと火炎が重ならないから破壊処理が呼ばれなくて困った!

・・・だとしたら伸びる予定の座標にブロックがアル/ナシ判定を追加すりゃいい
なににせよ、もうちょっと詳しく具体的に日本語でおk

455 :名前は開発中のものです。:2009/11/22(日) 01:10:15 ID:RhhD+ORz
たぶん描画する画像の問題だろ。

●〓〓〓□■■ こうしたいのが

●〓〓⊃□■■ こうなっちまう

とか。

456 :名前は開発中のものです。:2009/11/22(日) 04:14:45 ID:k4wHqViJ
>>450
そんなこと聞かなきゃ分からないようじゃ、やめた方がいい。
ブロックを手前から描けばいいとか。

457 :名前は開発中のものです。:2009/11/22(日) 05:10:12 ID:d0fpruD0
ttp://www.plustarnet.com/aspil/Programming/

ここのプログラムエラーばっかで動かない・・・
ttp://www.plustarnet.com/aspil/Programming/console01.htm
たとえばこれとか動きますか?始めたばっかでかれこれ三時間ほど格闘してパソコンぶちこわしそう

458 :名前は開発中のものです。:2009/11/22(日) 07:09:53 ID: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や開発環境の使い方を学ぶ必要があるよ

459 :みけ:2009/11/22(日) 09:37:26 ID:YNG3oyS5
いろいろありがとうございます。日本語勉強しないとだめですね。爆弾の件、
図解すると、
 ■               ■
 ■               ■
■○■■  こうなるのを    ◇○◇  こうしたいです。
 ■               ■
 ■               ■  
                
○は爆弾、■は火炎、◇は固ブロック。

460 :みけ:2009/11/22(日) 09:39:28 ID:YNG3oyS5
いろいろありがとうございます。日本語勉強しないとだめですね。爆弾の件、
図解すると、
 ■               ■
 ■               ■
■○■■  こうなるのを  ◇○◇  こうしたいです。
 ■               ■
 ■               ■  
                
○は爆弾、■は火炎、◇は固ブロック。




461 :みけ:2009/11/22(日) 09:41:48 ID:YNG3oyS5
図がうまくいかないので何度もすみません。
図解すると、
 ■               ■
 ■               ■
■○■■  こうなるのを ◇○◇  こうしたいです。
 ■               ■
 ■               ■  
                
○は爆弾、■は火炎、◇は固ブロック。




462 :名前は開発中のものです。:2009/11/22(日) 10:34:00 ID:kGsksMh7
その図だと>>450で言ってる

>火炎の十字のかたまりが、突き抜けず手前で止まるだけです。

で、問題ないように思うのだが?

……ひょっとして、十字の火炎ってブロックごとに分割されてない、一塊のキャラなの?

463 :名前は開発中のものです。:2009/11/22(日) 11:38:02 ID:k4wHqViJ
>>日本語勉強しないとだめですね。
皮肉言われてるのにまるばかだな。

火炎を描こうとしている所にブロックがありますか?
あるなら、描かない。それ以降、火炎は描かない。


464 :名前は開発中のものです。:2009/11/22(日) 14:01:31 ID:bVDBV8jf
仮想マップを2つ使って解決すればいいよ
壁(障害物)がある場所とない場所の情報を扱う地形マップと
爆弾が置かれている場所と置かれていない場所の情報を扱うマップ
(爆弾配置マップとでも呼称すればいい)
炎は2つの仮想マップを参照して再帰で解決

はいお終い、簡単だろ?


465 :名前は開発中のものです。:2009/11/23(月) 16:17:25 ID:H/bHlmfN
actionscriptで、キャラクターを一区間歩かせる方法を教えてください。

466 :名前は開発中のものです。:2009/11/23(月) 16:27:32 ID:DESnmY0U
actionscriptとやらは知らないが
キャラクタを一区間移動させたい時は
例えば一区間の幅がnドットの場合は、キャラのXorY座標が
nで割り切れるまで移動させるアルゴリズムを用意すればよい


467 :名前は開発中のものです。:2009/11/23(月) 16:50:25 ID:DKN6YdUZ
ここは「Windowsゲームプログラミング」スレだから
どう見てもスレ違いだがな・・・

468 :名前は開発中のものです。:2009/11/24(火) 03:33:12 ID:wxINmZRU
>>465
Flashゲーム講座&ASサンプル集
ttp://hakuhin.hp.infoseek.co.jp/main/as.html
ここのテトリスのサンプルに466がいうアルゴリズムを組み込んで
元のよりもブロックがスムーズに落下するテトリスに改造してみるとかドーダイ?

>>467
フラッシュ用の言語だし、スレ違いってわけでもないと思うぜ

469 :名前は開発中のものです。:2009/11/24(火) 04:38:39 ID:Yv5cTTds
ああフラッシュがWindowsじゃないって意味かと思ってたが
フラッシュもWindowsに入るっちゃあ入るのか

470 :名前は開発中のものです。:2009/11/24(火) 20:00:33 ID:kNRV2VR9
んなこと言い出したらたいがいのものはwindowsの内に入っちまうジャン

471 :名前は開発中のものです。:2009/11/25(水) 07:17:26 ID:ggn3dqwd
MacでもFlash作れるしね
FLASHでゲームをツクール
http://pc11.2ch.net/test/read.cgi/gamedev/1005050054/
こちらは1年前でレス終わってる


472 :名前は開発中のものです。:2009/11/26(木) 00:58:53 ID:mKVhhsnM
それ以前にゲ製作技術の真上にFLASHの板が

473 :名前は開発中のものです。:2009/12/10(木) 13:24:31 ID:mMLW3axY
(´・ω・`)ねことあひるが力を合わせてみんなの幸せをーーーー♪
招き猫ダック♪

474 :名前は開発中のものです。:2009/12/10(木) 19:11:48 ID:dpejkqOL
まぁ、ニートと低学歴が力を合わせても何にも出来ないのが
この板の現実だったりするんだけどね。

475 :名前は開発中のものです。:2009/12/13(日) 11:03:07 ID:m1TWMvid
やる気が足りないんだよ

476 :名前は開発中のものです。:2009/12/19(土) 15:17:11 ID:SrqWqwLz
やる気&&時間&&将来==完成品


477 :名前は開発中のものです。:2009/12/20(日) 01:25:15 ID:YJnDqFE2
やる気と経験はあるけど、時間がないですわ。



478 :名前は開発中のものです。:2009/12/20(日) 01:34:57 ID:in60m6r4
やる気は時間に反比例しますお

479 :名前は開発中のものです。:2009/12/20(日) 07:22:57 ID:cqN+UuPk
時間が0の時は、やっる気無限大

480 :名前は開発中のものです。:2009/12/20(日) 08:01:42 ID:WnHpA5qg
やる気がビックバン

481 :名前は開発中のものです。:2009/12/20(日) 18:24:19 ID:YGQ+ppzg
>>479
大掃除しなきゃいけないのに古いアルバムを見つけてしまった状態

482 :マサヒロ:2009/12/21(月) 18:41:32 ID:wXL8lMBU
  悪  鬼
マ サ ヒ ロ様 
 参    上

483 :名前は開発中のものです。:2009/12/31(木) 04:34:32 ID:FmcWQtTy
ゲーム修正パッチの作り方を説明しているサイトとかご存知ないですか?
EXEを差し替えるとかではなく中にあるデータファイルとかも
追加したりし差し替えたいのですが

484 :名前は開発中のものです。:2009/12/31(木) 07:05:16 ID:zxA2fJ4G
>>483
単に上書きコピーするだけじゃないの?
アーカイブ内のファイルを置き換えたいというなら、バラしてコピーして作り直す。
1ファイルのバイナリ差分でアップデートしたいというなら、XsDFみたいなツールを
使うか、同等のものを自分でつくればOK。

485 :名前は開発中のものです。:2009/12/31(木) 17:15:48 ID:RQA0U+Bj
失礼します。質問よろしいでしょうか?

たとえば画面内において、それぞれ異なるIDを有したボールかなにかが飛び交っているものとします。
その状況でいずれかのボールをクリックした場合、それを識別するにはどのような方法があるでしょうか?
またボールが静止しているとした場合には、どのような手段を用いるのが賢いでしょうか?

いまだコーディングは開始しておらず、自分で組めるだろう範囲を考えながら仕様を確定している段階です。
当初クリック判定は座標から判別すればいいだろうと考えていましたが、上述のような状況に直面して考え直しています。
GUIプログラミングは初心者なのでサイトを見てノウハウを学ばせていただこうと思いましたが、
調べ方が悪いのでしょうか、基礎的な部分を解説してくださるサイトが見つからず、質問させていただいた次第です。

言語はC#を想定していますが、可能ならば言語依存の少ない方法を教示していただけると嬉しいです。
お忙しい時期でしょうが、よろしくお願い致します。

486 :名前は開発中のものです。:2009/12/31(木) 17:21:12 ID:XywEK1j8
座標で判断すればいいだろ。
なにが問題だと言うんだ?

487 :名前は開発中のものです。:2009/12/31(木) 17:52:22 ID:RQA0U+Bj
>>486
ボールにカーソルを合わせると変色するなどといった場合も、
foreach 全オブジェクト if X座標判定 and Y座標判定
のような処理を行っているのでしょうか?

だいぶ前に別スレにて「普通はそんな非効率的なことはしない」と聞いていたので、
何かしら別の方法があるかと思っていて、しかしながら他の方法が想像つかなかったので質問したのですが、
上記発言の解釈が間違ってたんでしょうか……。それでしたら申し訳ないです。

素早いお返事ありがとうございました。

488 :名前は開発中のものです。:2009/12/31(木) 22:29:14 ID:g+v1XGwf
初心者すぎて基礎から勉強しないと話にならないお

489 :名前は開発中のものです。:2010/01/01(金) 01:28:27 ID:+rsZCvF1
>>487
全オブジェクトっていう言い方が気になるが、概念的にはそれでいいんでないの?
何らかのイベントでマウスの座標を取得、その後その座標をつかって、オブジェクト毎でヒットテストするってことでしょ。
それ以外にやり方あるのかな?

490 :名前は開発中のものです。:2010/01/01(金) 19:30:22 ID:iY6VPf2L
>>488
すみません……。GUIは本当に手探りです。
自分でもあちこち探したりしているんですが、何かいい教材あれば教えてくださると嬉しいです。

>>489
ありがとうございます。
自分もそれ以外にひらめかないのですが、上述の通り別なやり方があるとだけ聞かされたんで。
多分何かしら齟齬があったんでしょうね。お手数おかけいたしました。

491 :名前は開発中のものです。:2010/01/01(金) 19:48:54 ID:+HYk+utg
いや、GUIはというがそれ以外も初心者なんだろう?
どうでもいいから手を動かそうぜ

492 :名前は開発中のものです。:2010/01/07(木) 23:25:49 ID:dh68R4A/
画像の表示って大抵はファイル名で指定するよね?
でも、独自のファイル形式にしたい(BMPに付加情報をつけたもの)
すると、ファイル名の指定の関数が使えない、たすけて

493 :名前は開発中のものです。:2010/01/07(木) 23:27:49 ID:ds4UNTST
ファイルを読み込んで自分でメモリー上で展開しろ。

494 :名前は開発中のものです。:2010/01/07(木) 23:37:33 ID:dh68R4A/
>>493
ありがとうございます
バイナリで開いて全て点で打つならできそうなのですが、
効率の面で問題がある気がしまして。
ともかくやってみます

495 :名前は開発中のものです。:2010/01/07(木) 23:46:35 ID:TMdG719d
SetPixel()遅い

496 :名前は開発中のものです。:2010/01/08(金) 00:13:08 ID:l0tohAlf
>>495
ありがとうございます
ピクセルを後から操作する気はないのですが、おかげさまで道が開けてきました
ImageFromStreamとかなんとかで配列をデータにできるとかなんとか。
いい感じで脳が限界です

497 :名前は開発中のものです。:2010/01/15(金) 14:16:35 ID:fJ32mWjV
WDDM のバージョンを調べたいのですが、
DXDIAG の szDriverModelLocalized を見る以外に方法はないでしょうか?
レジストリや WMI で探してみたのですが見つからなくて…。

498 :名前は開発中のものです。:2010/02/04(木) 23:22:36 ID:tPmHG2jz
合計5000ポリゴンある地面の上に複数のキャラクターを立たせたいのですが
そうなるとどのポリゴンの上に乗っているかの情報が必要になるんですが

全てのキャラクターが毎フレーム5000ポリゴンとの当たり判定を取るとプログラムが非常に遅くなります
処理を劇的に軽くする何かいい方法はないでしょうか?


499 :名前は開発中のものです。:2010/02/05(金) 00:50:33 ID:CKGSeD5Z
>>498
区画分けするとか、判定用にもっと粗い地面情報で判定するとか。
500ポリゴンごと10区画にわけたら、判定回数は5000回から510回になるし、
判定用の地面として500ポリゴンにしたら、500回になるし。後者の方が実装は楽だな。
前者だと、準備とか修正とかめんどくさそう。でも、前者の方が効果は高いな。100区画にわければ、
150回だもんな。


500 :名前は開発中のものです。:2010/02/05(金) 02:03:11 ID:EsUZ2cV5
>>490
区画にわける所までは思いついたのですが
どうしてもどこがどの区画か判断する方法がわからないのです


501 :名前は開発中のものです。:2010/02/05(金) 07:09:32 ID:Rnn3z8ra
>>全てのキャラクターが毎フレーム5000ポリゴンとの当たり判定を取るとプログラムが非常に遅くなります
これは今どうやってるの?

502 :名前は開発中のものです。:2010/02/05(金) 09:51:06 ID:p/uDgxLQ
>>501
ポリゴンのY軸を考慮せずに外積で内外判定を取り
その後に三点測量からその地点のYを算出する形です


503 :名前は開発中のものです。:2010/02/05(金) 15:53:15 ID:HPolpgOh
>>500
例えば5mごとの区画に区切って、その5mの立方体に少しでも入る地形のポリゴンを
その区画のリストに追加する。
判定するときは座標を5mで割るだけで区画は求まるので、その区画のリスト中の
ポリゴンと判定する。
ただし、キャラクタが区画を跨いでいる場合もあるので、隣接する8区画を調べる必要がある。

504 :名前は開発中のものです。:2010/02/05(金) 23:36:57 ID:Rnn3z8ra
5000個に番号付けて、XZ平面で区画判定して、十分な数だけ当たり判定しる。
十分な数はあらかじめデータ作らないとな。


505 :名前は開発中のものです。:2010/02/06(土) 04:48:59 ID:vgWfgHJE
ついでにモートン順序についても知っておこう

506 :名前は開発中のものです。:2010/02/06(土) 12:38:36 ID:4uNGm9uD
横からだがトン
久々に感動したわ

507 :名前は開発中のものです。:2010/02/08(月) 19:45:10 ID:I67IEebw
判定対象のX軸があり得ないぐらい離れていたら判定しない、っていう方法は楽。
でもまあ、結果として総当たりにはなるか。
普通にやるよりちょっとだけ軽い程度。

508 :名前は開発中のものです。:2010/02/08(月) 20:12:23 ID:HSg0yq3Q
けっきょく総当りだしちっとも軽くなんねえよ?
ただまぁその話を汲むとして(>>498の話とは全く関係なくなるけど)
2次元のAABB判定を考えるとき、フィールドが縦横のどちらに広いかで
XとYの判定順序を変えると、判定回数は減らせるわな

509 :名前は開発中のものです。:2010/02/08(月) 20:29:52 ID:AbjdKSeP
バカな507に騙されてやらかすと、全部が近くにあるという状況で酷い目に遭うな。

510 :名前は開発中のものです。:2010/02/08(月) 21:17:35 ID:TFUWga5H
>5000ポリゴンとの当たり判定を取るとプログラムが非常に遅くなります

5000位で遅くなるわけがない、コードにミスがあるだろ

511 :名前は開発中のものです。:2010/02/08(月) 22:42:47 ID:yaKOf+tK
>>510
レミングみたいなのが何百匹もいたら重くなるんじゃない?

512 :名前は開発中のものです。:2010/02/08(月) 23:45:29 ID:TFUWga5H
三十匹くらいかな

513 :名前は開発中のものです。:2010/02/15(月) 05:51:28 ID:iDG/RoSA
超、初心者なんだけども練習がてら
数当てゲーム
15パズル
リバーシ(オセロ風)
テトリス
ブロック崩し
「パックマン」
補講:敵のアルゴリズム(AI)?
横スクロールアクション
STGを作れ
SLGを作れ
FF風RPG/DQ風RPG
簡単な3Dゲーム
を、python,c,c++,c#と段階的に練習してみようと思うんだがどうだろうか

514 :名前は開発中のものです。:2010/02/15(月) 06:25:39 ID:7pi/323z
>>513
横スクロールアクションの方が、地形の扱いや重力の扱い等の要素が多い分
STGよりはやることが多い。

SLGというのが非リアルタイムの大戦略的な物なら、かなり簡単な部類。
FF風RPG/DQ風RPGなんてSTGとかより簡単。
この辺はバランスを取りつつ膨大なデータを作るのが大変なだけ。

3Dに行く前に、回転有りの2Dを経験した方がいい。
ナムコのアサルトやキャメルトライ等。

パックマンのあたりで、スクロール無しのアクション系でもやった方がいいかも。

515 :名前は開発中のものです。:2010/02/15(月) 06:26:05 ID:RFVAWStO
>>513
「どうだろうか」とはどういう意味?
やってみたら良いんじゃないでしょうか。としか答えられないけど・・・
まあ、初心者なのに12ジャンル×4言語=48個は多すぎじゃないか?
とりあえず言語は一つに絞った方がいいよ。

516 :名前は開発中のものです。:2010/02/15(月) 07:17:04 ID:cbly0qco
初心者にC++はないわ

517 :えいいち ◆GRGSIBERIA :2010/02/15(月) 07:45:05 ID:4ZhNq4Tf
>>513
難しさだったら
Python << C# < C < C++
だと個人的には思う。
でも、Pythonはどちらかと言うと、C++を使うのが面倒くさいマ向け言語だから、
言葉通りの超初心者だったらオススメしない。
最初からCでやったほうが他の言語に移行しやすい。

C++で本格的にやりたいのなら、まずはC++でクラス設計の基本を押さえつつ、
Pythonで一度組んでみることがお勧め。
1クラス1ヘッダーなんて理不尽なファイル構成にならないためにも、
モジュール単位でコードを組む方法を身につけたほうがいいから。

>>515
各言語1個ずつやるってことではないんでないのかい?

518 :名前は開発中のものです。:2010/02/15(月) 08:21:29 ID:cbly0qco
言語1つ覚えるだけでも大変で各言語1個ずつやるなんて考える余裕なんてないでしょましてや超初心者に

519 :名前は開発中のものです。:2010/02/15(月) 17:16:13 ID:Cd1wbsad
C++を使えるようになれる自信があるならC++でやっとけ
もしプログラマになる可能性があるならC++は必須
趣味で考えたゲームが実現できればいいだけなら、
その目標のゲームを作ることができる一番簡単な言語を選ぶ

520 :名前は開発中のものです。:2010/02/15(月) 17:36:44 ID:cbly0qco
超初心者がC++に手を出すのはやめといた方が・・・
やるんなら取りあえずCまともに使えるようになってからでも遅くはないと思うがなあ

521 :名前は開発中のものです。:2010/02/15(月) 17:43:22 ID:Nxk5kWkJ
段階的にやるって言ってるんだし、まずはスクリプト言語で作って
移植していくのでいいかと

522 :名前は開発中のものです。:2010/02/15(月) 17:57:52 ID:n4qXt3PM
言語外の部分に伏兵が多い品。

523 :名前は開発中のものです。:2010/02/17(水) 23:06:07 ID:B+oI5OUV
今仕事でJavaやっててこの後、C++かC#でDirectX使ってゲーム作成してみたいけど
C++とC#で実行速度に違いは顕著に出るんですか



524 :名前は開発中のものです。:2010/02/18(木) 03:59:59 ID:S5tbEoCa
>>523
C++でもある程度のスペックが必要だし、ボトルネックになるのは描画部分なのであまり気にしなくていいと思いますよ。
ベンチマーク結果もあるみたいなので参考までに。
ttp://www.shudo.net/jit/perf/
ttp://reverseblade.blogspot.com/2009/02/c-versus-c-versus-java-performance.html

525 :名前は開発中のものです。:2010/02/18(木) 22:03:52 ID:w01VKSPN
>>523
レースゲームで物理エンジン組むなり、
SLGで何万人もの動きをシミュレートするなりするなら話は別だが、
そうでもない限り気にするような違いは出ないと思う。

526 :名前は開発中のものです。:2010/02/21(日) 04:38:17 ID: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);
}

みたいなのだけど、まさかこんな事やってないだろうと思っているのですが…

527 :名前は開発中のものです。:2010/02/21(日) 07:28:08 ID:i9ENpozX
>>526
その方法で問題無いよ。
ただし、1ファイルの読み込みに3秒以上時間がかかったときに処理落ちしてしまう。
この場合はマルチスレッドにして読み込みと表示を別スレッドにするのが一般的じゃないかな。
それ以前に読み込みを高速化させるべきだとは思うけど・・・

528 :名前は開発中のものです。:2010/02/21(日) 20:28:55 ID:2l2wvu6L
>>527
有難うございました

529 :名前は開発中のものです。:2010/02/22(月) 12:37:06 ID:dzJGwHVS
メッセージボックスを使わずに(新しいウインドウを出さない)テキストフィールド
を作成するのって可能なんでしょうか?画面にそのままキーボード入力できる箇所を作りたいのですが

530 :名前は開発中のものです。:2010/02/22(月) 14:47:05 ID:GzvshjVK
環境による
通常のWindowsアプリならウィンドウに直接テキストボックス貼り付ければいいけど
Directなんとかでやってるなら、SDKのサンプル見てみるといいかも

531 :名前は開発中のものです。:2010/02/22(月) 15:07:58 ID:FbIcwD45
ウインドウメッセージからテキストの追加削除を行い描画する。
キーやクリックにあわせてカーソルを移動させる。

大して難しい処理じゃない。

532 :名前は開発中のものです。:2010/02/22(月) 17:25:48 ID:dzJGwHVS
>>530
>>531
DirectXのサンプルにテキストボックスを扱ったものがありましたが、色々と
インクルードしなければなりませんでした。
531に書いてあるようにキーに合わせてフォントを描画方法でやりたいと思います。
ありがとうございました。

533 :名前は開発中のものです。:2010/02/23(火) 12:09:49 ID:IDzEfXiX
WSAAsyncSelectのFD_ACCEPTは最初のクライアントからの接続要求のみ呼び出されて、
それ以降の他のクライアントからの接続では呼び出されないのですか?
2人目以降のクライアントはクライアント側のFD_CONNECTしか呼び出されていませんでした。


534 :名前は開発中のものです。:2010/02/23(火) 12:36:31 ID:IDzEfXiX
すみません。
2人目以降もFD_ACCEPTが呼ばれるようでした。
お手数おかけしました

535 :名前は開発中のものです。:2010/02/26(金) 16:14:12 ID:vSXVLwvV
ゲームでよくあるデータの保存と読み込みってどういう仕組みになってるんですかね?
保存
保存したい変数を文字列で格納→何らかのアルゴリズムで暗号化→ファイル出力

読み込み
保存したファイル読み込み→暗号データから文字列に復元→変数に代入

というかんじでしょうか・・
テキストファイルをそのまま出力してもプレイヤーに読み取られてしまうと思うので






536 :名前は開発中のものです。:2010/02/26(金) 18:10:11 ID:k8Nclp+o
>>535
そんな感じです。

537 :名前は開発中のものです。:2010/02/26(金) 19:45:39 ID:lcr+uN2q
>>535
文字列にする必要はないけどね。
バイト列の方が扱いやすいし、人間にも読まれにくい。
まぁ、バイト列でもそのまま出力すると、簡単に解析されてしまうが。

XORかけて、チェックサムでも入れとけば十分。

538 :名前は開発中のものです。:2010/02/27(土) 04:37:55 ID:pMMukQvt
バージョンうpによるセーブデータの互換性も考慮したいなら少しまんこい

539 :名前は開発中のものです。:2010/02/27(土) 11:03:05 ID:lavVPI3c
どうも有難うございます
参考にさせて頂きます

540 :名前は開発中のものです。:2010/03/03(水) 00:33:50 ID:wPHsfoXn
てst

541 :名前は開発中のものです。:2010/03/06(土) 21:44:25 ID:cKzvkmmp
プログラムというよりかはアルゴリズムの質問になってしまうと思うんですが、
パネポンみたいなパズルゲームのせり上がりの処理って
どういう風に考えればよいのでしょうか?

542 :名前は開発中のものです。:2010/03/06(土) 22:05:07 ID:oMl4iNGE
普通に考えて、2次元配列のブロックを
描画では端数だけ上げて、1ブロック分上がったら
配列を前段繰り上げるようにすればいいと思うけど。

反問するけど、仮にせり上がりがなかったとして
どんな風に実装するつもりなんだ?

543 :名前は開発中のものです。:2010/03/06(土) 22:21:04 ID:cKzvkmmp
ありがとうございます、かなり単純なことみたいですね…

何に対しての実装かちょっとわからないんですが、
ゲームの仕様ってことだったらパネポンと大して変わらないもの
を試しに作ってみたい思った次第です。

544 :名前は開発中のものです。:2010/03/06(土) 22:32:15 ID:JczPuVwf
>かなり単純なこと
逆だバカ

やりたい事を難しく考え杉

545 :名前は開発中のものです。:2010/03/07(日) 03:26:35 ID:uh/knnrz
VisualC++2008ExpressEditionについて質問です

出力したEXEでは画像が読み込まれるのですが、
F5やデバッグ開始ボタンだと画像の読み込みに失敗してしまいます。

これってビルドしたEXEを出力してるディレクトリに使いたい画像とかおくだけじゃだめなんですね
何を設定すればいいんでしょうか

一昨日からプログラムを始めたのでコンパイラそのものの仕様がよーわからんとです。
関連付け?カレントディレクトリ設定?と考えたのですがいまいちヒットしないので助力願います

546 :名前は開発中のものです。:2010/03/07(日) 03:34:34 ID:uh/knnrz
書き込んだら冷静になって、自己解決しました
なぜかEXEを基準にかんがえてたのでDebugフォルダに画像などを用意してたとです・・・
プロジェクトやソースそのもの位置でいいのですね

お騒がせしましたorzスレ汚しごめんなさい

547 :名前は開発中のものです。:2010/03/08(月) 12:39:39 ID:0nKKs+l0
カレントディレクトリは実行する人の都合で好きに変えられるから
どうしてもEXEの場所がいいなら、APIでEXEの場所調べてそこ使った方がいいぞ

548 :名前は開発中のものです。:2010/03/08(月) 15:10:42 ID:OwcKYY2B
>>23

549 :名前は開発中のものです。:2010/03/10(水) 22:52:00 ID:fado/aIt
プログラムを組んだ事の無い人間なんですが、
SLGを作ろうと考えてます。

2Dで3D処理は無しで考えてるのですが、
C++とHSPで作るとしたら、どちらが良いでしょうか?
長所と短所が有ったら教えて下さい。


550 :名前は開発中のものです。:2010/03/10(水) 23:06:19 ID:cS7N9VCd
C++はかなり難しいと思うので初心者が手を出すとかなり時間が掛かるんじゃないかなあ
これやる位ならCから始めた方がいいかも
HSPは初心者向きの言語って言われてるからC++よりはこっちの方がいいんじゃないか

551 :名前は開発中のものです。:2010/03/11(木) 09:51:57 ID:ar5ZJEPB
なぜHSPを挙げたのでしょうか。教えてください

552 :名前は開発中のものです。:2010/03/11(木) 13:24:30 ID:I816Pm6U
車の運転免許取るときに、エンジンの構造の勉強からはじまったら嫌だろ。
最初は興味もあるだろうが、ブレーキ、ギア、クラッチ・・・とか延々と続くとやってられない。

目的が運転なら、オートマ車で
アクセル踏んだら進む、ハンドル切ったら曲がる、ブレーキ踏んだら止まる、
とか必要な部分だけをさくっと覚えて、
運転をしたくないか?

つーことで、ゲームを作るのに必要な最低限の機能が備わっている
HSPを覚えた方が良いから進めてるんだと思うぞ。

C++は何でも出来るけど、なぜ何でも出来るかを理解しないと、
何でも出来ないという所があるからお勧めしないんだと思うぞ。



553 :名前は開発中のものです。:2010/03/11(木) 14:38:37 ID:ar5ZJEPB
それならツクール薦めりゃいんじゃん

554 :名前は開発中のものです。:2010/03/11(木) 14:42:19 ID:VLD8tp4g
SLGツクールってどんなのがあるよ?

555 :名前は開発中のものです。:2010/03/11(木) 16:22:38 ID:0Tgz6gC5
ていうかC++とHSPのどちらかと聞かれたからHSP挙げたまでで
より簡単だというんならそりゃツクールとかあるだろうよ
ただツクール金掛かるのが嫌だな

556 :549:2010/03/11(木) 21:57:21 ID:UxZwAiXZ
>>550
アドバイスありがとうございます。
>>552
更にわかりやすく、噛み砕いた説明ありがとうございます。

SLGツクール系は、買って合わなかったらやだな〜って事で
除外してました。

答えてくれた方々、ありがとうございました。


557 :名前は開発中のものです。:2010/03/15(月) 21:07:36 ID:q4e6j4OO
>>549
参考スレ

初心者専用スレ「シミュレーションゲーム」を作らない?2
http://pc11.2ch.net/test/read.cgi/gamedev/1172141181/

558 :名前は開発中のものです。:2010/03/30(火) 23:55:58 ID:i144vM1o
個人でFFTみたいなゲームを作ろうとおもうのですが
どんなソフトがあれば作れるでしょうか。
当方ズブの素人です。visual studio2008は持っています。
趣味で何年かかけて作ろうとおもっています。
後、初心者でゲーム作るならこの本読んどけってのもあれば
教えていただけるとありがたいです。
ご助力お願いします。

559 :名前は開発中のものです。:2010/03/31(水) 00:34:25 ID:/1s1VCU/
逆に聞きたいんだけど、それ以外に何が必要だと思うの?

560 :名前は開発中のものです。:2010/04/03(土) 01:35:28 ID:6drkN7Tj
再描画と安定したFPSについての質問です。
C#でGDIのゲームを作っているのですが、
Vista (32bit) まではヌルヌルだったのに、
7 (64bit) に変えたら微妙にコマ落ちするようになりました。
重くなったわけではなく、0.5秒ごとに割り込みが掛かっている感じでカクつくんです。

スレッドやプロセスの優先度を上げても変わらないし、
そもそもフレーム処理時間は安定して一定時間に終わっているようなのです。

Vista -> 7 で、なにかGDI周りの挙動に変更が入ったりしたのでしょうか?

561 :名前は開発中のものです。:2010/04/03(土) 07:11:45 ID:ML07Lysw
分解能

562 :名前は開発中のものです。:2010/04/11(日) 21:47:05 ID:Ko/6dSa+
ようやく規制が切れた

>>560
Windows7は全く使ったことのない俺だが、

>そもそもフレーム処理時間は安定して一定時間に終わっているようなのです。
ってことは描画に遅延が入っているか、GDIの描画先がオフスクリーンバッファで
それが表面に更新されていないかだろうね

1フレームの描画が終わったらGdiFlushを呼んでるか、HDCを開放しているか
くらいしか思い浮かばん

563 :560:2010/04/12(月) 10:16:43 ID:6QZI5wHp
>>561
ループで描画しているので分解能は関係ないんです。
QueryPerformanceCounter使ってるし。

>>562
おっしゃるとおり、GDIレイヤで遅延しているように見えます。
でもGdiFlushなども使ってみましたがダメでした。。。

564 :名前は開発中のものです。:2010/04/12(月) 16:29:39 ID:Ub/aw0v4
7からはgdiはレガシーになった云々、ハードウェアアクセラレーションが云々。

565 :名前は開発中のものです。:2010/04/12(月) 22:16:40 ID:ohJzuPYP
>>563
最終出力を自分のプロセスで行えない場合、システムに余力がないと更新が滞ることもあるな
全てのCPU使用率が常時50%以下になってるか確認してみるとか

566 :560:2010/04/12(月) 22:49:05 ID:6QZI5wHp
>>564
Direct2Dでごり押ししてみないと真相は不明でしょうか・・・。
GDIが全体的に遅くなるのなら理解できるんですが、
0.5秒という長すぎる間隔でカクつくのが腑に落ちないっす。
DWMがアンチティアリングをしているせいかとも思うんですが、確認するすべも思いつきません。。

567 :560:2010/04/12(月) 22:50:32 ID:6QZI5wHp
>>565
常時1%〜4%です。
タスクマネージャで確認するレベルですが。

568 :名前は開発中のものです。:2010/04/13(火) 00:32:26 ID:mniTafWA
>>560
#これで、結局バックグラウンドでインデクシングが
#発生しているだけだったら笑える。ディスクアクセスしてない?

ところでそのループは描画しているウィンドウを生成したスレッドで動作してるの?

569 :560:2010/04/13(火) 01:43:29 ID:nmFp0o6d
>>568
ウインドウを生成したスレッドでしています。
何もしていない状態でもかくつきます。


いろいろ試してみたら、やはりDWMのアンチティアリングが影響しているようです。
0.5秒間隔のカクつきはV-sync待ちとのタイミングが最悪な時なのかも?
Aeroを切ったり、CreateWindowのスタイルパラメタを変更しても挙動が変わることが分かりました。
一番安定したのはAero状態のD2DでV-sync待ちで描画したとき。

正直大混乱中。よくわかんねーっす。。。

570 :名前は開発中のものです。:2010/04/13(火) 11:00:59 ID:mniTafWA
>>569
Aero off と on で動作が違うと言えば、例えば::InvalidateRect()で、第3引数のbEraseをFALSEにすると
Aero off の時クライアント領域が更新されないことがあったりしたな。
ただこれはVISTAも同じだから、7だけおかしいと言うことだと関係ないかも知れないが。

GDIを利用して作成していると言うことだけど、どっかで更新をOSに任せてたりしないか?
一度全部明示的にアップデートしてみるといいよ。

571 :名前は開発中のものです。:2010/04/15(木) 22:39:37 ID:oS8V8JHF
3Dのゲームを開発しています。

キャラクターが毎フレーム移動するんですが
その際に前回いた座標と今回いた座標を結んだベクトルを計算し、
壁などのポリゴンを通過したら押し戻すという処理をしています。
しかしポリゴンに対して直角(90度)に進めば押し戻されるのですが
10度くらいの角度で進むといずれはめり込み、
計算の誤差のようなもので通り抜けてしまいます。

こういう場合はどうしたら意図した動きになるでしょうか?
普通壁にめり込まない処理というものはベクトルで処理をするものではないのでしょうか?

572 :名前は開発中のものです。:2010/04/15(木) 22:56:32 ID:oS8V8JHF
age

573 :名前は開発中のものです。:2010/04/16(金) 08:49:10 ID:E7soBA+n
スレタイも読めない池沼さんはお帰りくださいね

574 :名前は開発中のものです。:2010/04/16(金) 15:39:17 ID:tfuXF2uQ
>>571
移動してから次フレームで衝突判定するんじゃなくて
移動させて衝突判定させて移動量減らしてから移動確定

575 :名前は開発中のものです。:2010/04/17(土) 18:34:27 ID:YPPhHYQE
>>574
その方法をとっているのですが上手くいきません
ベクトルとポリゴンは諦めて
球とポリゴンの当たり判定にしたいのですが
参考URLなどご存知ないでしょうか?

576 :名前は開発中のものです。:2010/04/17(土) 20:49:33 ID:g85Nq5+3
DL版のMSDNが2GBもあるってどういうことだよ
おとす気が失せるな・・・


577 :名前は開発中のものです。:2010/05/02(日) 13:48:47 ID:qwH1pwxC
_CrtSetDbgFlagがメモリリーク検出してくれないんだけど
心当たりある?
WinMainの最初で呼んでんだけど.

578 :名前は開発中のものです。:2010/05/02(日) 21:18:23 ID:Fty9ttWn
>>577
デバッガで起動してないとか

579 :名前は開発中のものです。:2010/05/03(月) 00:13:29 ID:G8fNhcut
してます...

別に仕様変更で,最近機能がなくなったとかじゃないですよね...?

580 :名前は開発中のものです。:2010/05/03(月) 00:24:48 ID:G8fNhcut
#define _CRTDBG_MAP_ALLOC
#include <crtdbg.h>

int main()
{
_CrtSetDbgFlag(
_CRTDBG_ALLOC_MEM_DF //メモリリークチェック用のヒープ使用
| _CRTDBG_LEAK_CHECK_DF //プログラム終了時にメモリリークチェック
);

int* p_int = new int();

return 0;
}

このプログラムでエラーメッセージがでません.
ちなみに,当方VCですが,メッセージは
出力ウィンドウでの確認で間違いないでしょうか?

581 :名前は開発中のものです。:2010/05/03(月) 17:53:02 ID: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コンソールアプリケーション
コンパイルの設定は、プリコンパイル済みヘッダを使用しない、にした以外はデフォルトのまま

582 :名前は開発中のものです。:2010/05/04(火) 04:57:17 ID:2vXYcehC
SFCの奇々怪界〜謎の黒マント〜の丸パクリゲーを作りたいんですけども、
ゲーム製作に関する技術が0の状態です
プログラミングもまったく技術がありません
このゲームを作るのに向いているプログラミング言語がありましたら教えてください
勉強しようと思います
私のPCのOSはwin7です
windows系列で動作するゲームにしたいです

583 :名前は開発中のものです。:2010/05/04(火) 06:05:40 ID:2vXYcehC
ちなみにwin7の64bitです
32でも64でも動くものにしたいです

584 :名前は開発中のものです。:2010/05/04(火) 09:47:00 ID:N7bMdxX7
.>>581
ありがとうございます.
コードはおかしくないってことですね.
こちらでも別環境で試してみます.
なんでだろう...

585 :名前は開発中のものです。:2010/05/04(火) 11:18:45 ID:ATvQPLh8
>>582
C言語

586 :名前は開発中のものです。:2010/05/04(火) 15:19:34 ID:3AEGCGVU
+DXLIB

587 :名前は開発中のものです。:2010/05/04(火) 17:08:55 ID:2vXYcehC
>>585-586
thx

588 :名前は開発中のものです。:2010/05/04(火) 21:18:06 ID:I3BOmytc
vsyncがスマートに待てるんならDIBでやりたくなるけど、何かいい方法ないかな

589 :名前は開発中のものです。:2010/05/05(水) 00:46:35 ID:I28q1E30
Vista以降ならIDXGIOutput::WaitForVBlankでできんじゃね
使ったことないから的外してるかもしらんけど

590 :名前は開発中のものです。:2010/05/30(日) 22:41:11 ID:/03sGIqd
VRAMに直で書き込むのって、Windows環境だとやっぱり、DirectXを使わないと出来ないもの?
まだ学生だから、車輪の再開発をしまくって勉強したいと思ってるんだけど、なんらかの
コンポーネントを使用しなきゃ出来ないのなら、割り切ってコンポーネントの勉強をしようと思うんだけど

591 :名前は開発中のものです。:2010/05/30(日) 22:59:33 ID:hMrpRgoR
DirectXを使わないと出来ない

592 :名前は開発中のものです。:2010/05/30(日) 23:01:41 ID:hMrpRgoR
そういや、CreateDIBSectionを使うという手もあったな。

593 :名前は開発中のものです。:2010/05/31(月) 00:00:56 ID:y4dMI0mp
newとかで確保したメモリに書いた画像を出力するならSetDIBitsToDeviceが手っ取り早いと思うけど、
VRAM自体のアドレスを取得してロックしようと思ったらDirectXを使うしかないと思う

594 :名前は開発中のものです。:2010/05/31(月) 23:03:43 ID:QJNjNz5n
アクションゲーム作ってるんだけど、敵の処理どうやってる?
全ての敵の行動をクラスに纏めたEnemyクラスっていうのを作っちゃって、
そこに敵の種類ごとに動作とか設定しちゃおうかなって思ってたんだけど、
それじゃ敵の種類が少ないマップでもロードに時間がかかるとかってなる?

595 :名前は開発中のものです。:2010/05/31(月) 23:06:46 ID:QJNjNz5n
あと、敵の残りHPとか座標とか時間管理のデータってどこで管理すればいいんでしょう?
グローバルな変数を作るとか?

596 :名前は開発中のものです。:2010/05/31(月) 23:13:40 ID:+7YvNv71
>>595
Enemy クラスに HP、時間、座標を定義して
Enemy を継承した EnemyA、EnemyB … を作ってそこに種類ごとの行動を書けばいい
ロード時間はといより Enemy で全部やろうとすると処理コストが増えるかと

597 :名前は開発中のものです。:2010/05/31(月) 23:30:20 ID:SBpXG6MJ
大体それぞれの敵データ管理するためにクラス作ったんじゃなかったのか・・・

598 :名前は開発中のものです。:2010/05/31(月) 23:31:08 ID:QJNjNz5n
なるほど継承ですか
そういうのがあるんですね
ありがとうございます

599 :名前は開発中のものです。:2010/05/31(月) 23:58:57 ID:OsgCe482
OpenALでMIDIを再生したいのですが、どうすれば良いですか?

600 :名前は開発中のものです。:2010/06/01(火) 00:53:23 ID:8zniKIGy
無理です

601 :名前は開発中のものです。:2010/06/01(火) 11:05:50 ID:HlkdJvUb
MIDIデータをWavにする部分を全部自分で書けば何とか

602 :599:2010/06/01(火) 18:31:41 ID:zaH3D1aV
>>601
正にそれです。
MIDIパーサ、MIDIレンダラーを作りたいのですが、何をどうすれば良いのか
さっぱりな上、そういった事を解説してるサイトも皆無なので困っています。

603 :名前は開発中のものです。:2010/06/01(火) 19:13:55 ID:jI99bfoW
そんな事言ってる奴にはまず無理。

604 :名前は開発中のものです。:2010/06/01(火) 22:07:22 ID:02kRTTDw
>>602
FM音源とかにしといたら?
そこそこのクオリティを持ったMIDI音源とか個人でなんとかなるレベルじゃなさそう

605 :名前は開発中のものです。:2010/06/02(水) 11:17:16 ID:eHTKFESg
まず音源データそのものを集めないとね
こればっかりはプログラムだけじゃ無理だろう

606 :名前は開発中のものです。:2010/06/02(水) 22:56:16 ID:Ggr0fEGO
>>591
>>592
>>593
やっぱりそうなのか…
回答ありがとう。とりあえず、Direct3D9の勉強を少しやってみようかと思う。ありがとう

607 :名前は開発中のものです。:2010/06/03(木) 22:58:45 ID:N5aCEzsm
>>602
ソフトウェアシンセとSMFファイルを解析する部分が要る
とりあえずGM規格の仕様書でも読んでみたらいい、やる気なくすから

608 :名前は開発中のものです。:2010/06/04(金) 16:44:04 ID:Vz1OVRZS
ソフトシンセもSMF解析も言うほど難しくは無いだろ

609 :名前は開発中のものです。:2010/06/04(金) 17:04:27 ID:tnAvyTGm
この世にそういうソフトが存在している以上不可能ではないな
いずれにしてもまずはGM互換の版権フリーか自前の音源データが必要

610 :名前は開発中のものです。:2010/06/04(金) 18:16:01 ID:vIQ5MHoj
音をサンプリングしてまともにPCMシンセとして使えるレベルまで
編集するだけでも、どれだけ機材と時間と技術と手間がかかるんだか…

611 :名前は開発中のものです。:2010/06/04(金) 20:43:58 ID:uFMmgqFi
音なんてプログラムで波形データ作ればいいだけだろjk

612 :名前は開発中のものです。:2010/06/04(金) 20:48:59 ID:Q9UNwKBA
vistaや7で効果音が複数重なると音量が小さくなることってないですか?
xpだとそんな事なかったのですが

613 :名前は開発中のものです。:2010/06/05(土) 06:53:33 ID:yudDpx9T
>>611
実際にやってみるとわかるけど、自分でサイン波とかのオシレータ作って
合成して実際の楽器の音出すのってすごく難しいぞ。
FM音源なんてとても素人がどうにかできるもんじゃない。G
M規格だけでも128種類の音色とドラムセットがあるのに。

614 :名前は開発中のものです。:2010/06/05(土) 14:15:02 ID:D1eyiAx2
結局出せる音がFMレベルなら、FM音源最初から使えばいいじゃん
>>611はVAクラスか打楽器系の音もサンプリング音源レベルの音質をソフトだけで作るって言ってんでしょ
まあ何も知らないただのバカだろうけど

615 :名前は開発中のものです。:2010/06/05(土) 19:21:06 ID:1y0Oq8xy
>FM音源最初から使えばいいじゃん
どうやって?
今のサウンドカードは標準でFM音源なんて付いてないぞ?


616 :名前は開発中のものです。:2010/06/05(土) 21:05:53 ID:XfBBOv5P
おうおう、やらない理由ばっか述べるねぇ
ま、別にいいんだけど

617 :名前は開発中のものです。:2010/06/05(土) 22:44:24 ID:yudDpx9T
多分、周波数変調かけて結果をPCMで出力しろってことだから、
ハードウェア的にはFM音源ついてなくてもPCM音源があればおk
そんなことも分からないんじゃ自分で音源作るのなんて無理

618 :名前は開発中のものです。:2010/06/05(土) 22:48:00 ID:1y0Oq8xy
そんなのエミュでやってるやつ沢山あんじゃん。参考にすれば

619 :名前は開発中のものです。:2010/06/08(火) 17:58:37 ID:++DOtdab
FM変調でPCMサンプリング音源レベルのクオリティの音を出してるエミュを教えろよ

620 :名前は開発中のものです。:2010/06/08(火) 20:08:11 ID:SUdoOdZh
>>619
話がズレてない?FM音源エミュレート結果の出力先にPCMを使用するってだけだろう
いやもうどれが話の本筋なのか分からんけど

ところでちょっとグレーな話になるけど、スーファミエミュから抽出したSPCファイルって
容量が64KBしかないのに結構綺麗な音がでるよね
再生プラグインも100KBそこそこだから波形データを再生機側に大量に持ってるわけでも
なさそうだし、スゲーなーと思ってた

621 :名前は開発中のものです。:2010/06/08(火) 21:18:46 ID:++DOtdab
サウンドドライバのプログラマがすごい頑張ってたんじゃない?
FF4は、アクトレイザーのストリングスの音聴いて影響されて、
サウンドドライバ作り直しを命じたらしいし

622 :名前は開発中のものです。:2010/06/09(水) 09:21:16 ID:pmTsWhEo
すいません、今からゲームを作る上で、質問というか相談というかちょっと1つお聞きしたい事があります。
今の同人というかフリーゲーム開発の中でDirectXを使ってる場合、9.0と10.0どちらが主流なんでしょうか?

よっぽど凝った物でもない限り現状普及率が高い9.0のほうがいいのだろうかと思うのですが、この先の事を
考えると10.0以降の仕様に慣れておいたほうがいいのかもしれないし、もしかしたらそれほど10.0でも影響少ないのかと思って悩んでるのですが。

623 :名前は開発中のものです。:2010/06/09(水) 10:22:21 ID:rHuJZWIL
ここでこんな質問してるうちは、10.0で組んでも10.0独自の機能なんて
使いこなせないからどっちでも同じです。10..0だとXP切捨てになるし。
10.0以降の仕様に…ならもう11に行った方がいいんじゃない?
今から10.0を一から勉強すると、10.0独自の機能使う頃には12が出てると思われ

624 :名前は開発中のものです。:2010/06/09(水) 10:40:14 ID:IiMYCbgY
>>622
9.0と10.0の比較だと今OSとハードの過渡期真っ最中だから
移行するならもう1・2年待った方がいいかもな、まだゲームはXPがメインって奴も多いだろうし
逆に言えばソフトの公開が1年後2年後とかなら10.0に移行してても良いのかもしれん

625 :名前は開発中のものです。:2010/06/09(水) 10:42:22 ID:fYI9N/70
9切り捨てられるなら11でいいと思うよ。

626 :名前は開発中のものです。:2010/06/09(水) 13:45:50 ID:pmTsWhEo
なるほど・・・レス感謝。

10向けのソフトなんてまだそれ程ないし、自分も知識や技術不足等あるので9を扱いきれるようになってから
様子見て10.1以降のに目を向けるようにします。

627 :名前は開発中のものです。:2010/06/09(水) 16:54:49 ID:bi7/yVM/
>>620
SFCの音源部は、
・SPC700それ自体がCPU(6502系)なので、ドライバ書くときに、サウンド処理以外の負荷を考える必要がない。
・当時としては大容量の64KiBのSRAM(実際に音色データを置けたのはもっと少ない領域だったようだが)。
・32KHz/8chのADPCM。なので、容量自体はそんなに食わない(高音域の音が歪むという欠点はあるが)。
・再生波形のガウス補間、ピッチ/モジュレーション変更、エコー/リバーブ、フィルタをハードウェアでサポート。
てな具合で、無論、ドライバの工夫もあるんだろうけど、業務用ゲームも含めて、当時のゲーム用としては、もともと最高クラスのPCM音源だったのが要因。

628 :名前は開発中のものです。:2010/06/09(水) 20:44:25 ID:yKxBirAe
midi→PCMってムズいの?

629 :名前は開発中のものです。:2010/06/09(水) 21:15:34 ID:rHuJZWIL
ムズイっていうかMIDIは楽譜的な情報なのにPCMは波形だからなあ
自分で一からやるとそりゃあもう死ねます
実装によって仕上がりの音も全然違うし

630 :名前は開発中のものです。:2010/06/09(水) 22:32:28 ID:qkJYSXJu
楽譜をCDにするのと似たようなもん、何処まで自分でやるかによる。

演奏者雇って楽器は買ってくれば(Windowsにファイルごと丸投げ)、たいした労力はいらんし。
自分で演奏して楽器も自作する(自分でSMFを解析し、シンセサイザーを自作する)となれば、相当な労力がいる。


631 :名前は開発中のものです。:2010/06/09(水) 23:59:35 ID:eDbPYTsH
>>627
詳しい解説をありがとう、なんだか音のプログラマブルシェーダみたいですね
なぜSPCファイルが皆同程度の容量なのか不思議だったんだけど、ようは処理系のスナップショットなのか

632 :名前は開発中のものです。:2010/06/11(金) 12:50:28 ID:hBamGraD
すいません、少々質問です。
>>622ですが、9.0c用のSDKを探しているのですがどのSDKを使えばいいのでしょうか?

633 :名前は開発中のものです。:2010/06/11(金) 12:54:06 ID:hBamGraD
ageるの忘れたのと追記ですが、一応今DLしてあるものは June 10と最新の物なんですが、この中に
ソースとして10ってのと9っての2種類があるのですがもしかしてこのSDKって別に過去の物を使う必要がなく、
9.0cで使える関数等をつかえば9.0c向けのプログラムということになるのでしょうか?

634 :名前は開発中のものです。:2010/06/11(金) 12:58:26 ID:WclTY3DZ
>>633
概ねそう。windows APIだって同じだろ。


635 :名前は開発中のものです。:2010/06/11(金) 16:24:22 ID:b46tP7Yu
DirectSoundとかの古い機能を使わなければ問題ないな


636 :名前は開発中のものです。:2010/06/11(金) 22:30:53 ID:WRoLJZOq
C++で実装する場合、敵データって何で管理すべき?vector?list?
shared_ptrは使うべき?
ここらへんの作法的なものがさっぱり分からなくて困る

637 :名前は開発中のものです。:2010/06/12(土) 08:19:34 ID:odsGwdrC
私もこの質問に便乗して
私は追加削除は list の方が vector の方が速いと思ってたんですが
どっかで実は vector の方が速いとあったのでやっぱりそうなんでしょうか
しかもそれらSTL自体が遅いと聞いたので自分で作るのも考えたのですが
似たものは作れるのですが、全く同じ使い方のものを作ろうとすると今の自分にはちょっときついので
どこかで自作してるものを探したのですが、見つからなかったのでどこかにありませんでしょうか
自分で参考にもしたいと思ったもので
それとこれらの質問はゲームプログラミングを想定したものです一応念のため

638 :名前は開発中のものです。:2010/06/12(土) 09:36:07 ID:MfFcNHJl
速さに関しては今のPCの方が優秀なのでよっぽどのことが無い限り気にするだけ無駄。
画面に何百万発の弾幕張るような仕様を実現できるかどうかはPCやグラボの性能次第。
速さの限界チャレンジは開発用PC上で”しか”意味が無い。

639 :名前は開発中のものです。:2010/06/12(土) 10:08:18 ID:odsGwdrC
そうなん?じゃ無難に list でも使っとくか

640 :名前は開発中のものです。:2010/06/12(土) 10:22:20 ID:ISREFi7t
描画が重いからって描画以外の部分の高速化を図るのはお門違いってこと?

641 :名前は開発中のものです。:2010/06/12(土) 10:31:19 ID:IAfNttk3
list<effect>とlist<enemy>があってeffectからenemyにランダムアクセスしたいんだけど、
これって低速なのを承知してイテレータ使って探すしかないの?
それともなんか定石みたいのあるの?

642 :名前は開発中のものです。:2010/06/12(土) 10:49:27 ID:Z4c//xCX
>>640
お門違いかどうかは、プロファイラで計測してみないとわかんないね。

>>641
本当にその検索がボトルネックになってるなら、同時にIDがindexのベクタに登録するとか。
つかそれ以前に、enemyに対するeffectって、enemyオブジェクト内にeffectアドレスでも
登録して、effectの寿命はCOMみたいに管理すれば、検索自体が不要な気が…


643 :名前は開発中のものです。:2010/06/12(土) 11:12:44 ID:IAfNttk3
>>642
なるほど。後者の方法はいいかもしれないけど寿命管理が良く分からない
万が一先にオブジェクトが消えてしまて存在しないものを参照してアクセス違反とならないか不安

644 :名前は開発中のものです。:2010/06/12(土) 13:20:38 ID:nozhbs64
>>640
よほどの数の敵が出てくるとかでなければ、コンテナの違いは
速度的にはあまり意味がない。
コンテナの違いは中身が万単位になってやっと意味が出てくる程度で
数百程度だと優位な差がなかったり、速度の逆転が起こったりする。

要素の挿入や削除でイテレータが無効になるとかの性質の方が重要。

速度に問題があれば、コンテナを変える前にアロケータを変えることを
考えた方がいいかも。

645 :名前は開発中のものです。:2010/06/13(日) 04:37:42 ID:B+np0z/d
アロケータ調べてみたけど難しかったのでもう最初に new で一旦それぞれ使う分とっといてそれを使いまわすことにするわ

646 :名前は開発中のものです。:2010/06/14(月) 07:50:15 ID:+L/wTpB0
アロケータとかリストとか自分で頑張って作ろうとしてみたけど疲弊しただけだったわw
もっと実力上がってから挑戦してみることにする
当面は大人しく new と STL 使ってるわ
いやね、言い訳になるが単純にリスト作るだけなら出来ると思うけど
汎用化させたりいろいろ絡んでくるとちときついわ今の自分の力では

647 :名前は開発中のものです。:2010/06/22(火) 16:48:44 ID:TOC+2Opi
おれは動的配列を自分で作ってしまったよ。
ただ、配列のサイズ変更も自動でやってくれるとか、
自分なりに使い易い形にカスタマイズはした。
趣味の人ならこういう部分を楽しむのもアリだと思う。

648 :名前は開発中のものです。:2010/07/17(土) 22:15:17 ID:84ym2+jv
おれは道程だから自分でオナってしまったよ。
ただ、ちむこのサイズ変更が自動でなってしまう朝立ちとか、
自分なりにイキ易い形にカスタマイズはした。
趣味の人ならこういう部分を楽しむのもアリだと思う。

649 :名前は開発中のものです。:2010/07/20(火) 09:31:58 ID:9KeZQpZV
動的配列ってパイソンのリストみたいなやつ?

650 :名前は開発中のものです。:2010/07/20(火) 12:09:38 ID:IRMyEe9a
std::vectorみたいなものでは?

651 :名前は開発中のものです。:2010/07/20(火) 13:18:37 ID:ka0nTHRg
2D横スクロールアクションを創りたいんだけど、マップとかを作るのが大変すぎる
RPGツクールみたいな感じで創りたいんだけど、それには自分で専用のエディタをプログラミングしなきゃ駄目?
出来れば画面のある場所をクリックするとイベントが配置されて、画像とかイベント内容とかを
プログラムに書き加えてくれるような仕組みにしたいんだけど・・・
そういうのは難しいんだろうか
(モンスターAをどの位置に配置する、という地図をテキストデータにまとめて保存ということ
なら今の俺の技術でもできると思うんだけど、エディタの設定をもとにプログラムを自動生成して
書き加えてくれるようなのって可能?って質問です)

652 :名前は開発中のものです。:2010/07/20(火) 13:43:17 ID:4zAYS/8u
>>651
普通にレイヤー編集が出来るマップエディタでだいじょうぶでしょ
マップチップをモンスターやらイベントやらに割り当てればいい

地形レイヤー(あれば便利な当たり判定レイヤーを分けるといい)
イベント配置レイヤー(アイテム・モンスターレイヤーで分けてもいい)

好きなだけ必要なレイヤー作ればいいと思うよ

653 :名前は開発中のものです。:2010/07/20(火) 13:48:33 ID:ka0nTHRg
>>652
レイヤを作ってモンスターの配置・上層マップチップ・下層マップチップに分けて、
それの位置と内容をテキスト化何かに保存、というのは俺も考えてるんだけど、
問題はイベントの内容をエディタの中で決められないかな、ということ
RPGツクールだと「文章の表示」だの「画面を暗くする」だの「場所移動」だのの
コマンドを組み合わせるだけでいいでしょ
それと同じことをオリジナルエディタでやろうと思ったらどういう技術を使えば可能かってこと

654 :名前は開発中のものです。:2010/07/20(火) 13:51:20 ID:9KeZQpZV
ツクールなんて普通知らねえよw

655 :名前は開発中のものです。:2010/07/20(火) 14:20:13 ID:4zAYS/8u
>>653
オリジナルなら聞くまでも無くどうとでもなるじゃん。
フリーのマップエディタでどうにかならんかってことじゃないわけ?

イベントレイヤにマップチップ1を貼り付けて、
別ファイルたとえば"ev_1.txt"にメモ帳で内容を書くとすると、
簡単にマップチップとイベントを繋げられる。

・・・・ということじゃなく、そういうエディタを作りたいなら
最低WindowsGUIに関するプログラム(C#あたりなら楽)、
ツクール並みのイベント内容を解析したいならLuaあたりの知識、
1からスクリプト作りたいなら、構文解析に関する技術が必要だけど?

656 :名前は開発中のものです。:2010/07/20(火) 14:34:33 ID:ka0nTHRg
>>655
そういうんじゃなくて、プログラムとエディタをいったりきたりする手間を省けないかなってことです
例えばエディタ上でイベントを配置したい場所をクリックするとウインドウが出てきて、
そこにプログラムを書いてOKを押すと、そのプログラムをCファイルに書き足してくれる、
というようなものです

657 :名前は開発中のものです。:2010/07/20(火) 15:03:14 ID:4zAYS/8u
うーん、それだったら自分のニーズに合うものを作るしかないね。
プログラムとエディタを行ったり来たりしたくなければ、
スクリプトとしてイベントを外部に追い出すしかないだろうから。

>>651 で考えているのはCに直すんだから一種のトランスレータだろうけど、
その方法は、動かすたびにコンパイルしなおさにゃならんので、
結局エディタとプログラムを行ったり来たりすることになるよ。

しかし、そこから作るよりもあるものを使って作ったほうが最初はいいと思うけどね。
マップエディタと、メモ帳があればいいんだし。
マップチップに対応したイベントファイルにたとえば、

HP=10
移動パターン=1
攻撃力=12
防御力=3
落とす金=10

それをプログラムで読んでパラメータ設定したら、かなりエディタだけでよくなる。
これでも、経験が無いなら四苦八苦するだろうけど。

658 :名前は開発中のものです。:2010/07/20(火) 15:04:48 ID:4zAYS/8u

×マップチップに対応したイベントファイルにたとえば、
○モンスターレイヤのマップチップに対応したイベントファイルにたとえば、

659 :名前は開発中のものです。:2010/07/20(火) 15:40:33 ID:FFEjXre5
スト2の昇竜拳の軌道計算でつまってます。
下記の画像の逆放物線のような軌道計算は、
どのように行っているのかご存知でしょうか。
もしくは参考サイトなどありますでしょうか。

http://iup.2ch-library.com/i/i0121467-1279607725.jpg

入力情報としては

・頂点座標
・頂点到達時間(フレーム)
・現在再生フレーム(相対)
・横方向の力

出力情報としては

・フレームの進行度に対する前フレームからの相対位置
 要するに計算結果を加算するだけにしたい。

を考えています。

660 :名前は開発中のものです。:2010/07/20(火) 15:55:52 ID:4PiPc8U0
1フレームずつ座標をプロットして結果をテーブル化

661 :659:2010/07/20(火) 15:59:01 ID:FFEjXre5
頂点位置や横方向の力は可変にしたいので
固定数値だと都合が悪いですね

662 :名前は開発中のものです。:2010/07/20(火) 16:13:47 ID:SmPxzstR
物理的に考えれば等加速度運動とか等速運動だとかだけど
フレーム毎の計算だから数列の和だとかそんな感じか
高校数学レベルの話かな

663 :名前は開発中のものです。:2010/07/20(火) 16:22:41 ID:4zAYS/8u
vx と vy に必要な初速度計算して

x = x + vx
vx = vx / (適当 * フレーム * 横の力)
y = y + vy
vy = vy / (適当 * フレーム)

みたいなのを毎フレーム呼び出すとかかいな

664 :名前は開発中のものです。:2010/07/20(火) 16:38:47 ID:ka0nTHRg
>>657
遅くなりましたがありがとうございます。
テキストデータをエディタで編集して出力して既存のプログラムをテキスト化したものの中に埋め込み、
それの拡張子をつけかえてCファイルにして、コンパイル、
なんてことが出来ればそれが一番いいのですが・・・
色々調べたけど難しいみたいですね

665 :名前は開発中のものです。:2010/07/20(火) 16:46:15 ID:4PiPc8U0
データと処理を完全に分離してテキストデータを書き換えるだけで動作が変わるようにした方が良いと思うが

666 :名前は開発中のものです。:2010/07/20(火) 16:54:45 ID:ka0nTHRg
>>665
つまりテキストを引数にした関数を作っておくってこと?

667 :名前は開発中のものです。:2010/07/20(火) 16:59:53 ID:4PiPc8U0
引数でもfopenでも何でもいいけど、データを書き換える度に毎回コンパイルするのは面倒臭くない?

668 :名前は開発中のものです。:2010/07/20(火) 17:07:34 ID:ka0nTHRg
確かにそうですね
敵のパラメータもテキストで管理して、
マップにおける敵の位置もテキストで管理して・・・
そしたらエディタだけでだいぶ楽できるようになりますね
ただパラメータとかじゃなしの具体的な動作はプログラムでやらざるをえませんが

669 :名前は開発中のものです。:2010/07/20(火) 17:12:43 ID:4zAYS/8u
具体的動作もLuaとか使えば外に持てるけどね。

670 :名前は開発中のものです。:2010/07/20(火) 17:22:14 ID:ka0nTHRg
LuaでC++のコードを生成できるってことですか?

671 :名前は開発中のものです。:2010/07/20(火) 17:27:38 ID:4zAYS/8u
ちがう。
Luaスクリプトを自作のプログラムに組み込める。
これはたとえば、Cで作った自作プログラムの上でさらにCを動かせるようなもの。
コンパイルなしで。

でもまぁ、最初からそうしようとすると今の状態だときついだろうから、
プログラムとデータを分離することに集中したほうがいいよ。

672 :名前は開発中のものです。:2010/07/20(火) 17:41:41 ID:ka0nTHRg
>>671
うーん難しいですね・・・
キーワードとして覚えておきます
ありがとうございました

673 :名前は開発中のものです。:2010/07/20(火) 17:53:49 ID:4PiPc8U0
具体的動作まで外部に出すべきかなあ。そこはコンパイラにチェックしてもらった方が安全だと思うな。

674 :名前は開発中のものです。:2010/07/20(火) 18:00:01 ID:4zAYS/8u
ツクールでも作らない限りは、設定ファイルの延長で十分だし
そこのさじ加減は作る人の好みだねぇ


675 :名前は開発中のものです。:2010/07/21(水) 00:33:49 ID:EY0IZyCn
>>673
一度のコンパイルで十分くらいかかる位プロジェクトがでかくなったらそんなこと言えなくなるぞ

676 :名前は開発中のものです。:2010/07/21(水) 00:57:10 ID:eplgz5cR
じゃあC/C++を捨ててスクリプト言語でプログラム作ってろよ

677 :名前は開発中のものです。:2010/07/21(水) 02:02:55 ID:EY0IZyCn
実際そうなる

678 :名前は開発中のものです。:2010/07/21(水) 06:18:38 ID:O18++P2x
>>675
リビルドならともかく、ビルドでそうなるってのは、どっか設計が間違っていると思う。


679 :名前は開発中のものです。:2010/07/21(水) 07:38:28 ID:60wOpc+n
いまどきのPCならコンパイルも瞬殺だから、外だしする理由もないよね

680 :名前は開発中のものです。:2010/07/21(水) 07:39:25 ID:60wOpc+n
無駄に色んなクラスが1つのファイルに収まってたり、
無駄にヘッダを読みまくってたりすると、一箇所変更しただけで
大量にコンパイルが発生して遅くなったりはするけど

681 :名前は開発中のものです。:2010/07/21(水) 09:47:27 ID:Ef6/96NX
俺の場合1プロジェクトで何個もゲームこさえるスタイルだから無駄に色んなクラスが1つのファイルに収まってるわw

682 :名前は開発中のものです。:2010/07/21(水) 09:54:22 ID:EY0IZyCn
一箇所変更しただけでコンパイルとかしないから。
どのくらいの大きさのプロジェクト作ったことある?ソースファイル1000個超えたことある?

683 :名前は開発中のものです。:2010/07/21(水) 10:08:52 ID:DTn2ZgeR
つーか、複数のグループで分業とかしないのかな

684 :名前は開発中のものです。:2010/07/27(火) 02:25:46 ID:RZRqKDLL
>>656
何故Cのファイル?

C言語がベースならLuaを組み込んで、エディタからLuaのスクリプト吐くとか。
Lua組み込みすら大変な事情があるなら、構文を制限してcsvとか >>657 みたいな構文で吐くのはまだ楽
ただどっちにしろ羅列したコマンドを自分で処理する必要が出てくる

ただし、イベントスクリプト内で四則演算したいとか関数がほしいレベルの要求があるなら
迷わずLuaなりなんなり組み込み言語に行くのが今の時代だな
1からスクリプト組む時代じゃないわ

685 :名前は開発中のものです。:2010/07/27(火) 02:36:14 ID:RZRqKDLL
>>682
コンパイルの速さはそれこそ言語や処理系によるからな

ソースファイルが1000程度なら、Delphiなら10年くらい前でもフルコンパイルに30秒もかからなかったからな。
部分修正なら一瞬だった。
C++なら工夫しないと部分的修正でもファイル多いと死ねた時代だ。
pimplとか試してたわ

家ゲーの知り合いに聞いたら、今はスペック上がったからC++でもサクサクコンパイルできると言ってたが
実際どうなん?

うちはC++から離れちゃったんで最近C++事情に疎い


686 :名前は開発中のものです。:2010/07/27(火) 07:58:54 ID:gQwuLlov
そりゃまあ、プリコンパイルなしで、あらゆるソースでテンプレートを使いまくったあげく、
そのファイルを更新した、なんてことしたら大変なことになるよな。

>>685
ソースコードが42MBのライブラリをリビルドすると、数分はかかる > Core2Duo 3GHz/VC++2005
うまく切り分けてあるソースのビルドならほとんどの場合数十秒未満だから、まあ、さくさくっちゃーさくさく。


687 :名前は開発中のものです。:2010/07/31(土) 19:12:16 ID:odxEQo6u
ちんまいファイルを沢山読むせいかRAMDISKとかSSD使うと明らかに速くなるな



688 :名前は開発中のものです。:2010/10/27(水) 15:38:02 ID:PA2n5kiT
横スクアクションゲームについて質問なんだけど
スーファミのドンキーのようなやつはマップチップ使ってるのか?
マップチップ使ってるやつならなんとなく作り方分かるけどあーゆーのはどうやって作るの?
あとマップエディタ使ったときステージ固有のギミックとかどうやって組み込めばいいの?

689 :688:2010/10/28(木) 05:05:55 ID:BuHTqjnE
ごめん別のとこに移る

690 :名前は開発中のものです。:2010/12/13(月) 01:35:44 ID:k+jnh4qf
↓の優先デバイスってプログラム側でどうやって取得するのでしょうか?
ttp://peufrequente.blog41.fc2.com/blog-entry-636.html

VC#2008 Expressで、ManagedDirectXつかってゲーム作っているのですが、
DeviceList list = Manager.GetDevices(DeviceClass.GameControl, EnumDevicesFlags.AttachedOnly);
を実行するとゲームパッドの取得順番が変わるのかと思いきや、変わりません。
もしかして別に取得する手段があるのではと思い、質問させていただきました。

ご存知の方、どうかご教授お願いします。

691 :名前は開発中のものです。:2010/12/16(木) 18:44:40 ID:0O6i5tIq
はじめの1歩でつまずいたので助けてください。

環境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 で参照されました。
が発生してます。
あと、どのディレクトリを参照させればいいですか?

692 :名前は開発中のものです。:2010/12/16(木) 20:16:39 ID:eb1OKGp3
#includeの下あたりに

#pragma comment(lib, "d3d9.lib")

とでも書いとけ

693 :名前は開発中のものです。:2010/12/16(木) 20:46:19 ID:arJifEUh
つーかPASCALとかいつの記法だよと

694 :名前は開発中のものです。:2010/12/16(木) 22:38:10 ID:0O6i5tIq
>>692
ライブラリの指定って必要なんだっけか?
ディレクトリ指定して終わりじゃないんだ。
解決できました、ありがとうです。


>>693
オレはこれしか知らんのだが
最近は違うのがあるのか?
(199X年発行のウインドウズプログラム入門書見ながら)

695 :名前は開発中のものです。:2010/12/17(金) 12:23:19 ID:NsCCmq8+
PASCALとかWin16時代の遺物だろ。

microsoft.com内を検索してもページによって
WINAPIだったりCALLBACKだったりでわけわからんことになってるな。
どれも最終的に__stdcallになるだろうが。

696 :名前は開発中のものです。:2010/12/20(月) 12:54:09 ID:CPsUR6OJ
>>694
お前は10年以上経ってもプログラム技法が変わらないとでも思っているのか

697 :名前は開発中のものです。:2010/12/20(月) 15:03:26 ID:kH/vSo81
それにしてもCは長いよな。
まぁCといっても色々変遷してはいるが。

698 :名前は開発中のものです。:2010/12/20(月) 15:41:17 ID:unK/nJml
次は何になるんだろうな?
64bitに切り替わる時か、128bitに切り替わる時に何かあるかな?

699 :名前は開発中のものです。:2010/12/26(日) 14:40:10 ID:BzGIguKq
質問失礼します
C++での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);
}

日本語入力も捕まえるようにするにはどうすればいいでしょうか。ご教示お願いします。

700 :名前は開発中のものです。:2010/12/26(日) 19:40:07 ID:DlRTWhIN
>>699
やりたいことはよくわからんが、WM_CHARの方を使うとか

701 :名前は開発中のものです。:2010/12/26(日) 21:04:31 ID:BaeaVQ+I
>>699
フォーカスがBに無いと受け取らないんじゃね?調べてないけど。
WM_USER+xとかで送れば?

702 :名前は開発中のものです。:2010/12/29(水) 05:14:22 ID:IFaaeh/8
>>699
捕まえるにはWM_IME_KEYDOWN、WM_IME_KEYUPを見たらいけるかもしれない。
ただし、それをそのまま転送してもだめなはず、
IMEの処理が入る位置はWM_KEYDOWNやWM_IME_KEYDOWNより前の段階であるため。
やるならSendInputやkeybd_eventで同じキーストロークを再現する(これでうまくいくかは知らない)。

あるいは、>>700の言っているようにWM_CHARなどの転送で事足りるのかもしれないけど。

703 :名前は開発中のものです。:2010/12/30(木) 22:44:31 ID:ptpBQcHB
WM_IME_COMPOSITIONを捕まえてGCS_ほげほげで判定したらいけました。
ありがとうございました。

704 :名前は開発中のものです。:2011/02/05(土) 01:46:02 ID:oyWwf9Pp
ひとこと書いてみた。

705 :名前は開発中のものです。:2011/02/07(月) 17:55:57 ID:jb6HR8rZ
MIDIをOpenALで鳴らしたいのですが、どうすれば良いですか?

706 :名前は開発中のものです。:2011/02/07(月) 20:20:59 ID:xF2jTO5N
無理です

707 :名前は開発中のものです。:2011/02/07(月) 20:44:44 ID:9xgbd+uS
almixerってどうなの?

708 :名前は開発中のものです。:2011/04/07(木) 15:30:11.65 ID:i/kzJacP
フリーのシューティングゲームなどで、カーソルや自機が左上に移動し続ける現象が起こりますが、原因はなんでしょうか。
対処法も教えてください。

709 :名前は開発中のものです。:2011/04/07(木) 16:36:53.27 ID:Ifq1Rv8t
ジョイスティックの調整をしろ。

710 :名前は開発中のものです。:2011/04/07(木) 16:52:58.06 ID:pcoolw30
プログラミングの質問なのにそれはないだろうw

711 :名前は開発中のものです。:2011/04/07(木) 18:04:54.19 ID:hqT2HpYb
708の質問を読む限り、プログラミングの質問に思えないんですが。

「フリーのシューティングゲームなどで」って事はプレイする側の話でしょ?

712 :名前は開発中のものです。:2011/04/07(木) 19:11:17.72 ID:WA2sOoJW
ニュートラルポジションがおかしくなってる

713 :名前は開発中のものです。:2011/04/07(木) 19:59:23.79 ID:i/kzJacP
誤解を招く書き方をしてすみません;
プログラミングについての質問です。
環境は同じなのに、たまに左上現象が起こるゲームがあるので、気になりました。

714 :名前は開発中のものです。:2011/04/07(木) 22:18:20.53 ID:hqT2HpYb
「自分が作ってるゲームでそういう現象がおきる」

ではなくて

「そういうフリーゲームが時々あるけど、これはプログラム的に何か問題があるんだろうか?」

って質問なのかな。

いや俺はそういうフリゲの作者じゃないから答えられんけど。

715 :名前は開発中のものです。:2011/04/14(木) 16:24:33.76 ID:tNm2yu1M
AutodeskMAYAで作成したキャラクタ(.ma)を動かせるプログラムを組みたいのですが、何を勉強すればいいですか?

C言語はライブラリを使わなければだいたいわかります

716 :名前は開発中のものです。:2011/04/14(木) 18:45:12.64 ID:MAAZSs/A
ゲームコントローラによってはアナログ/デジタルの切り替えで
同じ軸でも軸の取る数値の範囲が変わったりするからかな?

717 :名前は開発中のものです。:2011/04/14(木) 19:47:26.48 ID:CnLBOOeN
パッド入力の閾値の問題だね
コントローラ全部が入力無い時に軸の位置に「0」を返すとは限らないからある程度猶予を与えればいい
ハズ。あまり詳しくはない

718 :名前は開発中のものです。:2011/04/25(月) 17:45:50.18 ID:KE1E9nBp
変な質問なんですけど
ゲームに使われるバイナリの値で
0xFFFFD8E7や0xFFFFD8EBといった値は何を表す値であると予測出来ますか?

719 :名前は開発中のものです。:2011/04/26(火) 01:49:00.44 ID:h6WQRFtT
・不透明な薄いピンク色
・固定小数点の座標値(整数部24bit小数部8bitで-39.09765625)
・32bitデプスバッファの任意地点の深度値
・生成される全オブジェクトにデクリメントで振っているシリアル番号


720 :名前は開発中のものです。:2011/04/26(火) 02:46:18.54 ID:/x7Dm5hD
1番目と4番目はあるかもしれません
ありがとうございました

721 :名前は開発中のものです。:2011/05/06(金) 14:16:14.28 ID:gs4TXQIx
using System;

class example
{
static void main()
{
Console.WriteLine("unkounko");
}
}
技術書を見ながら↑を書いたんですが
エラー 〜\Project1.exe' は、エントリ ポイントに適切な静的 'Main' メソッドを含んでいませんProject1
ってエラーがでてデバッグできません
ナニがいけないんでしょう?


722 :名前は開発中のものです。:2011/05/06(金) 20:56:47.66 ID:ibiTWqKE
君の頭


723 :名前は開発中のものです。:2011/05/06(金) 22:52:11.74 ID:r/gVAn5n
>>721
Mainでなく、mainでいいの?

724 :名前は開発中のものです。:2011/05/07(土) 19:13:02.95 ID:8XRSvEQT
プログラミングの本を買ってゲームを作りたいんですが
ノートパソコンでも大丈夫なんでしょうか?

725 :名前は開発中のものです。:2011/05/07(土) 19:22:17.45 ID:Q8cgsrDC
>>724
ノートだろうとデスクトップだろうと、ツールが要求する動作環境のスペックさえ満たしていれば作れるよ。

726 :名前は開発中のものです。:2011/05/09(月) 15:08:27.91 ID:r3X4NYF6
フリーで使えるお勧めのお絵かきソフトって何かいいの無いですか?
SAIが無料かと思ってたらシェアウェアでした

727 :名前は開発中のものです。:2011/05/09(月) 17:37:52.12 ID:F60nSaWV
どのレベルの絵を描くかで変わってくると思うけど。
Paint.NETとかGIMPとか?

728 :名前は開発中のものです。:2011/05/09(月) 17:42:16.40 ID:F60nSaWV
ちょっとググったが、SAIと並べられてかつフリーだと
GIMP、Pixia、AzPainterの名前が出てきたがどうか?

729 :名前は開発中のものです。:2011/05/09(月) 17:48:38.11 ID:r3X4NYF6
>>728
ありがとうございます
3つとも試してみますね

730 :名前は開発中のものです。:2011/05/12(木) 21:13:42.01 ID:1+y6mWXW
使い慣れて便利なのと、特に新しい技術が必要なゲームは作ってないので
昔書いたDirectXの自作のラッパーライブラリのバージョンアップを
7.0からやってないんですが、たま〜に、DirectX7以前のコードは
VistaやWin7で上手く動作しないという話を聞く事があります。

実際問題として、そこまで動作不良が多いんでしょうか?
出来れば、今のまま暫く、自作ライブラリ使いたいので
無視出来る程度の不具合の事例しかないなら、
バージョンアップしたくないんですけど、みなさんの意見聞かせて下さい。


731 :730:2011/05/12(木) 21:18:19.47 ID:1+y6mWXW
まぁ要はドライバの問題なんですかね。

732 :名前は開発中のものです。:2011/05/13(金) 19:26:20.67 ID:69Ai+1uz
基本はC(や何か言語)でプログラムを書いて
Directxで作ったダンジョンとか画像や音楽をCで読み込ませる、でいいんですよね?

733 :名前は開発中のものです。:2011/05/14(土) 12:34:06.17 ID:9TrYbWlB
DirectXすげー

734 :名前は開発中のものです。:2011/05/14(土) 14:47:18.75 ID:0GXIJwN5
ダイレクトセックスとかいうのやってみたいんですが、Cでもできますか?


735 :名前は開発中のものです。:2011/05/14(土) 16:18:11.67 ID:iTcd63B+
>>734
まずは「はじめてのC」を読んでください。

736 :名前は開発中のものです。:2011/06/02(木) 12:54:15.23 ID:1tobcTkH
3DのゲームプログラミングするPCはGeforceよりQuadroの方がいいんですか?
あとできる限りCPUやメモリが良い物の方がいいんですか?

737 :名前は開発中のものです。:2011/06/02(木) 18:21:37.82 ID:oVeJslsB
こんなもんでいい。

CPU : 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欲しい。
いろんな作業を並行してやる時の快適さが違う。

738 :名前は開発中のものです。:2011/06/06(月) 22:20:02.16 ID:SmY3HvdC

内容:
質問です。現在RPGを作っているのですがマッピングで困っています。
現在テキストファイルを読み込む→書いてある文字(半角)を数値に変換→配列に格納
っていう風にしているのえすが割り当てる文字が無くなってきてしまいました。
数字だけで割り当てる以外に何か他にいい方法はありませんか?

739 :名前は開発中のものです。:2011/06/06(月) 22:23:02.47 ID:3A2O81ns
2バイト文字にして漢字でも使えば?


740 :名前は開発中のものです。:2011/06/06(月) 22:31:43.14 ID:EjPv1nsn
ビットマップを使う
ペイントで修正できるし割とよくある手法

741 :名前は開発中のものです。:2011/06/06(月) 22:47:56.44 ID:SmY3HvdC
>>739 なるほど、確かに全角にしても何ら支障は無かったです。ありがとうございます。
>>740 ビットマップで描いてますよ。

よく考えたら全角にすればいいだけのことでしたね。変なこと聞いちゃってごめんなさい。
ありがとうございました。

742 :名前は開発中のものです。:2011/06/06(月) 22:56:56.47 ID:EjPv1nsn
>>741
ビットマップでマッピングしてるならテキストいらないじゃん

743 :名前は開発中のものです。:2011/06/07(火) 00:07:47.06 ID:K/eJWqg0
齟齬があるなw

ビットマップで書いた画像をそのまま、マップのデータとして扱うって事だよ。

赤ならどの地形、青ならどの地形、って感じで。
65536色なら65536種類のマップチップを区別できる事になる。

ビットマップは内部データが圧縮されてないそのまんまなのでこういう場合に使いやすい。
ファイルフォーマットはぐぐって調べればいいと思うよ。

744 :名前は開発中のものです。:2011/06/07(火) 01:19:10.03 ID:xHDy2WPL
マップエディタ作ったほうがはやい。

745 :名前は開発中のものです。:2011/06/07(火) 22:23:17.06 ID:0gZY2NZM
ゲ製らしいな。答え出てるのにまだレスとかw

746 :名前は開発中のものです。:2011/06/20(月) 11:25:41.57 ID:IzFJkAaU
今から先、開発言語は何が主流になると思いますか?

考え方によっては、インスコ時に、一回JITで
その環境毎に最適化されたコードを吐くような
言語がシロウト目には良いような気がするんですが。
つまり、C#や、Java?みたいな
(先々同じコードでプラットフォーム跨いで実行出来そうだし)。

ゲームプログラムに詳しい皆さんから見て
何かC++以外の言語が決定的にダメなところってあるんですか?
(ガベージコレクションでのもたつきとか?)

747 :名前は開発中のものです。:2011/06/20(月) 11:37:34.06 ID:pwkfIEnc
これからの主流はJavaScript(HTML5)だろ、情交


748 :名前は開発中のものです。:2011/06/20(月) 11:41:33.54 ID:IzFJkAaU
>>747
ゲームプログラムもですか??

749 :名前は開発中のものです。:2011/06/21(火) 16:03:47.19 ID:qvZTnZcq
プログラムの勉強を兼ねてゲーム開発に挑戦してみようと思っています
ゲーム開発の経験が無く、言語選択で迷っています。
ゲーム内容はシンプルに2Dで選択のみで進めるRPG予定です

形になるまでが早く、数ある中で、比較的習得が用意な言語はなんでしょうか?

開発経験: PHP, PythonでのWebアプリ開発
プログラミングから離れていたので、趣味で開発出来るレベルまでスキルアップしたいと考えています

750 :名前は開発中のものです。:2011/06/21(火) 16:44:58.04 ID:ET4j6FRl
C#でxnaとかどうよ

751 :名前は開発中のものです。:2011/06/21(火) 16:45:20.26 ID:3S8vxGBO
>>749
Book
14歳からはじめるC言語わくわくゲームプログラミング教室


752 :名前は開発中のものです。:2011/06/21(火) 17:57:49.46 ID:qvZTnZcq
>>750
ありがとうございます。
C#は、CやC++に比べ簡単で…と何度か聞いたことがあります。
ゲーム開発用のフレームワークも用意されているのですね
一度触ってみます

>>751
C言語は、ほぼ切り貼りですが、業務で必要なPostgreSQLの自作関数を作成した事があります。
メモリ管理など、気にかける事が多く難しいと聞きますが、やはり学んでおくべきですか?
確実にスキルアップするとは思いますが、今後開発を続ける上でやはり必要な知識となるでしょうか

753 :名前は開発中のものです。:2011/06/21(火) 18:06:00.16 ID:3S8vxGBO
学習の為なら、C言語から始める
結局ね、情報が多いものを選ぶ事。やってみ、わかるから

C言語から派生した言語が多い。ひとつを完全マスターすることから広がる。

754 :名前は開発中のものです。:2011/06/21(火) 18:28:38.03 ID:qvZTnZcq
>>753
仕事でやってるわけではないですもんね
ありがとうございます、勉強してみます

755 :名前は開発中のものです。:2011/06/21(火) 20:32:04.04 ID:evQPDRUv
>>749
>ゲーム内容はシンプルに2Dで選択のみで進めるRPG予定です

こんな感じのやつ?

http://www.programmingmat.jp/soft_lib/m11rpg/


756 :749:2011/06/21(火) 23:52:33.73 ID:qvZTnZcq
>>755
イメージ的には近いです。
URLのゲームからマップ移動を全て除き、テンポ良い戦闘のみで作る予定です


757 :名前は開発中のものです。:2011/06/23(木) 11:01:52.46 ID:bPgnTXjY
ウィンドウをドラッグしても
メインスレッドが停止しないようにするには
どうしたらいいんでしょうか

通信のアクションゲームを作っているのですが
ホストがこれをするとポーズをかけたようになるので
困っています


758 :名前は開発中のものです。:2011/06/23(木) 12:05:17.92 ID:ZHOr5XNo
マルチスレッド

759 :名前は開発中のものです。:2011/06/25(土) 15:32:52.64 ID:av3YTDPA
こんな感じのメインループでのウェイト処理じゃダメですか?
もちろん実際はメッセージ処理もしてます。
結構、Sleep()をかませろという話があるんですが
かなり精度が悪くてフレームレートが指定値にならないんです。

while(1){
stime = timeGetTime();
game_main();
while(timeGetTime() - stime < 1000 / 60);
}

760 :名前は開発中のものです。:2011/06/25(土) 15:58:51.76 ID:av3YTDPA
↓みたいにウェイトかける時にSleep(0)だけでもやった方がいいのかな?

while(1){
stime = timeGetTime();
game_main();
while(timeGetTime() - stime < 1000 / 60){ Sleep(0); }
}

761 :名前は開発中のものです。:2011/06/25(土) 17:47:30.73 ID:URerxJ8Q
>>760
http://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それ未満はループで調整してる

762 :名前は開発中のものです。:2011/06/25(土) 17:49:23.50 ID:URerxJ8Q
あ、1ms未満でも必ず Sleep(0)は入れてる

763 :名前は開発中のものです。:2011/06/25(土) 19:01:57.96 ID:U+AhBja3
精度が必要な待ちなら、マルチメディアタイマのイベントを待つようにすればいいだけ。
なんでSleepを使うのか全く意味が不明。

764 :名前は開発中のものです。:2011/06/25(土) 21:30:18.22 ID:JoYEMJgk
>>761
timeBeginPeriodの設定が要るって気付かなくて悩まされたの思い出したわw

765 :760:2011/06/25(土) 23:37:47.57 ID:av3YTDPA
あ、すいません。
もちろん、timeBeginPeriod()とtimeEndPeriod()は設定してます。
ただループにSleep()を入れると多く待ちすぎてしまったりしてたので困ってました。
でも >>761さんが言うように、余り時間でSleep()するかどうか決定すればよさそうですね。
とりあえずSleep(0)だけは必ず入れるようにしますね。

>>763 それはどういうことでしょうか?

766 :名前は開発中のものです。:2011/06/26(日) 00:16:04.63 ID:Fm5IE/R1
どういうことも何も書いてある通りだが、いったい何が疑問なんだ?

767 :名前は開発中のものです。:2011/06/26(日) 00:27:46.94 ID:C/6aPfwc
>>766
マルチメディアタイマのイベントというのがよくわかんないんですが
それを使えばSleep()しなくてもCPUに高負荷がかかりませんか?

768 :名前は開発中のものです。:2011/06/26(日) 02:36:36.47 ID:C/6aPfwc
どう監視してもSleep()に0より大きい値入れると
FPSが安定しないので
もうウェイト処理にSleep(0)だけ入れる事にした ヽ(`Д´)ノ

Sleep()の仕様で、引数に与えた値以上、戻ってこない事があるらしいから
それが原因なのかな…

769 :名前は開発中のものです。:2011/06/26(日) 08:11:41.37 ID:Fm5IE/R1
>>767
キーワードを入れて検索する程度のことすら出来ない怠け者にはプログラムは向いてないよ。

770 :名前は開発中のものです。:2011/06/26(日) 08:26:23.84 ID:C/6aPfwc
>>769

>それを使えばSleep()しなくてもCPUに高負荷がかかりませんか?

すみません、この上記の質問だけ教えてもらえませんか?

Yes/No?

771 :名前は開発中のものです。:2011/06/26(日) 09:04:29.33 ID:Fm5IE/R1
どれだけ怠け者なら気が済むんだよ。
やった上で、疑問に思ったことを聞くならともかく、
すぐに実験できることをやろうともしない人間にこれ以上答えることはない。

772 :名前は開発中のものです。:2011/06/26(日) 09:35:10.81 ID:C/6aPfwc
>>771
すんませんす。
timeSetEvent()で指定してコールバックで
処理するという形になるんですね。
なるほど。

ただSleep()も試行錯誤してたら
引数の数値を大きく指定するようにすれば
そこそこの精度で安定するようにはなりました。

773 :名前は開発中のものです。:2011/06/26(日) 10:20:15.53 ID:h26G+E5Y
>>772
ttp://dixq.net/rp/43.html
ここは既知?
自分の場合、垂直同期切り忘れとか実行中にクラスの生成と解放をしてたとかあったな…

774 :名前は開発中のものです。:2011/06/26(日) 10:54:34.44 ID:C/6aPfwc
>>773
ご紹介ありがとうございます。

ただ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); }
}

775 :名前は開発中のものです。:2011/06/26(日) 10:59:23.35 ID:U4EFMTMz
sleep()というか、Windowsって10ms以下の値は指定できるけど保障なしじゃなかったか。
今は違うんだっけ。

776 :名前は開発中のものです。:2011/06/26(日) 12:33:06.53 ID:B5xxb33H
見たところシングルスレッドでメッセージループにSleepを入れているようだけど、
厳密に言うとメインスレッドでSleepは使ってはダメ。
Sleep中はメッセージ処理が行えないから、ブロードキャストメッセージを使用している
他のアプリケーションのパフォーマンスに影響あったりする。
FPS調整用の短いSleepならほとんど問題ないけど、余裕があればSleepのかわりに
MsgWaitForMultipleObjectsを使った方がいい。

>>775
昔から、明文化はされてないけどSleepの元になるタイマーはtimeBeginPeriodの
影響を受けて精度が変わる。何も設定してないと10ms精度くらい。

777 :名前は開発中のものです。:2011/06/26(日) 12:38:17.18 ID:C/6aPfwc
>>776
MsgWaitForMultipleObjects ですね。
調べてみます。情報ありがとうございます^^

778 :名前は開発中のものです。:2011/06/26(日) 13:34:56.21 ID:Fm5IE/R1
>>772
コールバックじゃなくてイベントと書いているんだが。

779 :名前は開発中のものです。:2011/06/26(日) 13:55:56.88 ID:h26G+E5Y
>>778
そこまで気にかけるならもう回答教えてあげてもいいんじゃないのw

780 :名前は開発中のものです。:2011/06/26(日) 14:04:02.65 ID:h26G+E5Y
自分DelphiでSTG作ってるけど、OnIdleイベント内に↓これだけでFPS安定してるけどなあ。
小数点以下の話ならごめん(^_^;)

{
t = timeGetTime();
game_main();
while(timeGetTime() - t < 17)
{ Sleep(0); }
}


781 :名前は開発中のものです。:2011/06/26(日) 19:28:33.67 ID:EEDTFaxz
>>780
それだとCPU使用率が下がらない。

782 :名前は開発中のものです。:2011/06/26(日) 20:31:02.39 ID:h26G+E5Y
スマソ;

783 :名前は開発中のものです。:2011/06/26(日) 21:04:13.27 ID:C/6aPfwc
>>778
ウィンドウズのイベントがコールバックで呼び出されるという話じゃないの??

784 :名前は開発中のものです。:2011/06/26(日) 21:49:54.06 ID:Fm5IE/R1
>>783
ちゃんとヘルプを読め。
使うのはイベントオブジェクトであって、コールバックじゃない。

785 :名前は開発中のものです。:2011/06/27(月) 02:04:43.20 ID:mjTrT8bw
>>784
イベントオブジェクトの設定もあるんですね^^;

みなさんありがとうございます。
とりあえず今回は、>>774の方法を中心に調整して行きたいと思います。
FPSの安定とCPU使用率を抑える事が大分両立出来ました。


786 :名前は開発中のものです。:2011/06/27(月) 13:05:38.66 ID:5jj8qo/e
>>775
Sleep()するとスレッド スイッチするんじゃないの
でもって10msだか何だか戻ってこないでしょ?
だから10ms以下のSleepは保障できないのでは・・・



787 :名前は開発中のものです。:2011/06/27(月) 15:37:59.15 ID:KSejmRDb
1以上10以下は、な

788 :名前は開発中のものです。:2011/07/27(水) 18:19:20.32 ID:rtDjJBOt
このスレで語られる言語は何が多いですか?

789 :名前は開発中のものです。:2011/07/27(水) 20:08:07.17 ID:d+vft6M6
日本語かな?

という冗談はおいておいて、見てのとおりC/C++かと。

790 :名前は開発中のものです。:2011/08/05(金) 02:02:20.66 ID:iQzPAYN5
ファイル操作、パッキングに関する部分について質問です
必要な時にオープンして用が済んだらクローズするのがファイルを扱う基本だと思うのですが
ゲームデータ全て、または画像毎や音声毎などにまとめたパックファイルを利用する場合、
何度も同じファイルにアクセスすることになると思うのですが、例えばゲーム中ずっとオープンしっ放しで利用しても良いものでしょうか?
それともやはりデータにアクセスする度にオープン→クローズするべきなのでしょうか?

791 :名前は開発中のものです。:2011/08/05(金) 04:03:33.45 ID:LUnU1i9G
どっちでもいい。

読み込みアクセスしかしてないなら、クローズなんて気にする必要ない。

792 :名前は開発中のものです。:2011/08/05(金) 21:10:30.95 ID:2OzNzc7r
【原発問題】汚染水処理システム、パソコンのフリーズで稼働停止 パソコン再起動で完全復旧[08/05]
http://raicho.2ch.net/test/read.cgi/newsplus/1312544716/


793 :アジェグ4倍 ◆4xAJeG.COM :2011/08/15(月) 12:14:45.95 ID:pL1hbMOk
60FPSで動くソフトを作るなら、スレッドは必須だよ。
CreateWindowsの後のループは、GetMessageのままのほうがいい。

で、WM_CREATEのイベントのときに、60FPSでループするスレッドを作る。
スレッドのループは、何らかのフラグで抜けるようにして、
WM_DESTROYのイベント時に、そのフラグをセットさせるってとこだな。

キーとマウスのイベントは、フラグのセットなどだけにとどめて
すぐにイベント処理を終わらせること。
あと、Sleepと画面反映の順序を間違えないように。
計算して裏画面に描画して、Sleepで時間を調整してから反映、だぞ。


・・・と、イロイロ書いてみたが、理解してもらえるだろうか・・・


794 :アジェグ4倍 ◆4xAJeG.COM :2011/08/15(月) 13:26:29.82 ID:pL1hbMOk
なにやら、Sleepの制御のループを
ソースレベルでイロイロ書いてるみたいだから、
おれのやり方も書いてみよう。

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 ;
}
}

こんな感じかな。


795 :名前は開発中のものです。:2011/08/15(月) 13:40:49.56 ID:cTd0dgcs
>>794
それ6月の話題だし、素晴らしいコードを披露するならともかく
今更unsignedとsignedの区別もついてないようなコード貼られても困る。

796 :アジェグ4倍 ◆4xAJeG.COM :2011/08/15(月) 13:53:07.65 ID:pL1hbMOk
>>795
はいはい。

というわけで、くれぐれもマネをしないように。
著作権の問題とか発生しかねないからねぇ。


797 :名前は開発中のものです。:2011/08/15(月) 15:59:55.34 ID:71G/E+75
何この糞コテ

798 :名前は開発中のものです。:2011/08/15(月) 16:15:04.32 ID:cxMX6aDk
まぁ、timeGetTimeとかやっちゃってる時点でw


799 :アジェグ4倍 ◆4xAJeG.COM :2011/08/15(月) 16:38:36.57 ID:pL1hbMOk
なんだ、この糞コテを知らんのか。

糞コテみたら、まずはググレカすことを覚えろよ。


800 :名前は開発中のものです。:2011/08/15(月) 16:40:46.38 ID:726htfBM
無名コテ乙

801 :アジェグ4倍 ◆4xAJeG.COM :2011/08/15(月) 16:44:14.52 ID:pL1hbMOk
それはそうと、この板は完全に過疎板だと思ってたが、結構いるもんだな。

悪いことは言わん、今のうちにあぼーん登録しておくがよい。


802 :名前は開発中のものです。:2011/08/15(月) 20:09:42.78 ID:WSvdh9Hq
親切でやったつもりがケチつけられて傷ついたのはわかるが
そこで自棄を起こして荒らし行為なんてせずに、おとなしく引き下がる事を望む。

803 :アジェグ4倍 ◆4xAJeG.COM :2011/08/16(火) 08:37:55.17 ID:t616+10I
嵐だと思うなら、返事しちゃダメじゃん。
過疎スレで、おれが来るまで10日も放置してたのに、
おれが来たとたん、タチマチこんなに集まっちゃってさ。
sageりゃいいってもんじゃねーんだぞ。

ほんとはうれしいんだろ?
寂しかったこのスレに、大物コテが現れてくれて。

ちなみにおれは、↓のようなMIDIアプリを開発している糞コテさ。
いまは、イロイロな機能追加を進めててね。
http://www2.ocn.ne.jp/~j3262il6/rds/

このソフト、ソースも公開してるけど、くれぐれもパクったり
参考にしたりしないように。
容赦なく、timeGetTimeとかやっちゃってるからね。


804 :名前は開発中のものです。:2011/08/16(火) 21:09:07.25 ID:3+35ODV/
timeGetTime しちゃう奴は、リアルで jobGetJob できない

805 :名前は開発中のものです。:2011/08/17(水) 00:02:27.51 ID:FbzsBwEq
仕事では、通信プログラムのテストで、あんまり厳密でない時間間隔で
パケット投げるのには手軽で便利だよ。
clock()よりは早く投げられるし。


806 :名前は開発中のものです。:2011/08/17(水) 02:21:39.99 ID:H/5FPjKZ
timeGetTimeってなんかまずいのか?

807 :アジェグ4倍 ◆4xAJeG.COM :2011/08/17(水) 09:06:45.15 ID:4BdszuWf
>>806
強いて言えば、このクソコテが使ってるからだろう。

ホカの手段としては、QueryPerformanceCounterてのがあるようだが、
おれが試してみた限りでは、timeGetTimeと挙動に大差はなかったねぇ。

そうなるともう、アルゴリズムの問題だな。
上の方では、Sleep(0)などとも言ってるけど、
待ち時間が1ミリ秒を切るようなら、それはすでに処理オーバーだから、
フレームスキップの処理などを考えないと。


808 :名前は開発中のものです。:2011/08/25(木) 21:01:01.31 ID:L1verjXw
jobGetJob

809 :名前は開発中のものです。:2011/08/30(火) 16:38:39.78 ID:Y9y+EOaU ?BRZ(10000)

こんにちは。初めてですがよろしくお願いします。
使用文法はcです。
今回おかしいなと思ったのはキャラクターが動かないというバグです。
使用している構造体は
unit_status[k].unit_member[i].xxx
となっていて、kがグループ(つまり味方か敵かなど)、iはその中での番号です。
kが1の時は敵、0の時は味方というかんじです。
(プレイヤーに割り当てられた構造体はkが0,iが0です。ループ中に遭遇した場合はスキップされます。)
敵はしっかり動きますが、味方がうんともすんとも言いません。どうしたらいいのでしょうか?


810 :名前は開発中のものです。:2011/08/30(火) 16:40:51.84 ID:Y9y+EOaU ?BRZ(10000)

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の分岐。
}
}
}
}

コードをはっつける良い場所ないですかね・・・

811 :名前は開発中のものです。:2011/08/30(火) 17:19:22.22 ID:84vu7iX6
そりゃbreakで内側のループを抜けたら同グループは動かないだろう

812 :名前は開発中のものです。:2011/08/30(火) 18:37:55.32 ID:Y9y+EOaU ?BRZ(10000)

(´・ω・`)あぁ・・

813 :名前は開発中のものです。:2011/08/30(火) 19:08:06.33 ID:NWN85EFf
>>812
m9(^Д^)プギャー

814 :名前は開発中のものです。:2011/09/08(木) 18:29:05.58 ID:Oef4cD8U
コードはっつけるのに、http://codepad.org/
とかどうだろう

815 :名前は開発中のものです。:2011/09/23(金) 20:05:36.80 ID:8vj2FBxM
ゲームプログラマになる前に覚えておきたい技術を読んでいるんですが、さっぱり分かりません。
普通入門書終えたら読めるようになるのでしょうか?ワンクッションおけるような書籍があれば
教えてください。(DXライブラリは使わないものでお願いします)



816 :名前は開発中のものです。:2011/09/23(金) 20:12:31.42 ID:BbPCTDgW
入門書が何をさすかしらないけど。
CとかC++の入門書を終えたレベルじゃあれを理解するのは無理だよ。

あの本はある程度、ゲーム作製の経験のある人間でも難解だったりする。

絶版になってるけど古本なら1000円で買えるし
http://www.amazon.co.jp/dp/4797325453

これでも買っておけば?
Windowsのゲームプログラミングの初歩の初歩が学べるよ?


817 :名前は開発中のものです。:2011/09/23(金) 20:21:43.07 ID:Unh+z/jy
15歳からはじめるDirectX 9 3Dゲームプログラミング教室 大槻 有一郎

サンプル解説の初級本なら、これでいいんじゃね、

818 :名前は開発中のものです。:2011/11/29(火) 11:00:43.66 ID:E9cixHcQ
>>814
codepadは最近遅くなってきたからこっちも試してみて
http://ideone.com/

233 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)