Windowsゲームプログラミング 質問スレat GAMEDEV
Windowsゲームプログラミング 質問スレ - 暇つぶし2ch703:名前は開発中のものです。
07/07/23 18:56:15 obqrT2AS
>>698

多分typoの事だろう。

type(タイプ)を間違ってtypoと打ってしまうという事から、
タイプミス(打ち間違い)の事をtypoというようになった。ネット造語。

tupoはさらにそれを間違ってるわけだなw

704:名前は開発中のものです。
07/07/23 21:00:20 P6bRa6tK
>>701
構成のプロパティで
マルチスレッド(/MT)を設定する必要があったようです
有難うございました。プロジェクト立てる毎に設定する必要があるみたいで><

705:名前は開発中のものです。
07/07/23 21:18:42 OHncBxK7
>>703
君は "typographical error" という言葉を知らないのか…。
普通の略語だよ。

起源を捏造するでない。

706:名前は開発中のものです。
07/07/23 21:30:22 NOkitHOI
そんなこと知らねーよ。
俺はもう帰るよ。じゃーな。
Good Bay。

707:名前は開発中のものです。
07/07/24 02:04:21 sikuFIAE
俺も昔はtypoという言葉自体が
打ち間違えから生まれたものだと思っていた。

詳しく言うと、俺はtypoをtypeのtypoだと思っていたが
実はtypoはtypeのtypoではなくtypoはあくまでtypoであり
typeのtypoではなかったというわけだ。

708:名前は開発中のものです。
07/07/24 14:36:55 P5Nke1SM
俺も昔はウコンという言葉自体が
打ち間違えから生まれたものだと思っていた。

詳しく言うと、俺はウコンをウンコのウコンだと思っていたが
実はウコンはウンコのウコンではなくウコンはあくまでウコンであり
ウンコのウコンではなかったというわけだ。


709:名前は開発中のものです。
07/07/24 14:39:28 /IGVAVxw
なるほど…

710:名前は開発中のものです。
07/07/24 15:02:37 4JveURiM
そのネタあずまんが大王であったなw

711:名前は開発中のものです。
07/07/24 16:46:34 ulpG0oGa
ウコン茶

ウコン茶ウコン茶ウコン茶ー!

712:名前は開発中のものです。
07/07/24 16:47:41 HKP8eDuv
ちんすこう

713:名前は開発中のものです。
07/07/28 04:27:37 HcOV0dC3
>>705-712
ワロタ

おれも>>707みたいに思ってた

714:名前は開発中のものです。
07/07/28 12:35:53 YBvHGNvO
win32apiの関数のみでサウンドの多重再生はできないのですか

715:名前は開発中のものです。
07/07/28 13:59:15 YBvHGNvO
win32apiの関数のみでmp3の再生はできないのですか

716:名前は開発中のものです。
07/07/28 14:00:55 xxhma4iV
サウンドの多重再生とやらが具体的に何をさしてるのかは知らないが
mp3を再生するようなWin32APIは無い

717:名前は開発中のものです。
07/07/28 14:21:10 IxcxR6Oi
いや、Win32APIでmp3の再生はできなくもないが。
RIFF/WAVE形式のmp3なら、codecがあれば普通のwavと同じように扱える。

718:名前は開発中のものです。
07/07/28 14:38:19 YBvHGNvO
ゲームプログラムでBGMに重なってSEの再生をしたいのです。
PlaySound関数を使うとSEを再生した瞬間にBGMが停止するです。
win32apiの関数のみでは不可能ですか

719:名前は開発中のものです。
07/07/28 15:30:34 SUTkO6b+
>718
waveOutほにゃらら
多重再生は自分で合成するか、デバイス複数作成
素直にDirectSoundお薦め

しかしPlaySound使ってるレベルだと、どちらもすぐには使えないだろうから
どっかからそれっぽいライブラリを拾ってくるのが無難か。

720:名前は開発中のものです。
07/07/28 18:45:47 YBvHGNvO
win32apiクソゲー

721:名前は開発中のものです。
07/07/28 19:30:47 Ju/q3U/F
ラスタスクロール(ラスタースクロール)のやりかた教えろ。
言語はC#な。

722:名前は開発中のものです。
07/07/28 19:32:51 Ju/q3U/F
訂正

ラスタスクロール(ラスタースクロール)のやりかた教えてください。
言語はC#です。

723:名前は開発中のものです。
07/07/28 19:33:13 ETJzMXw/
_,,...-―-- 、
::::::::::::::::::::::::::::::::ヽ
::::::::::::::;/~_゙ト 、:::.:ヽ  
;;:-''〈 (゜)》 ((゜)〉、::::ヽ
-- 、ニ ` -'●ー' __ヽ;l
/  |-、    ,|" ≡ー-i
ー--'、    ,|   ≡-‐'、.   ブブブッ
    `ー-‐'^ヽ、_,,-'"
ー-- 、...._    ,./、
 ゙゙̄ー-、,,-、゙`~-,'' 、  っ
     ♀ノ ̄ヾ、 )

724:名前は開発中のものです。
07/07/29 00:28:44 HALNhbN2
>>722
昔のハードウェアのように、水平帰線割り込みが実質できないので、
1ラインずつBlt処理を自前でやる。
つっても、ラスタースクロールとまったく同じようにはできないが。



725:名前は開発中のものです。
07/08/29 21:19:09 i/ZslKs5
スレが間違っているかもしれませんが。
自動更新ってありますよね。更新しろって何回も告知が出るので更新しようと自動更新をOFFからON
にしようとしたのですがなぜかできません。画面右下の自動更新アイコン?は赤に×が出ていてカーソルを合わせると(windowsセキュリティの緊急警告)
と表示されています。
コントロールパネル=自動更新=自動更新(推奨)を押してOKしてもセキュリティセンターでは(現在自動更新OFF)としか表示されません。。
いったいどうすれば更新できるようになりますか?手順なども教えていただけると助かります。

726:名前は開発中のものです。
07/08/29 22:19:53 yygPgouA
>>725
板もスレも、それどころかお前が生きていること自体間違っている。

727:名前は開発中のものです。
07/08/30 10:58:24 7oBvZD8x
>>725
そんなことより早く夏休みの宿題を終わらせろよ

728:名前は開発中のものです。
07/09/11 08:04:13 2U6h1G3A
Direct3Dを用いて2Dゲームを作るには、どんな書籍が参考になるでしょうか?
使える言語はVisual C++です。使用するツールはVisualStdio2005です。
Windows Vistaになってから、使えるDirectXのバージョンが一気に減った気がするので、
一からやり直すつもりで質問しました。どうもDirectX3辺りは使えなくなってる気がするので。

729:名前は開発中のものです。
07/09/11 08:59:18 CusrhUFG
>>728
DirectX3が使えないというのは、こちらの確認違いでした。
ただ、画面表示がうまく安定しない場合があるようです。
せめて、新しいバージョンのDirectDrawに移ろうと思います。

730:名前は開発中のものです。
07/09/11 10:02:50 p9+tiIKF
>>728
URLリンク(rina.jpn.ph)
URLリンク(www.plustarnet.com)

731:名前は開発中のものです。
07/09/11 10:11:34 y2fpbWOy
>>729
Direct3Dでやるんちゃうんかいw
win95でも動かしたい、とかじゃなければDirectDrawは忘れてしまへ。

DirectXの入門でお勧めの書籍は残念ながら一冊も無いよ。
ネット上の初心者講座で少し慣れたら、SDKのサンプルとドキュメントと
にらめっこしましょ。

732:名前は開発中のものです。
07/09/13 23:50:57 dy1+LsZF
WindowsVistaにはXPと同じ様に互換モードがありますか?

733:名前は開発中のものです。
07/09/14 00:03:06 2S1R1ogn
Vistaにもある事がわかりました。

734:雑草 ◆aHqF7Kbixc
07/09/18 15:29:38 2jyKZoZR
ちょうどスレタイと同じナノWindowsゲームプログラミングという本を
手に入れたので、コテがうざいかもしれませんが、当面、俺の棲家にしますね
どっこいしょ

735:名前は開発中のものです。
07/09/18 20:23:08 bsfYrxqb
質問スレだから、まぁ、質問以外の占有はほどほどにな。
報告は↓のあたりの別スレ使うとよろし。

総合発表&雑談スレッド その2
スレリンク(gamedev板)

■自主製作ゲーム:開発状況報告スレVer0.8■
スレリンク(gamedev板)

自作ゲーム評価スレ
スレリンク(gamedev板)

736:名前は開発中のものです。
07/09/22 09:05:38 eG/S/qml
しかし、回答してくれている人達は、すごいんだな。
9年くらい前に初めてパソコンを手に入れ、色々と
やってみたいと思って、ファミコン時代のゲームとか
作ってみたいって思って、5年前くらいにVC始めて
みたんだが、時々触ってはいるが、全く理解できん。
向き不向きってのは、確実に存在するんだな。


737:名前は開発中のものです。
07/09/22 15:10:06 Nv9puXYE
時々しか触らないんじゃ向き不向きよりも姿勢の問題だとおもうが
週一度しか受験勉強しないのに志望校入試を突破出来るか
# 出来る人は今の仕事をやめて塾講師になったほうがいい

738:名前は開発中のものです。
07/09/22 19:28:47 EF1GQE0Y
ぶっちゃけ、1から学ぶならどの言語がいいの?
JavaScript位しか知らないんだけど

739:名前は開発中のものです。
07/09/22 19:46:53 e/nAUSC/
一から学ぶなら一番メジャーなのがいいんじゃね?

740:名前は開発中のものです。
07/09/22 20:29:54 8vbW/Vis
C++でギャルゲーを作ろうと思っています。

吉里吉里やNscripterと比べると作業効率は落ちると思いますが、作れないわけではないですよね?


741:名前は開発中のものです。
07/09/22 20:34:36 vMmp2087
吉里吉里やNscripterはどうやって作られてるのか、とか考えた事はあるかな。
ちなみに俺はどうやって作られてるのか知らない。

742:名前は開発中のものです。
07/09/22 20:38:57 rVJog0B6
>>740
独学で東大を受けようと思っています。

予備校に通うより効率は落ちると思いますが、受からないわけではないですよね?

743:名前は開発中のものです。
07/09/22 20:56:41 8vbW/Vis
>>741
>>742
もう少し考えてから質問すべきでした。
ありがとうございました。

744:名前は開発中のものです。
07/09/22 22:27:24 dcM5hy1Z
プログラムの土台部分をしっかり作っておけば作業効率の低下は意外と防げる。


745:名前は開発中のものです。
07/09/23 03:42:38 UkTCu4VV
>>738
質問スレでもでるけど、テンプレいると思うw

・まず、本当に、プログラミングやりたいのか?
やりたい いいえ
 ↓
何かやりたいものある?



746:149
07/09/23 03:46:32 UkTCu4VV
途中送信スマソ
まずい、マイスリー飲んでるから寄ってる

まとまるまでまって



747:149
07/09/23 03:51:12 UkTCu4VV
質問スレでもたまにでるけど、テンプレがいると思うw

■まず、本当に、プログラミングやりたいのか?
やりたい                やりたいというほどではない・・・・
 ↓                    ↓
■プログラミングに関わるもので  ■何かやりたいものある?
何かやりたいものある?       ・ゲーム


あ、これ、dev-wikiで、リンク使って、ゲーブック的なチャートつくればいいのか。

748:149
07/09/23 03:57:03 UkTCu4VV


質問スレでもたまにでるけど、テンプレがいると思うw

■まず、本当に、プログラミングやりたいのか?
やりたい                やりたいというほどではない・・・・
 ↓                    ↓
■プログラミングに関わるもので  ■何かゲームに関するものでやりたいものある?
何かやりたいものある?       ・プログラム、グラフィックス、サウンド、デザイン論?
 こんなゲームが作りたい・・・    ↓             ↓    ↓   ↓
・シューティング             言語のところに戻る ツール紹介  参考図書紹介
・RPG
・2D、3Dアクション
・etc
 ↓
■プログラミングの経験はどのくらい?
・普段、PCに触らない
・Windowsの操作は普通にできるが、言語はダメ
・C言語は少し弄れる
・Flashや、JavaScript、HTMLならおまかせあれ
・学校、Pascalを(Lisp、Rubyなどでも置き換え)


あ、これ、dev-wikiで、リンク使って、ゲーブック的なチャートつくればいいのか。

749:名前は開発中のものです。
07/09/23 10:06:25 lnGUXs7Y
ヤク中は書きこみ自重しろ^^

750:名前は開発中のものです。
07/09/23 14:27:20 bSLXnT9y
(´・(ェ)・`)

751:名前は開発中のものです。
07/09/23 14:35:21 r6gFa1ze
>>744
土台部分とは、どんなところなんでしょうか?

752:名前は開発中のものです。
07/09/23 15:11:16 NnsUw8Q9
データ設計とかそのあたりじゃないかな。

753:名前は開発中のものです。
07/09/24 18:23:23 F1zfKH6a
簡単なフローチャートじゃね


754:名前は開発中のものです。
07/09/25 02:47:12 85BJKNUH
コード書きながらその場で仕様決めていくってのも乙なもんだぜ?

755:744
07/09/25 19:49:50 hUSWPDN5
>>751
よく行う動作は関数かクラスにするとか、メッセージループとは別にメインループを作るとかしておけば
それ以降は他の言語と大してかわらない手軽さで組めるということ。たぶん。どういう意図で言ったのか忘れた。
まあプロの人から見たらあたりまえの事かもしれん。

設計とかは、始めに決めた仕様に何ヶ月も変更がないなんて事は少ないだろうし、
簡単なフローチャートっぽいの書いて行き当たりばったりでも以外とできる。(でも行き当たりの広さは重要)

長くてごめん。カムサハムニダ。



756:名前は開発中のものです。
07/09/25 21:41:30 gKTzpnfz
>>755
なるほど。

わかりやすく説明してくれて有難うございました。



757:名前は開発中のものです。
07/10/01 02:39:12 94bxQlxq
質問です。
C/C++(studio2005)でDXライブラリを使いSTGを作っています。
実行画面以外の画面が前面表示(フォーカスがあたる)と実行画面の処理が停止し、
描写が行われなくなってしまいます。
実行画面以外にフォーカスが当たっていても描写を行うにはどうしたらいいでしょうか?

758:名前は開発中のものです。
07/10/01 03:51:03 rF9vpphy
>>757
わしがSetAlwaysRunFlagという関数の存在に気が付いたのはある晴れた夏の日のことじゃった

759:名前は開発中のものです。
07/10/01 05:55:23 94bxQlxq
>>758
神!

760:名前は開発中のものです。
07/10/02 03:44:03 qiphhWA+
ちょっと漠然とした質問なんだけど、
DirectXに、画像を指定した座標まで一直線に移動させる関数(又はそういう風に使える関数) ってある?
他の人の作ったアプリ見てると自前の関数じゃなくてそういうのがありそうな気がするんだけど、DirectX使った事がないので調べてもちょっとわからない・・・

具体的にはクリックした座標まで画像を一直線で移動させる みたいな事をやりたいんだが。

761:名前は開発中のものです。
07/10/02 04:02:46 2P50QdAP
ないある

762:名前は開発中のものです。
07/10/02 04:38:57 MQnyHAD7
それくらいならわざわざ探すより、普通に自分で作ったほうが早いと思う。
いや、ひょっとしたら本当にそういう関数があるのかも知れないが、
俺はなくても何一つ不自由してないし…

763:名前は開発中のものです。
07/10/02 17:40:18 ROz0Su05
>>760
DirectX関係ねえええええええ

764:名前は開発中のものです。
07/10/02 18:28:38 Nn+IKmjC
俺ならあったとしても互換性低そうだから使わん。
レンダリングに例外的な処理を入れたりオブジェクトの座標との整合性とったりで面倒。
一貫した流れじゃなくなるからデバッグもパンくず拾いみたいになって一苦労。たぶん。

765:名前は開発中のものです。
07/10/02 19:06:43 qiphhWA+
おkサンクス。
ならまだDirectXに手つけなくてもいいや。

766:名前は開発中のものです。
07/10/30 16:16:01 ffk6/ogh
質問です。
開発環境はVC2005Accademicで、
URLリンク(www.tnksoft.com)
ここを参考に自主勉強しています。

順を追って打ち込みコンパイルを繰り返して読みすすめていて、
18:ハッシュを使って高速探索
URLリンク(www.tnksoft.com)
にて打ち込みコンパイルしたところ
1>------ ビルド開始: プロジェクト: GameEngin(2005), 構成: Debug Win32 ------
1>リンクしています...
1>GameObject.obj : error LNK2001: 外部シンボル ""private: static class stdext::hash_map<class std::basic_string(中略)" は未解決です。
1>C:\(中略)Debug\GameEngin(2005).exe : fatal error LNK1120: 外部参照 1 が未解決です。
1>ビルドログは (中略)に保存されました。
1>GameEngin(2005) - エラー 2、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========

とエラーが出てコンパイルできません。
コンパイラの設定が問題ではと思っているのですがどうしても分からないので
解決の手助けをしてもらえると助かります。

(また、URLリンク(www.tnksoft.com)
にてダウンロードした雛形もコンパイルしてもexeFileが作成されませんでした。
このためコンパイラの設定ミスでは、と予想してます)

767:名前は開発中のものです。
07/10/30 21:25:51 A5Nc4Myh
よくて見てないけどコンパイラの設定じゃなさげ
ただ単にクラス内でstaticで宣言されているものが定義されて無いんじゃないかな
多分これかな↓
static hash_map<string, CGameObject*> itembox;
静的メンバ変数の実体がないって奴ね。

あと下のほうslnファイルでプロジェクト開いて
dllと実行ファイルがちゃんと生成されてたよ。.


768:名前は開発中のものです。
07/10/30 23:11:00 ffk6/ogh
あー、、、なるほど。修正して、コンパイル通りました!
下の方もよく見たら真っ黒画面が表示されるexeファイル生成されてました

助かりました、ありがとうございます

769:名前は開発中のものです。
07/11/02 17:31:53 I5N03pBP
質問ですがダビスタみたな競馬ゲームを作ろうとしてます。作るハードはPS2かPSPどとらかです
言語ですがCとC++がいいのでしょうか。PHPでも可能ですか?初心者でもお勧めな言語を教えて下さい。
後作るハードはどちらかいいか教えて下さい。よろしくお願いします。

770:名前は開発中のものです。
07/11/02 18:19:45 3oO9JYqE
【審議中】
    ∧,,∧ ∧,,∧
 ∧ (´・ω・) (・ω・`) ∧∧
( ´・ω) U) ( つと ノ(ω・` )
| U (  ´・) (・`  ) と ノ
 u-u (l    ) (   ノu-u
     `u-u'. `u-u'

771:名前は開発中のものです。
07/11/02 22:20:14 aw8yHlLW
【審議凍結】
    ______________
   /|//              / / /|
 //|/ /         // / /  |
 | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|.///.|
 |/ |   .∧,,∧.  ∧,,∧./// │   .|
 |  ∧∧(´‐ω‐`)(´‐ω‐`)∧∧.  .|   .| カチーン
 | (´‐ω‐).∧∧) (∧∧ (‐ω‐`) .│///|
 | | U (´‐ω‐`)(´‐ω‐`) と ノ ./| .   |
 |  u-u (l    ) (    ノ u-u / .|/// |
 |       `u./ '/u-u'       |  /
 |//    //    //    .|/

772:名前は開発中のものです。
07/11/03 02:29:20 9MaKXzD1
アクティブデバイスで静止モードっすか

773:名前は開発中のものです。
07/11/09 02:32:50 8pgH19Ou
WIN32APIでファイルから任意の一行を読み取りたいのですが
ReadFile()でファイル全体を読み込み改行コードから行を判別する以外に方法はないでしょうか?

もしかしたら根本から間違ってるかもしれないので確認のために・・・
WIN32APIの関数はC言語やC++の標準関数とは混ぜて使えませんよね?

774:名前は開発中のものです。
07/11/09 02:42:29 C1/XHZLg
>>773
基本的には混ぜても大丈夫。 CreateFile() して FILE* にキャストとか、
malloc() したメモリを HeapFree() とか、そういうのはダメだけどね。

775:名前は開発中のものです。
07/11/09 03:53:57 GHmrdBW6
データ型に関する質問です。

例えばSRPGにおけるHPなどのステータスが0~999の値しか取らない場合、
short と int のどちらで宣言すべきでしょうか?

・ 一度にステージにいるキャラクターがMAX30人程度
・ 戦闘に必要なキャラクターのステータスが30個程度

としたとき、メモリの使用量は2KB程度しか違わないように思えるので
高速に計算することを考えたら int の方が適切なのでしょうか?
ゲームの性質上、ステータスが毎フレーム変わるわけではありません。
この計算速度は無視できる程度でどうでもいいのでしょうか?

総じて下らない質問でしたらすみません。

776:名前は開発中のものです。
07/11/09 04:26:48 C1/XHZLg
>>775 URLリンク(www.kouno.jp)

777:名前は開発中のものです。
07/11/09 06:52:09 mfpq6ZYz
> 高速に計算することを考えたら int の方が適切なのでしょうか?
ですねえ。
いま時なら、その段階で、あえて「高速に」もこだわる必要性もないと思う。

とりあえず、intって感じでしょうか?

778:名前は開発中のものです。
07/11/09 19:46:52 bSdrwNRD
>>773
別の方法を挙げると、CreateFileMappingとMapViewOfFileを使う。
ファイルがとんでもなくでかい場合は、こっちの方が速いかもしれない。
もっと速度が必要なら、読みたい行の絶対位置をデータとして先に用意しておく。

>>775
そんなの悩んでも意味がない。intで桁が足りるデータは全てintでいい。
下手にshortを混ぜてアライメントが狂うと、全部intにするより遅くなるよ。

779:名前は開発中のものです。
07/12/22 18:12:15 BaXpb+cR
long double time;
QueryPerformanceCounter((LARGE_INTEGER*)&time);

これに問題はありませんか?

780:名前は開発中のものです。
07/12/22 18:38:31 x5AA/ezs
>>779
URLリンク(www.wdic.org)
らしいよ。
手元のVS2005で試したら同じサイズのようだが、
確実に定義されていないので怪しいかもしれない。

C++だったら、上の方に

template<bool A> struct RC_{RC_();};template<> RC_<true>::RC_(){}
#define CompileTime_SizeChecker(A, B) RC_<sizeof(A)==sizeof(B)> t##A##B

の二行を足して、

CompileTime_SizeChecker(time, LARGE_INTEGER);

とか書くと、サイズ違ってたらコンパイル通らなくなるから気づくよ。

781:名前は開発中のものです。
07/12/22 18:55:23 l4xnO5fs
実行ファイルの大きさを小さくするにはどうしたらいいのでしょうか?
配布されている同人ゲーム等を見てみるとクオリティの高いSTGで300KB程度とかなんですが、
自分の作ったプログラムはロゴ→ニューゲーム、コンティニュー画面を表示するだけで1MBにもなってしまいます・・・。
言語はC++でVC2005ExpressEditon使っています。

それとクラスとポインタの使用は実行ファイルのサイズに影響するのですかね?

782:名前は開発中のものです。
07/12/22 19:05:02 bmwbpkY2
>>781
デバッグビルドしたファイルじゃないだろうな?

783:名前は開発中のものです。
07/12/22 19:11:28 x5AA/ezs
でかい画像をリソースで埋め込んでたりして…。

784:名前は開発中のものです。
07/12/22 20:50:38 St6/82Xq
長さ一緒でも浮動小数点型に整数のバイナリ書き込むのは無しだろ

785:名前は開発中のものです。
07/12/22 21:31:16 l4xnO5fs
>>782
デバックですた(´・ω・`)
Releaseにしたら600KB程度になりました。ありがとうございます。
>>783
VisualC++2005ExpressEditionにはリソースエディタが付いてないみたいなので
リソースはしたことないです。

これでもサイズが大きいのはやはり作り方が悪いのかなぁ・・・


786:名前は開発中のものです。
07/12/22 21:42:12 oCBgFW/V
なんとかライブラリとか使ってるんじゃねーの

787:名前は開発中のものです。
07/12/22 21:42:22 x5AA/ezs
それはソースが見たいなぁ。
敵の出現テーブルとかハードコーディングで埋め込んでない?

788:名前は開発中のものです。
07/12/22 22:10:46 76aqh1yL
紙芝居ゲームとかぬるいRPGの場合
60FPSも確保するのは勿体無いと思うんだけど
OnPaintw@d)ldwmeek?

789:名前は開発中のものです。
07/12/22 22:47:56 x5AA/ezs
WM_PAINT ( OnPaint 呼んでるメッセージね) に合わせて描画して問題ないよ。

ただ、リアルタイムな処理を入れる場合、
垂直線回帰をタイマーに使った方が、楽だし、滑らかに動くので、
ループ回して描画し続けるのもありだと思う。

たとえばRPGなら、自キャラの移動や、背景、サブキャラの動き、
紙芝居ゲーなら文字を一文字づつ表示するエフェクトとか、
切り替え時のエフェクトとか、雨や雪のエフェクトを入れる場合。

ゲームって、止まっているように見えても、さりげないところ、
さりげない効果で画面が変化しまくるから、
イベントドリブンで組むのはあまり有利じゃないんだよ。
あくまでイベントドリブンを利用して奇麗に作りたいと思った場合、
ちょっとだけ難易度上がるので、自分のウデと要相談。

790:名前は開発中のものです。
07/12/22 23:17:00 76aqh1yL
なるほどー

791:名前は開発中のものです。
08/01/03 21:28:13 Dl+ms8yz
ところで質問なんだけど、
FPS60で画面更新するゲームは更新時にパッドの入力情報を毎度読み込んでるの?
それともゲームの実時間性にあわせてるの?
たとえば格ゲだったらfps60で毎度パッドの入力情報を読み込んでるとか、
紙芝居ゲームだったらfps60で何回の更新に一度の割合でマウスの情報を読みに行くとか。
こういうインターフェイス部のセオリーみたいなのってありますか?

792:名前は開発中のものです。
08/01/06 01:20:25 j9EhfGPR
>>791
ゲームによるんじゃないかな?

とはいえ、おれが組むときは、画面更新(draw)と、それ以外の更新処理(update)を分離して、
それ以外の更新処理を60FPSなら60FPSにして、そのときにパッド入力を全部読んでる。
パッド入力処理なんて、重くねえしな。

家庭用の格闘ゲームなんかでも、描画30FPSで、パッド入力60FPS(たぶんその他の処理も)のゲームとかあるみたいだよ

793:名前は開発中のものです。
08/01/06 01:22:02 j9EhfGPR
あと、3Dの可変フレームレートなゲームは作ったことないのでわからんのだが、
この辺が、くわしい

MOUSE TIPS - Gamer's Gadget Memo
URLリンク(gadget.tm.land.to)

794:名前は開発中のものです。
08/02/02 14:17:49 pld7JNV0
シナリオもある程度できた
イラストもある程度描けるようになった
さていよいよ。。。

これからゲームプログラミングをイチから覚えるなら
C#から入った方がいいですか?
関連書籍が少ない気がしないでもないですが。。。

795:名前は開発中のものです。
08/02/02 15:21:57 V9t8Hq3e
ジャンルによるんじゃね

796:名前は開発中のものです。
08/02/02 15:41:41 pld7JNV0
ジャンルはSRPGです
シナリオのあるシヴィザードもどきな作りです

797:名前は開発中のものです。
08/02/05 11:18:08 SuSx4cF9
>シナリオもある程度できた
>イラストもある程度描けるようになった
>さていよいよ。。。

BGMは?
SEは?

798:名前は開発中のものです。
08/02/06 19:57:00 lwQjFBy5
>>797
BGMやSEはフリー素材を探してみます

MSのサイトからVC# 2008 のEXPRESS EDITION を落としました
ガンバルゾ

799:名前は開発中のものです。
08/02/07 04:50:06 0WsdZlaN
がんがれ

800:名前は開発中のものです。
08/02/08 07:01:56 vAjuqD62
右も左も前も後ろも上も下もわからないので
Windowsゲームプログラミング(著:赤坂 玲音)
という本を買おうと思うのですが、
一般的なC言語の参考書でいうところの基本編ではなく
応用編のほうまで勉強しないと理解するのは難しいですか?

今は配列とかポインタとか構造体とかfopenぐらいの初心者用の参考書で勉強中です
アドバイスよろしくお願いしますm(_ _)m

801:名前は開発中のものです。
08/02/08 11:08:36 X3Tglhmn
>Windowsゲームプログラミング
内容は著者のサイトにあるWindowsAPIの解説に、テトリスとか
基本的なゲームを作る内容を加えたものなので、まずそっちを
読んでみれば良いかも。
C言語の入門書の次に読むには悪くないと思う。

ゲームを作る上での話(キーを押したら弾打ったり、タイトル
画面からシーンを切り替えたいみたいなこと)は、C言語関係の
本には載ってないので、自分の使用言語である程度の知識を
得たら、まずいろいろ読みまくるのが良いのでは。

読んでて分かんない部分があれば、その時点でネットで
調べたり教科書で覚えればいいし、具体的なサンプル見て
勉強していった方が飽きないし、頭に入りやすいと思う。

802:名前は開発中のものです。
08/02/08 18:41:14 s69uaGj+
> 今は配列とかポインタとか構造体とかfopenぐらいの初心者用の参考書で勉強中です
あと関数を書けるようになったら、C++だって大丈夫(C言語の機能しか使えないけどw

803:名前は開発中のものです。
08/02/10 10:37:35 cP4krxKj
アドバイスありがとうございますm(_ _)m

実際にサンプルをいじってみて、
わからないことや、やりたいことができたら
そのつど調べてみようと思います

804:名前は開発中のものです。
08/02/10 17:41:03 cP4krxKj
買ってきてから知った
第2版が26日に発売って…なんてこったい

805:名前は開発中のものです。
08/02/10 19:02:16 YRzw/q4P
26日までの時間を買ったんだよ!

806:名前は開発中のものです。
08/02/13 04:00:42 nKzj8Y4Z
今RPGを作っているのですが、オープニング画面、マップ画面、メニュー画面、戦闘画面などでキー入力や描画の処理が変わりますよね
自分が考えているのは今どの場面かを入れる変数を作って、

case WM_KEYDOWN:
    if(wp == VK_UP){
        switch(now){
          case OPENING: {処理;}
          case MAP {処理;}
        }
    }

といったものなのですが、「なんか違うなー・・・」と感じてしまいました
これ以外に良い方法ありませんか?

807:名前は開発中のものです。
08/02/13 04:21:06 vPNwDT7b
>>806 URLリンク(www.google.co.jp)

808:名前は開発中のものです。
08/02/13 09:55:04 Bwqd+W+c
enum { E_KEY_UP = 1, E_KEY_DOWN = 2, E_KEY_LEFT = 4 E_KEY_RIGHT = 8, };
int g_key_now;

case WM_KEYDOWN:
 if(wp == VK_UP){
  g_key_now |= E_KEY_UP;
  break;
 }
case WM_KEY_UP:
 if(wp == VK_UP){
  g_key_now &= ~E_KEY_UP;
  break;
 }
 
あとはopening処理、map処理の中でそれぞれg_key_nowの内容を見れ。

809:名前は開発中のものです。
08/02/13 13:47:09 nKzj8Y4Z
>>807-808
ありがとうございました
参考にします

810:名前は開発中のものです。
08/02/29 17:17:54 G8Sp5cnc

本来こうやって扱うデータを
t->x[ i ];

間違って
t->x;

こうやっちゃった時に何か知らせる手段はありませんか?


811:名前は開発中のものです。
08/02/29 17:26:18 GHm3FFF+
ここで聞いちゃう?

812:名前は開発中のものです。
08/02/29 18:07:59 lllhF3T4
C/C++でなく,NETを使うとか

813:名前は開発中のものです。
08/02/29 18:34:31 G8Sp5cnc
>>811
すいません
WinAPIでゲーム作ってたもので、スレ間違えてたかもしれないです

>>812
.NETって便利なんですか?
でもとりあえず今回は、WinAPIでやり遂げます

814:名前は開発中のものです。
08/02/29 22:53:31 wcRsgxJ1
>>810
その2つの型が違えば問題ないはずなんだけど。
C++ ならクラスを使って意図的に違う型にしてしまえばいい。

815:名前は開発中のものです。
08/02/29 23:28:26 G8Sp5cnc
>>814
if( t->x[ i ] == ○○ )  ○
if( t->x == ○○ )     ×

敵の移動の分岐をかいてて、
こういう記述ミスがあって
気づきやすい所だったから良かったものの、わかりにくい所だったらヤバいなぁとおもったのです
違う型にするっていうのは良くわからないです
けど、 == 判定だから、t->x 自身を使えないようにしないとかなぁっておもったり。
そもそもこんなところミスするようじゃダメなのかな・・・

816:名前は開発中のものです。
08/02/29 23:32:54 scJliyMv
関数一個書いたらステップ実行でテストする。
関数内部のパス(通り道)を全部通るように条件を変えてきちんとテストする。


817:名前は開発中のものです。
08/02/29 23:33:08 wcRsgxJ1
>>815
いやミスするのが悪いんじゃなくて、その2つのうち後者が明らかに間違いなのに
エラーにならないようにしてるのが悪い。

t->x[ i ] と t->x の型は何だ?
たとえば x が int [5] なら t->x[i] は int で t->x は int* になる。
int とも int* とも比較できてコンパイルエラーにならないものといえば
定数 0 ぐらいしか思い当たらないけど。

818:名前は開発中のものです。
08/03/01 05:42:59 PjSoEStG
class cmp
{
public:
operator int*()
{
return &a;
}
operator int()
{
return a;
}
int a;
};

こんなクラスじゃない?

819:名前は開発中のものです。
08/03/01 11:19:40 UIc4fn4M
>>817
Boolean型でした
すいません。なんでxにして書き込んじゃったんだろう・・・

ループ(){

  if( t->I[ i ] == FALSE )continue;

  //処理

}
t->I[ i ]がTRUEだったら
処理をさせるというところで、添え字を忘れていました。

820:名前は開発中のものです。
08/03/01 21:15:47 /NUBYqIN
>>819
FALSE が 0 なんだろうな。
C++ なら、配列を std::vector とか operator [] を持ったクラスに置き換えることで
添え字忘れをコンパイルエラーにできるよ。

821:名前は開発中のものです。
08/03/01 21:43:43 UIc4fn4M
>>820
検索してみたら凄い複雑でした。
が、
がんばってみます

822:名前は開発中のものです。
08/03/01 22:10:22 ESvEWD62
今時、生の配列なんてつかわねーよ JK

823:名前は開発中のものです。
08/03/02 11:02:54 xmvf+jZ6
>>822
そうなんですか~

でも、Vectorみたいな機能のある
ゲームによく使われる言語ってC++だけじゃないですか?

824:名前は開発中のものです。
08/03/02 15:52:37 GhRRsOcA
でも、の意味がわからない

825:名前は開発中のものです。
08/03/02 19:14:09 lVPKkR1+
作者も言われたんだろうか?
URLリンク(www.kent-web.com)

826:名前は開発中のものです。
08/03/02 19:15:07 lVPKkR1+
誤爆

827:名前は開発中のものです。
08/03/05 15:45:57 bPKCPzKB
>>824
今時と申されたので、C++やってない人はどうなのかなと思って「でも」と付けたのですが

828:名前は開発中のものです。
08/03/09 02:08:27 OuSoXFED
普通の配列はダメですかorz

829:名前は開発中のものです。
08/03/09 09:29:45 EAhmszDh
ダメというか・・・生の配列は、面倒くさくない?
スクリプト言語みたいに整備されてるわけじゃないし

830:名前は開発中のものです。
08/03/09 10:16:44 aQ0SDMkZ
生の配列って言うのが、静的確保した配列のことなのか、
vectorやlistでない単なる配列のことなのか


831:名前は開発中のものです。
08/03/13 15:09:01 d99ZfhW7
低レイヤーな言語での言語仕様に含まれる配列機能のこと

832:名前は開発中のものです。
08/03/13 22:56:00 Bu/r75Um
>>830
後者だろ

833:名前は開発中のものです。
08/03/15 15:13:57 Ih29OWzv
そんなに配列使わないかな。
俺はコンテナも使うけど配列も使う。
間に挿入したり要素数が状況によって全く異なる場合など
コスト面からコンテナを使うしかない場合も多いけど。

834:名前は開発中のものです。
08/03/20 10:03:34 EXQJqkak
配列というか配列演算子は使うでしょ。

HeapAllocで適当にメモリ確保して、配列演算子でアクセス。
後はほっとけばアプリ終了時に勝手にガーベッジコレクションされる。


835:名前は開発中のものです。
08/03/20 19:42:02 3UvZiAFC
Javaやってるとnewしたまんまほったらかしにするのは
道具をしまったりゴミをゴミ箱にまとめるのをサボってるようで
あまりいい気がしない。

836:名前は開発中のものです。
08/03/21 18:18:37 cEumy9Hm
>>835
アセンブラからCに入ったときはnew・deleteすら気持ち悪かったよ
メモリマップが書けなくなるから

Javaは純粋なメモリ以外のリソースはdisposeが用意されてることが多いし
あまり気にならなかったな、そういうもんだと思った

837:名前は開発中のものです。
08/03/21 20:21:50 ZTMinpqE
自前でガベコレ作れるのがC++。
まあ、STL使えれば十分なんだけどな、大概のケースでは。

838:名前は開発中のものです。
08/03/22 23:20:05 4IZtFb4c
確かに最初はmallocもどこから確保してくるのか不思議に思った。

839:名前は開発中のものです。
08/03/26 02:06:12 ldqMhhG3
なんという歴史スレ

840:名前は開発中のものです。
08/03/26 11:22:54 F88bQWhP
>>839
つまり、mallocやnewがメモリーをどんなアドレスで取得してるか、
といった事を調べる話題になるわけだな?

841:名前は開発中のものです。
08/03/26 12:06:51 EIOlO8Pg
>>838
それ言い出すと、ファイルハンドルが何処から発生するか気にするか?
といった話にすらなりかねん。

842:名前は開発中のものです。
08/04/28 17:01:51 RhBkZtBI
Basicから入ったから、Cで明示的にメモリ確保するのが気持ち悪かった
その後、Delphiやってたから、C++でメモリ確保しないクラスが気持ち悪かった

843:名前は開発中のものです。
08/05/08 23:18:51 SrRQ+rts
今作っているゲームはWM_CREATEでけっこうな量のファイルを読み込んでいるので、
Windowが表示されるまでにそれなりに時間がかかってしまいます。
誤って何度も起動してしまわないように、Nowloadingと表示させてから読み込みたいのですが、どのように書けばいいのでしょうか?


844:名前は開発中のものです。
08/05/09 00:49:24 haEAxt1Y
WM_CREATEじゃなくてゲームループで嫁

845:名前は開発中のものです。
08/05/09 01:00:00 PjWlUEdO
>>843
WM_CREATE PostMessageで適当なメッセージ(WM_USERとか)を投げる
WM_PAINT   初期化フラグが立っていなかったらNowloadingとだけ表示する
WM_USERとか 読み込み処理をする、適度にInvalidateRectとUpdateWindowを何度も実行する

ただ、必須スペックに想定してるマシンで5秒以上かかるようなら
ちゃんとイベント処理をこなせるようにしといたほうがいいよ
メイン処理が別スレッドならそれを先に開始するとか、タイマー系イベントでちょっとづつ読み込むとか

846:843
08/05/09 11:55:14 hS3O5d5Q
参考にして作ろうと思います。
ありがとうございました。

847:名前は開発中のものです。
08/05/10 23:33:42 3aq7UNCV
WM_USERよりもWM_APPがおすすめされている。
いずれにせよ、#define WM_INIT (WM_APP + 0)のように名前つけろよ。

848:名前は開発中のものです。
08/05/15 22:42:04 YwFUHQF5
というか、初期には簡単な画像読み込んでLoading画面表示して
フラグ管理して処理すれば別に問題なくね?

849:名前は開発中のものです。
08/05/16 03:17:36 LjZKGE9Y
WindowsXPのPC(メモリ256)で製作中のゲームをVista(メモリ1G)で動作テストしてみたのですが、
なぜかアニメーションの処理速度が半分ぐらいにまで落ちてしまいました。
WindowsAPIのタイマーを使ってアニメーションさせているのですが、これが原因なのか否かも良くわかりません。
なにか思い当たる点が有りましたら、ぜひ教えてください。お願いします。

850:名前は開発中のものです。
08/05/23 22:33:50 jPx0XBwI
VistaだとGDIが完全にソフトウェア処理になるから
描画速度自体は確実に落ちるよ

851:名前は開発中のものです。
08/05/23 22:56:52 7QUeOTrk
DDB使ってなけりゃ関係ねぇよ

852:名前は開発中のものです。
08/05/24 09:35:06 WyL1Uf6E
>>851


853:名前は開発中のものです。
08/08/03 23:47:04 eUp/hKRM
C++とDirectXでゲームを作っています。
音楽と効果音の再生をDirectSoundでやろうと思ったんですが、
調べているとVistaはDirectSoundに対応していないと書いてたんですが、
XPとVista両方に対応させたいとしたら、音は何で鳴らせばいいでしょうか。

854:名前は開発中のものです。
08/08/04 03:26:18 Zbdzki70
ハードウェア固有のサウンドエフェクトとか考えなけりゃ普通にDirectSoundでおk
もしくは最近のSDKに追加されたXAudio2とか検討してみ。
ゲーム用途ならこっちの方が使いやすいと思う。

855:853
08/08/04 22:34:14 ro4/+LzM
どうもありがとうございます。
全く音が鳴らないというわけではないんですね。
使う機能はパンとボリュームと再生位置の通知だけなので、
このままDirectSoundを使うことにします。

XAudio2も時間があるときに見てみます。

856:名前は開発中のものです。
08/08/07 18:45:06 6PyoA3BU
C++でゲームを作っています。
爆弾をセット、一定時間後に爆発 という動作をさせたいんですがどのように表現すればいいのでしょうか?
一定時間後に、という部分がいまいちうまくいかなくて・・・よろしくお願いします

857:名前は開発中のものです。
08/08/07 19:20:43 jIGgrvQE
メインループの中で一定時間をカウントして、イベントを起こす。

858:名前は開発中のものです。
08/08/07 21:31:09 afI3YDNl
GetTickCount( )というPC起動から何ミリ秒経過したかを返すAPIがある。
爆弾をセットした時に時間を取得し、爆発時間を加える。
GetTickCount( )で取得した時間が爆破時間を過ぎたら爆発。

859:856
08/08/08 15:38:46 czGsvGYo
お早いアドバイス、ありがとうございます。
やはりタイマー関数のようなものを使わないといけませんか・・・
いまいち使い方がわからないのでifやforを駆使していました。
タイマー関数のようなものを使わないというのはやはり勧められないものでしょうか。

860:名前は開発中のものです。
08/08/08 16:32:11 w2HHE1WB
俺ならキャラごとにカウンターもたせて、1フレームごとにカウントさせるなぁ。

タイマー使ったら、例えば処理落ちしたときとかに爆発タイミング変わったりして困るんじゃない?

861:名前は開発中のものです。
08/08/08 17:31:57 79kn61a7
作るゲームにもよる
例えば等速処理したいときとかどうする

862:名前は開発中のものです。
08/08/08 21:56:47 w2HHE1WB
ああなるほど。
処理落ちしても、ゲーム速度は変わらない設計なら当然タイマー使用のほうになるのか。

863:名前は開発中のものです。
08/08/10 14:19:34 u1XmHl+X
俺もやりたいんだけど1フレームごとにカウントってどうやるの?

864:名前は開発中のものです。
08/08/10 18:37:29 EcZynTEp
while (1) {
  ゲームループ実行();
  VSYNCを待つ();
  カウント変数++;
}
基本的にはこれだけ

865:名前は開発中のものです。
08/08/10 23:22:09 u1XmHl+X
>VSYNCを待つ();
ってなんですか?

866:名前は開発中のものです。
08/08/11 18:10:04 g7MMOmCL
もうwindowsプログラミング以前の低次元のことだから他のスレいきなよ


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch