トップページgamedev
818コメント302KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001うゆ ◆vvvK3Fcqdg 2008/11/06(木) 21:28:45ID:lNn2skuQ
※回答する人も、質問する人も必ず読んでください

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

【 質問する香具師 】
・ どんな事で躓いているのか明確にしる。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書け。
0182名前は開発中のものです。2009/02/22(日) 13:07:55ID:9a/tyRQO
なんだかすごい釣り針が…
0183名前は開発中のものです。2009/02/22(日) 15:53:56ID:uv0okrQ5
>>181
そのイメージの元となったビンゴゲームの開発元に
「絵をちょこちょこっと変えたバージョンを作って売ってください」って言うのが一番確実で手っ取り早い。
0184名前は開発中のものです。2009/02/22(日) 17:14:10ID:9a/tyRQO
>>183
こんなところで聞くようなイタイ業者にヒントも出すなよ。
色んな意味でろくな事にならないぞ。
0185名前は開発中のものです。2009/02/25(水) 15:43:56ID:W/hwiF8T
仕様書をまとめたほうがいい
技術的には低の低
0186名前は開発中のものです。2009/02/26(木) 04:43:10ID:EST0UxDP
http://search.vector.co.jp/search?query=%83r%83%93%83S
0187名前は開発中のものです。2009/03/25(水) 20:42:40ID: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);
}

つづく
0188つづき2009/03/25(水) 20:43:23ID: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;
}
0189名前は開発中のものです。2009/03/25(水) 20:58:00ID:cPG1Bp4Z
showwindowが抜けてる、かも
0190名前は開発中のものです。2009/03/26(木) 03:35:13ID:Q1jkMb06
WS_VISIBLEがあるからShowWindowは必要ないかな

WNDCLASS構造体に値を設定しただけでRegisterClassで登録してないのが原因だと思う
0191名前は開発中のものです。2009/03/26(木) 10:22:58ID:uoZMP3+M
>>190 の通り。
RegisterClass(&wc);
をCreateWindowの前に。
0192名前は開発中のものです。2009/04/05(日) 21:54:31ID:Ul2Xl6r0
あんまりWindowsと関係無いのですが、C++でのメモリ確保方法について質問です。

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

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

私は仕事がハード畑一色の人なので、頭が固いです。
どなたか教えてくださいorz
0193名前は開発中のものです。2009/04/05(日) 22:34:27ID:V3UuquCs
×ハード畑なので、頭が固い
○高卒なので、頭が悪い
0194名前は開発中のものです。2009/04/05(日) 22:38:51ID:bmURRfR1
>>192
例えばメモ帳を作るとき、読み込んだデータの長さは分からない。
こういうとき静的な確保だと、何メガバイト確保すればいいのかわからないし、
もし確保した量よりデータが大きければ扱えないし、小さければ、無駄になる

そこで、new/malocなどで動的に確保してやれば、必要な分だけ確保できる。
0195名前は開発中のものです。2009/04/05(日) 22:48:17ID:8bGUAz8h
>>192
使用メモリーが決まってて、制限以内なら静的確保で問題なし。
普通は全部持つ友もリーがはみ出るから、効率いい方法を探すだけ。
0196名前は開発中のものです。2009/04/06(月) 20:32:34ID:wZso2H2m
>>192
個人的には動的確保のほうが流れが分かりやすいけどね。
>>194のような柔軟性も持たせられるし。柔軟性を持つということは
コーディングでメモリ空間の大きさをやたら意識する必要も無くなる。
メモリ確保の速度の関係で、予め確保しておいたメモリ空間を使う
ってのはちょくちょく聞く話だけど、
そういう特別な事情が無い限り動的な確保が王道じゃないかなぁとは思う。

まぁ趣味でやるなら不正アクセスが無い限り自由にやりやがれって話ですよ。
0197名前は開発中のものです。2009/04/10(金) 05:55:47ID:q4HGwHB4
ゲームプログラミングの経験はあまりないのですが、
3DのMOを開発しようと思っています。

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

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

分かる方よろしくお願いします。
0198名前は開発中のものです。2009/04/10(金) 06:01:34ID:q4HGwHB4
あと、フリーのゲームエンジンでメジャーなものがあれば教えてください。
0199名前は開発中のものです。2009/04/10(金) 07:56:06ID:xaOVHUcG
RPGツクールでも使っとけ。
求めてるのはそういうお手軽にゲームつくれるツールだろ?
0200名前は開発中のものです。2009/04/10(金) 08:01:59ID:q4HGwHB4
そんなものを求めているとは一言も書いていません。
プログラミングの知識としては、OSアーキテクチャからアプリ・サーバ・WEB開発までいけます。
メジャーな開発環境はなんなのか、どんなものがあるのか
そういったトレンドを知りたいと思っています。
0201名前は開発中のものです。2009/04/10(金) 08:44:23ID:3LDySn8E
生意気だから教えてあげないぷー
0202名前は開発中のものです。2009/04/10(金) 10:02:25ID:o/eQJnMQ
俺ならXNA以外のエンジンを進める。XNAの欠点にXBOX用コントローラーしか
利用できない。XNA用のランタイムがほとんどのPCには入っていないので、
利用者に別途インストールをお願いしなければならない。XBOXゲーム機では
なんら問題ではないが。PCでは使いたくない欠点だ。
0203名前は開発中のものです。2009/04/10(金) 19:34:54ID:ESPzFswh
Ogreでも使ってろよクズが
0204名前は開発中のものです。2009/04/10(金) 19:48:05ID:WdqvyJ6f
>>197
Windowsの3Dゲーム開発で何が主流か?といわれたら、主流はない。
あえていうなら、DirectX。
XNAはありえない。
Ogreとかもないな。

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

0205名前は開発中のものです。2009/04/10(金) 19:48:54ID:WdqvyJ6f
> 敷居も低い。
1から3Dエンジンを作るよりも、って話ね。
0206名前は開発中のものです。2009/04/12(日) 10:37:36ID:O+0G4WiN
別にPC前提ならXNAでもXBOXコントローラー以外も使えるけどな。
C#でやりたいというわけでもないなら、XNAじゃないほうがいいだろうな。
02071972009/04/12(日) 11:22:43ID:2pX9j9Yn
レスありがとうございます。

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

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

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

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

とりあえずXNA本を一冊読んで見ます。
0208名前は開発中のものです。2009/04/12(日) 17:48:24ID:uJhs7hdp
まて、XNAはフレームワークだろうけど、エンジンというほどじゃない気がw

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

C#に拒否反応ないなら、(デプロイにユーザー開発者双方で手間かけてもいいなら)
Pythonとかでもいいよな。
0209名前は開発中のものです。2009/04/12(日) 22:03:27ID:vkgd6Htu
質問です。2Dのゲームの場合絵を描くことについてですが
gifじゃないといけない理由ってありますか?
gifだと256色しかないんで別の拡張子で素材作りたいのですが。
pngとかjpgとかgifとか拡張子ありますがgif以外でもつくれるならば
別の拡張子で綺麗な絵柄で作りたいと思っています。
可能ならばメリットとデメリットってありますか?
0210名前は開発中のものです。2009/04/12(日) 22:28:24ID:LCOFWzsh
プログラム的な話で言えば別に色情報さえ読み取れるなら
どの形式だろうが或いは独自形式であっても問題ない
しかし、なにかのツクール系みたいなツールで作っていて
対応フォーマットがgifにしか対応してないっていうなら従うしかないんじゃない?
むしろgifのほうがライセンスの問題で使うべきではないんだが
DirectXであればbmp、png、jpg、tga、dds、あたりが標準で読める
0211名前は開発中のものです。2009/04/12(日) 22:44:13ID:ZQ7DXobT
DirectX != D3DX
0212名前は開発中のものです。2009/04/12(日) 22:45:13ID:vkgd6Htu
>>210
ありがとうございます、ツクール系ではなく普通に本勝って付録でついてる
サンプルプログラムを改造してゲーム作る予定です。
で、素材の絵を描いていたのですがドット打ちできないんで普通にフォトショップで
描いていたのですが不安になったんで質問させてもらいました。

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

一般的な方法でいうと
1枚の画像にアニメーションのパターンを全て含めて
画像のどの部分をどのタイミングで表示するのかを
プログラム側から指定してやることでアニメーションをさせます
プリーのツールでそういったアニメーションデータを作成してくれるものもありますが
それはあくまで画像の区切りやタイムテーブルのデータの作成を簡易にしてくれるものであって
それらを読み取ってアニメーションをさせる部分は自分で実装する必要があるのです
0214名前は開発中のものです。2009/04/12(日) 23:43:13ID:vkgd6Htu
>>213
ありがとうございます、それに関してはなんとなくわかります。(アニメーションは自分で実装)
でも描いてるうちに参考の画像見ると全部gifなんでgifじゃないといけない理由が
あるのかなあと気になっていたのです。

自分ドット打ちはできなかったんで・・・
0215名前は開発中のものです。2009/04/13(月) 00:03:20ID:qsxqoxw3
gifでないといけない理由はなにもない
単純にインデックスカラー対応で圧縮されてて
ファイルサイズが小さいからとかそんな理由と思われる
まさか、web上の素材サイトを参考にしてそう言ってるわけじゃないよね?
0216名前は開発中のものです。2009/04/13(月) 00:19:55ID:bYodFX/G
>>215
いや、mugenとかですね。
キャラの動きとかの研究にmugenのキャラを見てましたが全部gifだったんで
0217名前は開発中のものです。2009/04/13(月) 05:22:32ID:DrRdSLAX
時代背景もあるんじゃないのか?
10年くらい前は256以下なら、pngよかgifくらいな時代だったはずだし(まあ、同時にgifライセンスうぜーって時期でもあったが)
俺はよくわからんので。

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

>サンプルプログラムを改造してゲーム作る予定です。
一応PGなら改造って言葉は使わずあくまで「参考にして」ってしとけ
たぶんそんな機会は訪れないと思うが足元すくわれるぞ
0219名前は開発中のものです。2009/04/13(月) 08:23:11ID:GN8f0M0n
どうせ出来ないんだからいいんじゃないの
0220名前は開発中のものです。2009/04/13(月) 15:20:22ID:yYZDsjyV
それを言っちゃあおしめえよ
0221名前は開発中のものです。2009/04/30(木) 14:07:29ID:XSOMXuai
XNAでインベーダーゲームを作ってるんだけど
敵キャラを下にゆっくり移動させるのにはどうしたらいいんだ?
ちなみに右に行って下
左にいってしたってかんじ
0222名前は開発中のものです。2009/04/30(木) 16:14:51ID:Szb967NA
if (mode == 右に動かす)
{
  (敵を右に動かす処理)
  if (一定量右に行ったか) mode = 下に動かす;
}
else if (mode == 下に動かす)
{
  (敵を下に動かす処理)
  if (一定量下に行ったか) mode = 左に動かす;
}
else if (mode == 左に動かす)
{
  (敵を左に動かす処理)
  if (一定量左に行ったか) mode = 下に動かすpart2;
}
else if (mode == 下に動かすpart2)  // ←これは else でもいい
{
  (敵を下に動かす処理)
  if (一定量下に行ったか) mode = 右に動かす;
}

これじゃあかんの?
0223名前は開発中のものです。2009/04/30(木) 17:45:01ID:6x5SV4ES
Dictionaryを使えと何度いえb(ry
0224名前は開発中のものです。2009/05/02(土) 11:18:09ID: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つになるみたいにしたいんだけど、うーん
0225名前は開発中のものです。2009/05/02(土) 11:44:19ID:3Ey8sJwq
分割するという発想じゃなくて
「指定のRECTを含まないRECTを一つ除外する」という処理を
再帰的に指定のRECTと同じサイズになるまで繰り返せばいいんじゃね?
0226名前は開発中のものです。2009/05/02(土) 12:21:12ID:hJ68J4gV
面白い問題だと思ったが、メンヘラが出てきてしまった。
こういう奴は自分のネタ書き込みが実装できなくても、
他人のアイデアに延々ケチを付け続けるので、書き込むのが既にウザイ
0227名前は開発中のものです。2009/05/02(土) 12:28:05ID:1icd8u4m
なんだかよくわからない人がいますが
>>225さんありがとう、何とかなりそうです
0228名前は開発中のものです。2009/05/02(土) 13:38:05ID:3Ey8sJwq
ですよねー
実装もできないひとにアイデアだけ出されてもムカッとしますよね
すでに質問主さんも解決されてるようですが
念の為、簡単なソースを上げておきますね

http://www5b.biglobe.ne.jp/~mya_a/DirectX/main.html
0229名前は開発中のものです。2009/05/02(土) 14:23:04ID:n7KvWJCZ
すげー 前提無視すればお前の妄想でも
コード書けるだろうよw

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

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

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

お二方どうもありがとう、どうにか実装してみます
0232名前は開発中のものです。2009/05/03(日) 01:41:43ID:DXIo6YRI
スルースキルの高さに感心した
0233名前は開発中のものです。2009/05/03(日) 22:48:03ID:MdPMSTHC
考えられる最小構成でウインドウ作って画面描画とかは何もしないプログラムで
フレームレートを調べたらSleep(0)で2000前後、Sleep(1)で500前後でした

スペックは CoreDuo1.6Ghz GeForce7400go です
こんなもんでしょうか?
もっと凄まじい数値がでるかとwktkしていたのですが…
そして実際に2Dや3D描画をしてしまうと50以下の数値になってしまいます。
フレームスキップ無しではこんな程度なのでしょうか?
0234名前は開発中のものです。2009/05/03(日) 23:54:24ID:fxWPMoUR
みた感じノートのスペックだしそんなものでは?
0235名前は開発中のものです。2009/05/03(日) 23:56:09ID:Xp9/OEVA
はーどうぇああくせられーしょんできてないんじゃ
0236名前は開発中のものです。2009/05/04(月) 00:10:43ID:y/3FOMzs
>>233
Sleep(0)はともかく1の方に関しては、WinMainの頭にでも
timeBeginPeriod(1)って入れてみな。
0237名前は開発中のものです。2009/05/04(月) 00:12:46ID:SSrJcNUp
ちっぷせっとどらいばをさいしんにしてみるとか
0238名前は開発中のものです。2009/05/04(月) 00:57:21ID:zCXNz15P
最近のモバイル版ゲフォには省電機能っぽい何かが無かったっけ
0239名前は開発中のものです。2009/05/04(月) 06:49:48ID:ivjAH+EW
>>そして実際に2Dや3D描画をしてしまうと50以下の数値になってしまいます。
どれくらいの量の描画だか分からないけど、常駐ソフトを数本起動してる気がしる。
CoreDuo1.6Ghz GeForce7400goでちょっと描画したら60切るとか普通ないでしょう。
0240名前は開発中のものです。2009/05/04(月) 11:13:52ID:g3YbI5fi
電源プランを省電力とかにしてるとガツンと速度落ちたりするし
そもそもモバイル用GeFoってnVidiaとかPCショップが謳ってるほど性能高くないよ
メモリがDDR2だったりすることもあるしバス幅も64とか32とか
7400GoだったらCPUパワーでカバーできるFFベンチならある程度のスコア出せるけど
純粋にGPUパワーを図る3DMarkなら
ハイエンドノートの1/10とかデスクトップに比べたら1/15程度のスコアしか出ない
市販のソフトでもちょっとオブジェクトが増えたらすぐカクカクする
0241名前は開発中のものです。2009/05/04(月) 13:51:13ID:+gA/YHQh
[test]test
0242名前は開発中のものです。2009/05/04(月) 13:54:28ID:st/gePPw
やってみたやつを公開してスレの暇人にも試してもらえばいいじゃない
0243名前は開発中のものです。2009/05/04(月) 14:16:05ID:kjiUunSo
>>233
うちは、Core2DuoT7200no2GHz & GeForce7400goだが、
OpenGLでテクスチャ付ポリゴンを500枚くらい描画しても、
Sleep(0)で1000FPS超えるぞ。
60FPSに固定した場合は、一秒間に990msくらいはSleepしてられるよ。
0244名前は開発中のものです。2009/05/04(月) 17:48:30ID:NkdQPUap
CPUの拡張命令とかGPUの制御言語使えばよくね
もちろんハードの制約を意識しなければいけないが
02452332009/05/04(月) 20:31:34ID:VkgPC6sB
http://down11.ddo.jp/uploader/download/1241436560.zip/attatch

こちらが実行ファイルとそのソースファイルです
みなさんのPCでの数値とかも知りたいです
02462332009/05/04(月) 20:32:46ID:VkgPC6sB
パスワードは fps です
0247名前は開発中のものです。2009/05/04(月) 20:48:30ID:+gA/YHQh
3D描画は
0248名前は開発中のものです。2009/05/04(月) 21:03:12ID:/bA/nhvO
結果
Pen4 2.8G  1487 500
Core2 2.5G 3049 999
描画が無いから、frame per second じゃないなw

>>234が妥当な見解で、Sleep()はそう言う挙動をする物なんだな。
そして>>243から、233は自分の3D描画を見直す必要がありそう
02492332009/05/04(月) 21:28:13ID:VkgPC6sB
http://down11.ddo.jp/uploader/download/1241439738.zip/attatch

パスワードは fps です

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

ちなみにDirectX SDKのサンプルSkinnedMeshは550fps近く出ているのが謎です
プログラムの組み方で変わるのでしょうか?
0250名前は開発中のものです。2009/05/04(月) 21:32:35ID:kjiUunSo
>>246
>>243ですが、
(0)2150、(1)950
といったところ。

そちらの環境では描画が、垂直同期になってるとか?
なんにしても、ゲームで60fps固定で動かしたい、とかなら、
別にゲームループ用のスレッド立ち上げて、そこではメッセージ処理させずに、
次のフレームまでの残り時間をSleep()とかにした方がいいかも。
0251名前は開発中のものです。2009/05/04(月) 21:35:17ID:kjiUunSo
>>249
コキコの入れ違いか。
なぜかDLできないので試していないけど、
60fpsに落ちるなら、まず間違いなく垂直同期がONになってるね。
0252名前は開発中のものです。2009/05/04(月) 21:46:32ID:ivjAH+EW
>>245
1000と350だった。Athlon(tm) 64 X2 6000+(3.0GHz)なんだけど、しょぼん。
SetWindowTextが遅いな。プリントしたら10000超えたよ。

>>249
垂直同期させない場合、
d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE ;
にすると、そのままのが出るよ。
試してないけど。
02532332009/05/04(月) 22:09:47ID:kwNCoBb+
なる程、試してみます
皆さんの数値も参考になりました
ありがとうございます
0254名前は開発中のものです。2009/05/04(月) 23:27:39ID:NUebcNJ2
質問してもいいですか?
プログラムを勉強しようと思うのですが、最初は何から始めた方が良いんでしょうか。
本当に何も知らないので、できれば参考図書なんかをあげてもらえませんか?
お願いします。
0255名前は開発中のものです。2009/05/04(月) 23:33:39ID:kjiUunSo
>>254
まず言語はC++にしとけ。慣れてきてから色々制限のある言語だったら泣くに泣けないから。
コンパイラはVS2008EE無料あたりをインスコ
そしたらは「猫」でググる
乙。
0256名前は開発中のものです。2009/05/04(月) 23:53:33ID:v8MyF9Tp
初心者はC++は非常に難しいのでは
とりあえずはCを大分理解できないと厳しいんじゃね
と思うんだが俺が馬鹿すぎるのかなあ
0257名前は開発中のものです。2009/05/05(火) 00:18:25ID:2Wnl8Pwh
俺も初心者だけど、C++でクラスやテンプレートを読めるおかげで
ライブラリやネット上の公開コードとかの恩恵を受けられるのは大きいよ
0258名前は開発中のものです。2009/05/05(火) 00:31:54ID:0zW0QhP9
>本当に何も知らないので、
BASIC言語を学んでみなさい。
いちばん簡単だから 一生懸命にやれば出来る。
http://www.seiai.ed.jp/t2000/basic/index.html

ゲームを作れるようになった後に、
C言語に進むのも良いだろう。
プログラミングの経験があればC言語収得も容易になる。
0259名前は開発中のものです。2009/05/05(火) 10:17:25ID:g+u8xL7p
BASIC→C→C++→ってのが無理なく進める気がする

ふと気になったが、プログラムを勉強って何だ?
0260名前は開発中のものです。2009/05/05(火) 11:25:19ID:Wgvx6E2M
C++が出来ればCは出来たも同然じゃん?
JavaとC#とも親和性が高いし
0261名前は開発中のものです。2009/05/05(火) 11:50:36ID:RCDRu7ea
C++やってるつもりが、中はCだった、というのでいいんじゃない?
0262名前は開発中のものです。2009/05/05(火) 12:34:11ID:KNtrpfTu
まあベターC的にC++やるのはいいと思うけど分かりやすいところからやっていけばいいかな
0263名前は開発中のものです。2009/05/05(火) 14:12:53ID:a5WwpTFu
BASICやHSPを勧める奴が絶対に出てくると思ってたが、やめとけよ
変な癖がついて、後から苦労するぞ

Click & Createが超オススメ
0264名前は開発中のものです。2009/05/05(火) 14:42:12ID:TfjtoxKy
俺もC++でBASICみたいな使い方してないし
普通にC++から初めていいんじゃないかな。
勉強のための資料も一番豊富じゃだろうし。
0265名前は開発中のものです。2009/05/05(火) 16:05:04ID:RCDRu7ea
言語もそうだが、グラフィック関連はOpenGLだけは辞めておいたほうがいい。
vista用のintelドライババグで五回は死ねる。
0266名前は開発中のものです。2009/05/05(火) 16:30:26ID:KNtrpfTu
初心者からクラスの概念とか始めても大丈夫か
それにポインタとか絡んでくると混乱しないか
0267名前は開発中のものです。2009/05/05(火) 16:35:38ID:u1F14pk8
皆さん、レスありがとうございます。
>>258を読んで頑張ってみます!
0268名前は開発中のものです。2009/05/05(火) 17:05:27ID:2Wnl8Pwh
>>258を見て馬鹿にされてると思わないなら、何の問題も無い。
0269名前は開発中のものです。2009/05/05(火) 17:43:52ID:Pt0wvz3P
>>266

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

いまさら自分で試せんからなんとも言えんけど。
0270名前は開発中のものです。2009/05/05(火) 22:27:41ID:8gC2H/EA
RPGをVB6で作ろうと思っているのですが、C++を学習したほうがいいんでしょうか?

あとキャラクターのステータスですが、配列にして、
配列(0)がHP、配列(1)がMP…と言った感じでいいんでしょうか
30人ぐらいをストーリーにより入れ替わり立ち代わりの予定なのです
0271名前は開発中のものです。2009/05/05(火) 22:29:20ID:8gC2H/EA
すいません、配列は二次元配列の予定です

セーブ等はとりあえずCSVに書き起こしています
0272名前は開発中のものです。2009/05/05(火) 22:53:50ID:qQRAGi2L
Sleep(0)のメインループとメインループ部を別スレッドにして回した場合、
どちらも似たようなCPU使用率になります
CPU使用率を下げつつ、Sleep(0)と同等の速度を出す方法ってありますか?
0273名前は開発中のものです。2009/05/06(水) 02:13:24ID:Q/fdNOmi
メインループを適当な間隔のタイムイベントでコールバックすれば良い
0274名前は開発中のものです。2009/05/06(水) 02:38:15ID:9tyyI+jx
>>270
VB6は、たしかに当時は流行ったけど、後継VB.NETで構文がまるっきり変わっちゃったので、
いまから勉強するのはお勧めしない。

この板にもC++でRPG作ってる人居るだろうから参考にしてみ。
0275名前は開発中のものです。2009/05/06(水) 02:40:58ID:36dZu90f
>>270

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

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

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


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

基本的な考え方は間違ってない。
今後、自分で管理のしやすさ、変更のしやすさを試行錯誤していく事になると思うけど。
0276名前は開発中のものです。2009/05/06(水) 02:41:17ID:9tyyI+jx
>>272
メインループを別スレッドにして、尚且つ、そのスレッドの中でSleep(1以上)する。
固定FPSのゲームならSleep(0)で何か(timeGetTimeとか)を監視し続ける必要ないでしょ。
ゲームじゃなくて演算速度を出したいだけなら、CPU使用率最大にしてぶん回すべき。
0277名前は開発中のものです。2009/05/06(水) 03:33:19ID:AA8cKT/J
いきなりC++から初めてできるものなのかね
言語の習得に時間が懸かって挫折しなきゃいいがね
0278名前は開発中のものです。2009/05/06(水) 03:50:17ID:0TC6ScVO
出来ない奴は何やっても出来ない奴だよ
ゆとり教育の弊害とか誰もがしってるだろ?

挫折したら言語の所為、DirectXの所為、OpenGLの所為、
自分は非が無い完璧超人w
0279名前は開発中のものです。2009/05/06(水) 04:32:44ID:9tyyI+jx
>>277
MFCじゃなくてSDKなら丁度良いんじゃないかな。
VBは、GUI作るには便利だけど、ゲームだと結局WinAPIベースになっちゃうし。
0280名前は開発中のものです。2009/05/06(水) 05:31:19ID:AA8cKT/J
ならまずはC+DXライブラリ辺りなんじゃね
HSPならもっと簡単かもしれん
もっと手っ取り早く作るんだったらツールでいいんじゃね
0281名前は開発中のものです。2009/05/06(水) 07:25:56ID:8ey4uMo7
初心者にC++勧めるってのは、Perlを勧めるのと同義に等しい(頭痛が痛い)

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

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

入門なら昔のBASICに相当するLL系のスクリプト言語でいいだろ
例えば、PythonやRuby
■ このスレッドは過去ログ倉庫に格納されています