DXライブラリ 総合スレッド その7at GAMEDEV
DXライブラリ 総合スレッド その7 - 暇つぶし2ch491:名前は開発中のものです。
10/12/21 14:08:15 FBnJPMIL
大丈夫?マイクロソフトのペイントだよ?

492:名前は開発中のものです。
10/12/21 17:53:21 3HpC4+2F
>>487
画像作ったソフトの問題かも。
DXライブラリはちゃんと読んでくれるけど、アルファ付きPNGを
作るのは結構メンドい気はするし。
たとえばPhotoshopでも、PNGはαチャンネルを透明情報として
書き出してくれないし(TGAとかだといけるけど)。
キャンバスの透過部分が透明情報になる仕様だったと思う。

…というか書き出せるソフトないような気もする。

493:485
10/12/21 18:22:52 6gKaW02Y
もともとは拾い物の素材のアルファ付きPNGだったのですが、GIMPで読み込み&書き出しなおししたら問題なく読み込めました
お騒がせしてすみません

494:名前は開発中のものです。
10/12/21 19:03:17 DCmOZWo0
ゲーム用の画像編集に超オススメなPictBear☆
TGAとかマイナーな形式が使えないのが玉に瑕だけど

495:名前は開発中のものです。
10/12/21 20:49:15 dprW29GT
EDGE+SAI+PictBearな俺

496:名前は開発中のものです。
10/12/21 21:08:41 ze0dEhj7
blenderでレンダリングvixで複数画像の結合padieで減色edgeで修正
時々gimpで何かを作成

497:名前は開発中のものです。
10/12/22 06:00:04 7o5DLzcA
あっそう

498:名前は開発中のものです。
10/12/22 07:51:06 8pODspNp
Paint。NETなんてーのもあるでよ
なにげに対応形式が多めで結構良い

499:名前は開発中のものです。
10/12/22 09:15:31 e2TM10Kv
bullet対応マダー?

500:名前は開発中のものです。
10/12/22 13:35:34 MUMnoYe4
ゲーム内で作ったポリゴンを指定の座標におこうと思ったら
各頂点の座標と、法線のデータを行列かなんか使って変更して
DrawPolygon3Dで描画するしかないってことでOKですか?

MV1SetMatrixみたいな使い方をする関数は、
用意されてないので自作するでOKですか?

501:名前は開発中のものです。
10/12/22 13:37:28 IvccD/N9
召喚魔法か

502:名前は開発中のものです。
10/12/25 00:06:34 PX+W0VeN
PlayMusicMem()でMIDI以外(具体的にはMP3)って再生する方法ある?

兄弟分のPlayMusic()はMP3も可能とあるから、出来そうな気もするんだけれど、
LoadSoundMem()でファイルを読んでも再生されないし、LoadMusicMem()だと読み込めない。


503:名前は開発中のものです。
10/12/25 14:00:42 WWDdjJ+m
PlayMusicMemじゃ出来ないんじゃないかな……
多分、その周辺の関数はメディアプレーヤーの機能を呼び出してるだけだと思う。

そっちの方では、MIDIはファイルサイズが小さいからメモリに読み込んでから再生するのがデフォだけど
MP3だとメモリに展開すると数十メガバイトっていう膨大なメモリが必要になっちゃうから、そういう機能が用意されてない。

DXライブラリだとLoadSoundMemでデコードしてPlaySoundMemで再生する機能があるからそっち使うしか




ところで自分も質問なんだけど、DXライブラリの機能だけで同一の効果音を多重再生することってできないのかな……?


504:名前は開発中のものです。
10/12/25 14:47:38 PX+W0VeN
>>503
ありがとう。
どこかで覚えておいて、振り分けるか…

505:名前は開発中のものです。
10/12/25 15:05:02 IK10YbI2
>>503
鳴らしたい数だけハンドル用意して複製していくしかないと思う

int hSnd[2];

hSnd[0] = LoadSoundMem("Sound.way");
hSnd[1] = DuplicateSoundMem(hSnd[0]);

//同時に同じ音が鳴る
PlaySoundMem(hSnd[0], DX_PLAYTYPE_BACK, TRUE);
PlaySoundMem(hSnd[1], DX_PLAYTYPE_BACK, TRUE);

506:名前は開発中のものです。
10/12/25 22:21:50 B5WG/q/C
>>505
ありがと
やっぱりそうなのか……
勝手にそれをやってくれるようにライブラリラップするかな

507:名前は開発中のものです。
10/12/26 02:17:47 RaeFlSg/
>>506
1つのサウンドに対してハンドルをたくさん用意して、複製で埋めておく
再生要求が来たら、たくさんある中から再生中でないハンドルを探して再生する
毎回ハンドル確保してると数が増えると重い…
メモリは食うけど処理は軽い、他にいい方法がありそうな気もするけどw

508:名前は開発中のものです。
10/12/26 02:28:14 vG7GTSX0
あらかじめ多重化したサウンドを作っておくとか
範囲攻撃とか迫力を出したいものはそうしようかなと思ってる

509:名前は開発中のものです。
10/12/26 15:39:56 +OSey92T
NumSitei系隠し関数ってもう無くなっちゃったんだっけ?

510:名前は開発中のものです。
10/12/28 15:04:59 ePTPtX4H
グレップも出来ない男の人って…

511:名前は開発中のものです。
10/12/28 22:04:16 mz1FzYji
GetPixelで得られる色コードの仕様ってどうなってますか?
0x00rrggbb
になってるかと思ったんですが違うようですね。

512:名前は開発中のものです。
10/12/28 22:06:45 mz1FzYji
もしくは色コードからr成分g成分b成分を取り出す関数はありますか

513:名前は開発中のものです。
10/12/28 22:20:47 mz1FzYji
softimageとか言うのを使ったらできたわw

514:名前は開発中のものです。
10/12/28 22:20:48 WLmNs1bp
色コードはプレイする環境によって変わってくる仕様なので解析するのはちょっと面倒だと思いますが
GetColor2という、ドキュメント化されてない関数でRGB値は取れるみたいですよ
extern int GetColor2( int Color, int *Red, int *Green, int *Blue ) ; // 画面モードに対応した色データ値から個々の3原色データを抜き出す

515:名前は開発中のものです。
10/12/29 18:15:22 G0RIxFok
SaveDrawScreenToBMPってサイズ制限ある?
250x8000くらいで試すと強制終了したんだが

516:名前は開発中のものです。
10/12/29 18:23:36 G0RIxFok
サンプルコードも貼っとくか。SaveDrawScreenToBMP関数の先で強制終了している。

#include "DxLib.h"

// プログラムは WinMain から始まります
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
ChangeWindowMode(TRUE);
if( DxLib_Init() == -1 ) { return -1 ; }

int W = 256;
int H = 8000;

int screen = MakeScreen(W, H);
SetDrawScreen(screen);
DrawBox(0, 0, 0,2000, GetColor(0xff, 0x00, 0x00), TRUE);
DrawBox(0,2000, 0,4000, GetColor(0x00, 0xff, 0x00), TRUE);
DrawBox(0,4000, 0,6000, GetColor(0x00, 0x00, 0xff), TRUE);
DrawBox(0,6000, 0,8000, GetColor(0xff, 0xff, 0x00), TRUE);

SaveDrawScreenToBMP(0, 0, W, H, "output.bmp");

DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}

517:名前は開発中のものです。
10/12/29 22:06:16 SA3aEaKL
おまえのスクリーン環境がそのサイズに対応してないんじゃないのか?

518:名前は開発中のものです。
11/01/01 06:38:58 jkvcK/MP
あけましておめでとう
今年もDXライブラリにお世話になります

519:名前は開発中のものです。
11/01/07 11:39:21 8D9xj+sX
新年早々バージョンアップきてるな

520:名前は開発中のものです。
11/01/07 16:38:30 ksMhJX/5
ConnectNetWorkってスレッドで実行すると
GetLostNetWorkが取れなくなるだね...
接続を非同期でやる場合どーすりゃいいだ?


521:名前は開発中のものです。
11/01/09 15:07:16 riAmXpMv
最近じゃ動画サイトを利用したアピールも多くなってきたけど、
実際、プレイ動画のキャプチャってどうやってる?

フリー版に挿入されるロゴが目立ちすぎる(ゲームの重要情報と被る)とか、
相性が悪いのか上手くキャプチャ出来ないとか、そんなのばっかりだ。

522:名前は開発中のものです。
11/01/09 15:19:11 DphiUSmk
WMEのPC用の高品質VBRかアマレココ(外部コーデック使えばロゴ出ない)で撮ってaviutlでエンコこれ最強

523:名前は開発中のものです。
11/01/10 04:40:56 98VKFiRq
「ふぬああ」と「SCFH」で録って「aviutl」でエンコ

524:名前は開発中のものです。
11/01/10 15:27:41 3Lnx4KMp
あとはコーデックかな。
プレイ動画に適したシェアウェアってだけに、アマレココのコーデックはかなり使いやすいと感じた。

525:名前は開発中のものです。
11/01/11 18:50:23 ahTB1MTp
ロゴ入ったらすげぇ安っぽい

526:名前は開発中のものです。
11/01/12 23:59:17 IX6UcwL7
アマレココ使ってる。
アマレココ + AMV3ならロゴも出ないし。

527: [―{}@{}@{}-] 名前は開発中のものです。
11/01/13 17:14:55 gTveb5NK
ひょっとしてLoadGraphで読み込む画像のサイズが大きい程、
実際に描画するサイズに関わらず、その画像の描画速度が落ちる?


528:名前は開発中のものです。
11/01/13 18:27:31 KfPfaEX5
日本語でおk

529:名前は開発中のものです。
11/01/13 19:04:43 d0pyhd8k
DrawRectGraphとかLoadDivGraphの話っしょ

530:名前は開発中のものです。
11/01/14 10:40:57 uYO5nSwA
同じ画面で使う画像はできるだけ一つに纏めた方が一般に描画は速くなる

531:名前は開発中のものです。
11/01/14 10:58:09 npwMhXbr
この場合は、そのまとめた画面が大きくなれば描画が遅くなるのか、って質問だけどね。

ちなみに俺は知らん。

532:名前は開発中のものです。
11/01/15 23:02:05 EUnBWKwY
320×320の画像ファイルを32x32で表示すんのと
64×64の画像ファイルを32x32で表示すんのとでは速度違うの?
ってことじゃね

533:名前は開発中のものです。
11/01/15 23:26:11 /eCruyJX
二日も経つのに質問の正しい意図の説明がないとか。

534:名前は開発中のものです。
11/01/15 23:45:05 9C1Hf1/U
サブ関数中でWaitKey中にウインドウが閉じられたりして終了されたときに
プロセスが残るんだけどどうすればいいのかな

535:名前は開発中のものです。
11/01/15 23:46:02 9C1Hf1/U
ミスった
×WaitKey ○WaitTimer

536:名前は開発中のものです。
11/01/16 00:51:04 c7K8Nuaq
サーセン自己解決しましたww

537:名前は開発中のものです。
11/01/16 02:19:17 1qe/HxOd
解決したなら、結果も書けよ

538:名前は開発中のものです。
11/01/17 20:35:56 CJVx/DXa
どうせDxLib_Endしてなかったって落ちでしょ

539:名前は開発中のものです。
11/01/20 20:32:07 fPAiy4d6
やっぱり画像サイズが小さい方が高速なようだぞ

URLリンク(msdn.microsoft.com)(v=VS.85).aspx
>テクスチャー サイズ
>テクスチャー マッピングのパフォーマンスは、メモリーの速度に大きく依存します。
>アプリケーションのテクスチャーをキャッシュする際のパフォーマンスを最大限に高める方法がいくつかあります。

>?テクスチャーを小さくする。テクスチャーが小さいほど、メイン CPU の 2 次キャッシュに格納される可能性が高くなります。


540:名前は開発中のものです。
11/01/21 01:10:43 W9RTX3n7
その解釈で大丈夫か?
俺はその下に書いてあることの方が気になる

541:名前は開発中のものです。
11/01/21 02:09:10 wzKupONA
サイズを統一しろとか、正方形のほうがいいとか?

542:名前は開発中のものです。
11/01/23 08:33:51 q+kP4u3W
>>540
キャッシュに格納されればその方が高速だろうからいいんじゃね?

543:名前は開発中のものです。
11/01/23 17:06:43 nWmDlCxz
>>539
サイズが小さいほどキャッシュヒットしやすくてGPU処理が高速になるのは確かだけど
それでテクスチャの切り替えが増えたらCPUネックになって結果遅くなるけどね。

32x32のテクスチャ数十枚用意してチップ並べるよりは1枚のでかいテクスチャに並べたほうが全体では遥かに速い。

544:名前は開発中のものです。
11/01/23 17:13:16 f1kvmWCd
UV座標の変化で画像の切り替えをシミュレートした方が速いってこと?

545:名前は開発中のものです。
11/01/23 17:21:24 nWmDlCxz
DXLibレベルの3Dや2DでGPUパワー使い切るなんて事はまずないし大半がCPUネックだからね。

546:名前は開発中のものです。
11/01/23 17:39:36 H9c8Zqw4
2Dゲームは意外にグラフィック関係の負荷が大きいぞ
CPUのほうが遥かに余裕がある

547:名前は開発中のものです。
11/01/23 18:35:47 nWmDlCxz
>>546
確かにシェーダーバリバリ使ってればそうなる可能性もあるね。
シェーダー使うでもない弾幕STG程度ならGPUだけ安物とかじゃなきゃ逆転しないけど。

548:名前は開発中のものです。
11/01/23 19:38:33 IvAtt79g
DXライブラリ使っててネックになりがちなのはソフトウェアイメージだと思う
シェーダ使いまくってもGPU使い切るのは難しいけど
それと同じことをCPUでやったらすぐ遅くなる

549:名前は開発中のものです。
11/01/23 20:25:57 0zyiUhkk
シェーダ使うような人ってDirectXを直に叩いてそうなイメージあるんだけど、なんでDXライブラリわざわざ使うん?
やっぱり楽だからなのかな

550:名前は開発中のものです。
11/01/23 22:43:09 Z/kvqeQz
DXライブラリで作成 → DirectXも勉強しよう → 最低限の自作ライブラリ完成 → あれ、DXライブラリでよくね?


551:名前は開発中のものです。
11/01/23 23:46:26 KWKtz5p6
ディアドラエンプティは多分GPU使い切ってた・・・

552:名前は開発中のものです。
11/01/24 01:28:52 wjN8XYMH
2d画像大量描画で重くなるのはCPUのせいなん?

553:名前は開発中のものです。
11/01/24 09:19:47 KVnOBkQs
>>552
弾幕STG程度の数ならCPU。
あるいはGPUがウンコな場合じゃないかね。

CPUがCore-i7だったら最低でもGTX460くらいは乗ってないとアンバランスだよ。

554:名前は開発中のものです。
11/01/24 12:14:25 1+lLPttT
弾幕STGでネックになるのは描画のほうだ
自機と敵弾だけのヒットチェックなら、PEN4でも千発くらい余裕
あんまりいい加減なことばっか言うなよ・・・

555:名前は開発中のものです。
11/01/24 12:55:34 ML4bQUJ7
答えの出ないことで言い争うなよにゃー
PCのスペックのバランスも、ゲームの処理の組み方も人それぞれなのに決まった答えなんてあるわけないじゃないかー

とりあえず、今でもユーザが多いと思われるペンティアム4&格安のグラボのPCなら、
描画も処理もボトルネックになりうる
ついでにメモリコピーも

弾幕シューティングだって見やすいように弾を大きさ順にソートしたりすると通常なら2000発位でメモリコピーの限界がくるし、
ソートするのをポインタに置き換えてもせいぜい8000発
あたり判定も、自機だけじゃなく地形や弾消し効果のある装備やギミックとかあったらそれともしないといけない。
(弾消し効果のあるオブジェクトをばらまくボムとか)
そうなるとCPUがキツい
描画もいろいろ派手にやろうとしたら当然キツくなるし

それぞれのゲームでどこがネックになってるのかは知らないけど、
一概にまとめてしまうことほどいい加減なことはないと思うよ

556:名前は開発中のものです。
11/01/24 21:43:33 0k067Wc4
MSXのゲームを再現したものを作っている俺には関係の無い話だ

557:名前は開発中のものです。
11/01/24 22:36:16 KVnOBkQs
>>554
一応言っておくとDrawの内部処理はCPU時間だからな。

558:名前は開発中のものです。
11/01/25 07:36:37 NxzPZBrJ
>>556
もちろんSCREEN 1/2, 1/4の再現で作ってるんだろ?

まさかSCREEN5なんて甘えてないよな?

559:名前は開発中のものです。
11/01/25 08:42:34 yWcoJylW
MSXは憧れの高機能マシンだったなあ

560:名前は開発中のものです。
11/01/26 04:12:58 ytMOHDuv
MSXがMicroSoftXの略だったって話を考えると
MSのXもDirectになったり箱になったりして随分遠くまで来たもんだ

561:名前は開発中のものです。
11/01/28 23:21:46 PzwgS6UW
>>559
MSXが憧れってじゃあお前は何を使ってたんだw

562:名前は開発中のものです。
11/01/29 00:07:20 9LQ+YQfG
ファミリーベーシックだろう

563:名前は開発中のものです。
11/01/29 00:32:54 ZIlDfxx5
せめてVIC-1001で。

564:名前は開発中のものです。
11/01/29 08:54:49 dRLffL3I
X68をメインマシンにしている時に、MSX2が安くなったので買ってみたけど、あの仕様に頭抱えて結局プログラムはしなかったなw

565:名前は開発中のものです。
11/01/31 21:56:46 4ery4aCN
描画を別スレッドに投げたいんだけど、上手くメインループと同期がとれないんだけども、どうしたらいいだろう

566:名前は開発中のものです。
11/02/01 03:48:11 79+HC0cS
別スレッドに投げるってそういうことじゃないの?

567:名前は開発中のものです。
11/02/01 11:31:33 A4LUO7Q2
描画みたいな終了までずっと継続してるもんを同期取ったら意味なくね?

568:名前は開発中のものです。
11/02/01 20:20:20 A8vzk+3q
>>565
URLリンク(msdn.microsoft.com)
条件変数はVista以降用らしいから使わないほうがいいかもね

569:名前は開発中のものです。
11/02/01 22:47:16 rB9l6gPH
初心者です。
色コードについて教えてください。

 int Cr ;
 Cr = GetPixel( X , Y ) ;

と書いて取得した色コードってどういう数値になってますか?
ちなみに、座標(X , Y)の色は白です。

570:名前は開発中のものです。
11/02/01 23:33:01 Jeb3TyFU
それ俺がこの前質問したジャン
俺はsoftimageでやったよ

571:名前は開発中のものです。
11/02/01 23:38:10 WZpjV7+o
FF(255)が全部入るんじゃないの?
(255 , 255 , 255)

そのまんまだけど…

572:名前は開発中のものです。
11/02/01 23:50:03 rB9l6gPH
>>570
すみませんでした。
>>67

>白ドットのコード取得すると    .      GetPixel(x, y) = 0x 00 .FF FF FF

って書いてましたね。
でも、 0x 00 .FF FF FF の00とFFの間に . を入れるとエラーになるんですが・・・。

質問を変えます。
>>569でカラーコードを取得したCrを文字列として表示させるにはどうしたらいいですか?

int Cr2;
Cr2 = GetColor( 105 , 255 , 255 ) ;
// 文字列の描画
DrawString( 0 , 0 , "Cr" , Cr2 );

こういう風に書いて、Crの中身のカラーコードを見たいんですけど、
これだと、Crっていう文字列が表示されるだけです。


573:名前は開発中のものです。
11/02/01 23:59:47 Jeb3TyFU
いや俺は>>67じゃねえよ別のレスだよ
どうもGetColorで取得した数値は1バイトずつRGBAとかの順で入ってるわけじゃないみたいなんだよ
内部で色をどう扱ってるのかわかんないんだけどバイト単位じゃなくて数ビット単位で色情報を格納してるっぽいんだよな
ほんとちょっと込み入ったことをやろうとすると途端に行き詰るライブラリだよな

574:名前は開発中のものです。
11/02/02 00:07:05 QU1cQpLp
>>573
重ね重ね失礼しました。
失礼ついでに、もう一度>>572の後半の質問をさせていただきます。
getpixelでCrに取得したカラーコードが内部的にどうなっているか、
確かめるにはどうすればいいですか。


575:名前は開発中のものです。
11/02/02 00:12:24 bu2pPj/w
デバッガで止めたらわかるでしょ

576:名前は開発中のものです。
11/02/02 00:56:18 QU1cQpLp
わかりません

577:名前は開発中のものです。
11/02/02 00:58:26 QU1cQpLp
あ、なんか語弊のある言い方でした。
わかんないってのは、デバッガで止めても分からないっていう言う意味じゃなくて、
どこをどうやれば取得した数値を見れるのか分からないっていみです。

578:名前は開発中のものです。
11/02/02 01:07:44 IbX6J+DE
>>514    自分のレスだけど><

579:名前は開発中のものです。
11/02/02 01:23:53 IDILEoBM
社内ニート乙

580:名前は開発中のものです。
11/02/02 01:47:04 Ps3b48Dw
16進数で表示するだけだと思うが

581:名前は開発中のものです。
11/02/02 02:17:28 QU1cQpLp
完璧な初心者で、大学もIT関連とはまったく関係ないところをでているのですが、
DXライブラリを使ってゲームを作りたいと思います。
プログラムを深く理解したいとか、自由にプログラミングできるようになりたいという願望はありません。
ただ、イメージするゲームが出来上がりさえすればいいのですが、
参考になるホームページなどあったら教えてください。

582:名前は開発中のものです。
11/02/02 02:27:51 LfAwm6D2
DXライブラリの公式サイト

にしても自由にプログラミングできるようにならずに
イメージどおりのゲームが作れるとは思えんのだが。

583:名前は開発中のものです。
11/02/02 03:25:08 uDDktiLn
>>581
完璧な中級者になってください

584:名前は開発中のものです。
11/02/02 04:48:25 8khvOAMj
>>581
上級者になれとは言わないけど、C言語の基本もできてなさそうなレベルで
「画材の使い方は知らないけど自分の思い通りの絵が書きたいです! どうしたらいいですか?!」
とな

585:名前は開発中のものです。
11/02/02 07:42:19 r0Z7INQe
>>581
プログラミングの習得を特に目標とせず、単にゲームを作りたいだけなら、
RPGツクールやNScripterに代表されるゲーム作成ツールも選択肢に入れたほうがいいかも。

特定ジャンルに特化したツール(RPGツクール等)から、汎用的なゲームが作れる物(MMF2など)、
無料のものから有料のものまで、幅広く揃ってる。

これ以上はスレ違いなんで、質問スレに行ったほうがいいかもしれんけどね。

586:名前は開発中のものです。
11/02/02 19:23:38 TCBQkI8b
>>581
ゲーム作りたいだけならHSPのほうが楽だと思う

587:名前は開発中のものです。
11/02/02 19:31:23 bu2pPj/w
習得が簡単なのは確かだけどHSPを"使う"のは難しいぞ
複雑になってくると低レベルすぎて追いつかなくなる

588:名前は開発中のものです。
11/02/02 19:44:15 QU1cQpLp
>>585
ネット対戦が前提なので、どの言語やスクリプトで作るのがいいか聞いたらVc++を紹介されたわけです。
というか、質問スレじゃなかったんですね。

589:名前は開発中のものです。
11/02/02 20:01:33 hzv/tgOd
HSPで作られた良ゲーも多いんだけどな
ガンデモニウムとかパチュリとか
スレチだけど


ところで、OGGとかのBGMを再生時の読み込み時間を待たずに再生する方法ってないのかな……
メモリに全部読み込む以外で

590:名前は開発中のものです。
11/02/02 20:07:20 Ps3b48Dw
それも俺が質問したジャン
ストリーム再生でやれ

591:名前は開発中のものです。
11/02/02 20:09:51 3KL3OrrJ
ストリーム再生は普通にリファレンスに書かれてたと思うんだが……。

592:名前は開発中のものです。
11/02/02 20:22:30 3VQRK4Ax
ツクールとかに当てはまらないジャンルならC#+DxLibがオススメ
言語を選ぶ時はエディタの機能も考慮に入れたほうが後々幸せになるよ

593:名前は開発中のものです。
11/02/02 20:41:28 hzv/tgOd
うぉ、音再生関係のトコしか見てなかった
今見つけたありがとう

594:名前は開発中のものです。
11/02/02 20:59:52 +8ZX/yRT
>>592
あ? VS2010disってんの?

595:名前は開発中のものです。
11/02/02 21:26:32 bu2pPj/w
C#もVSファミリーだろ
ためしにVC#触ってみたらいかにVC++が時代遅れか分かるよ
どっちがいいとかではなくてあくまでIDEの出来の話ね

596:名前は開発中のものです。
11/02/02 22:13:17 TCBQkI8b
>>587
作りたいゲームの規模によるが個人制作うレベルならHSPで十分だと思う
それで物足りなくなったら他の言語やればいいし

597:名前は開発中のものです。
11/02/02 22:38:30 Jp9xxVEL
>>594
VS2010でC++のサポートが厚くなったとか?

598:名前は開発中のものです。
11/02/02 22:47:54 +8ZX/yRT
>>597
入力補完もストレスないレベルにまで上がったし、十分
2008のは産廃だったけど

599:名前は開発中のものです。
11/02/02 23:13:16 Jp9xxVEL
へー、今度C++使う必要性ができたら使ってみるわ

600:名前は開発中のものです。
11/02/03 01:54:23 9LpGik7P
C++は難しいね
心が折れそう
C#に転向する事も考えるべきか

601:名前は開発中のものです。
11/02/03 06:42:07 Y3/6o9hp
>>572
全くスルーされてた俺のレスにレスが付いてたので驚いたw
. は間隔調整の為に入れただけだから無視してくれw

602:名前は開発中のものです。
11/02/03 06:48:28 Y3/6o9hp
>>572
"Cr" じゃなくて "%X" なら表示されるんじゃね
違ったらC言語のprintf文のとこでも参照してくれ

603:名前は開発中のものです。
11/02/03 06:52:12 Y3/6o9hp
C系なら初心者ならCでやっとけばいいんじゃね
HSPでもいいけど

604:名前は開発中のものです。
11/02/03 07:29:31 eEyTX7bP
Cだと標準ライブラリがちょっと悲しすぎるぞ
Windowsでやってるなら素直にC#がいいと思う
DXライブラリは面倒になるが・・・

605:名前は開発中のものです。
11/02/03 07:35:00 eEyTX7bP
C#のダメなところは.NETに完全に依存しちゃうところ(プログライミングはやりやすいけど)
ほかにはメモリの使用量を抑えるのが難しいのはあるけど、最近のマシンでそんなの気にして制作遅れたりバグ入れたりするぐらいだったらGCに頼ったほうがよい
C++をきちんと使えるのは才能のある人だけだよ
CやC++の資産がある場合は自分のわかる範囲で使うってのはあるけど・・・

606:名前は開発中のものです。
11/02/03 08:28:54 lL8C3R3E
まともな経験があるマなら各言語プラットフォーム毎の経験と資産は
きちんと蓄積&管理されてるはずなので、
ケースバイケースで言語プラットフォームは自然に切り替えるでしょ
なんでもかんでもこれ!なんてのは現実的じゃないし

607:名前は開発中のものです。
11/02/03 08:54:08 /gPXlpFb
C#はデコンパイルできちゃうから嫌い

608:名前は開発中のものです。
11/02/03 13:58:09 fGyqttfC
ゲーム関連の本がだいたいC++で書かれてるから
プログラム素人だけどC++勉強しながらやってる俺みたいなのもいる

609:名前は開発中のものです。
11/02/03 15:00:34 bDkYlLGV
C++でポインタ使いまくりのプログラミングに慣れた自分にはC#でゲームを作るのが難しそうに思えてしまう……
弾幕STGみたいなオブジェクトを大量に生成するゲームならC++で、そうでない大人しいゲームならC#でもいけそうなイメージ

C++はなんでもできる&書いた通りに動作してくれるってのが大きいと思う
メモリとかも無駄に使用しないし、慣れれば高速なコードか書きやすい
web上のドキュメントや書籍が多いのも強み

610:名前は開発中のものです。
11/02/03 15:14:13 Hk0Hmg4J
C#では構造体が値型だから弾幕とか大量に生成するものに役立つかもね
クラスでもあらかじめ用意しておけばいいだけだけど

611:名前は開発中のものです。
11/02/03 17:51:32 6H4JqMlQ
C++わからなくて投げ出した奴がC#なら使えるとは思えないな
オブジェクト指向とかきちんと理解した上で使う分には
C#の方がずっと使いやすいしライブラリも充実してて楽だけど
そこに行くまでの難易度はそんなに変わらん気がする
むしろC#はライブラリ使うのにもオブジェクト指向を強制されるから最初に覚えることはC++より多いような

612:名前は開発中のものです。
11/02/03 18:42:39 56AassLl
>>611
どんな理由をつけてもC++が難しいC#が易しいという事実は変えられない
C++が困難なのはメモリ管理とメモリ周りのバグ問題とシステムの不安定化
配列範囲オーバーなどエラーチェックも貧弱すぎたり、すぐに発症しない潜在的なバグも多いから対策が難しい
そもそもオブジェクト指向はそんな難解なものじゃないと思うけど、何でそんなもので躓くのかわからん
.NETのクラスや構造体なら2~3時間勉強すればすぐに習得できる、大学受験の勉強に比べれば簡単なものだ

613:名前は開発中のものです。
11/02/03 19:04:03 gm3wvLOR
>すぐに発症しない潜在的なバグも多いから対策が難しい
たとえば?

614:名前は開発中のものです。
11/02/03 19:22:23 eEyTX7bP
C++は簡単にやばいコードが書けちゃうのと、例外周りが洗練されてないと思う

あと、LINQとラムダ式はいいぜ!
ラムダ式はBoostにもあるみたいだけど、使いやすそうには見えない

オブジェクト指向なんてこだわる必要ないと思うな
クラスライブラリの扱いは慣れたほうが良いけど

615:名前は開発中のものです。
11/02/03 19:33:35 3u282UvH
C++はSTLとboost使ってなんぼ
テンプレートは良いな
DXライブラリは算術系がだるいから他のライブラリから引っ張ってきたら楽

616:名前は開発中のものです。
11/02/03 19:43:45 1Y7LXctB
テンプレートは深入りしないのが大切
C++は手段が目的化しがち

617:名前は開発中のものです。
11/02/03 21:34:09 nMZv1rw7
C++よりC#が簡単てネタかと思ってたが本気か
クラスを理解しないと使えないはずだけど
ベターCみたいな使い方なのだろう

618:名前は開発中のものです。
11/02/03 21:49:29 RrMzr2Df
なんとかしてC#は難しいと言うことにしたいんですね

619:名前は開発中のものです。
11/02/03 21:56:17 1Y7LXctB
ゲーム作り自体の方がよっぽど難しい
言語なんか道具、理解してはじめてスタートライン

620:名前は開発中のものです。
11/02/03 22:18:07 Hk0Hmg4J
最期まで作る忍耐力が問題。RPG作ってた筈なのにいつの間にか放置してるわw

621:名前は開発中のものです。
11/02/03 22:19:16 zXV2l6v9
どっちが難しいかなんて人によりけりだろ。
俺にとってはメモリ管理なんかよりオブジェクト指向のほうが厄介だった。
ただ、初期の段階では、C++のほうが単純だから、
取っ付き易い気はする。まあ、C#使ったことないんだけどさ。

622:名前は開発中のものです。
11/02/03 22:56:55 Bd1QwGmt
ゲームが作れりゃいいんだよ、とC++でBASICみたいな組み方しかしてない俺が言ってみる。
オブジェクト指向? なにそれ。

623:名前は開発中のものです。
11/02/03 23:53:40 oJ9LxkAh
何で作るかじゃなくて何を作るかだと思うわ

624:名前は開発中のものです。
11/02/04 00:41:23 597nw0QH
ナニで作るかは重要じゃない。
でもナンで作るかは重要だぜ。

625:名前は開発中のものです。
11/02/04 00:47:31 tSG+uAMN
C/C++以外カス

626:名前は開発中のものです。
11/02/04 00:57:03 gYkXmix/
C++か・・・これまでの負の遺産を全部捨てたら使ってやってもいいよ

627:名前は開発中のものです。
11/02/04 00:58:12 dtLxRZPd
何が悪くて何がいいのか分からない俺はとりあえずC++を勉強している

628:名前は開発中のものです。
11/02/04 01:05:58 DD99IIri
複数やったほうがいいよ
思い込みだけで他の言語叩く子にならないように

629:名前は開発中のものです。
11/02/04 01:11:49 597nw0QH
Cやアセンブリを学んで、コンピュータの基礎を理解したり、
JavaやC#を勉強してオブジェクト指向やクラス化の重要性に気付いたり、
PerlやPythonに触れて目的ごとの向き/不向きを感じ取ったりすることはあるかもね。

630:名前は開発中のものです。
11/02/04 02:05:25 3/Y06AUg
マルチですいませんが、分かりましたら教えてください。

          /|
         /  |
       /   |
      /     | x
    /      |
   /        |
 /θ        |
  ̄ ̄ ̄ ̄ ̄ ̄ ̄ 
      y        

この角度、θを求めるためには

θ = atan2 ( y , x ) ;

って書けばいけるかと思ったんですが、だめでした。
------------------------------------------------------------------------
atan2
Error:オーバーロードされた関数"atan2"の複数のインスタンスが引数リストと一致します:
------------------------------------------------------------------------
って、エラーがでます。どう修正すればいいですか?( )の中身がおかしいんでしょうか?

631:名前は開発中のものです。
11/02/04 10:56:35 nHohQiTe
ちゃんとコードを書きなさい
どうせx,yの型がintだからとかそういうのじゃないの

632:名前は開発中のものです。
11/02/04 11:29:10 597nw0QH
図のx,yの位置については触れたほうが良いのかしら?

633:名前は開発中のものです。
11/02/04 11:44:14 FnunGuWc
言語の話になるといつも学習論や効率論になるけど
世の中EXCELやRPGツクールなんかでSTGとか作るような奴だっているんだから
どんなもの使っても作りたい物を完成させた奴が勝ちだと思う

634:名前は開発中のものです。
11/02/04 12:52:26 uMhav2M7
マルチポストですかやれやれ

635:名前は開発中のものです。
11/02/04 13:25:29 IKcKTpst
>>633
確かに同人ならどんな開発環境を使おうと自由だけど
>>611みたいな嘘撒くのは辞めたほうがいい、初心者や入門者が可哀想だ
どうあがいてもC#・Java・VBなどの方が難易度は低い、C++自信なくて諦めても前者で十分やっていける

636:名前は開発中のものです。
11/02/04 13:35:23 tJPYGZbh
初心者には嘘かどうかの判断基準もまだ無いんだからお前も同類だけどな

637:名前は開発中のものです。
11/02/04 13:36:36 dPpvdfF6
初心者はC#やJAVAから入れってのはどこでも言ってることだしな

638:名前は開発中のものです。
11/02/04 14:20:17 nHohQiTe
だいたい、絶対的に”初心者向けだ”と言い切れる言語なんてない
目的によって変わってくるし、言語の難易度もひとつの指標に過ぎない。

ただ、簡単なゲーム作りや、多くの人が思うアプリ製作を目的にするなら、
GUIを非常に作り易いC#やJava、VBで始めるべきだろうな。

まあでも、C++でオブジェクト指向わかんねって投げ出した奴は、
たとえC#をやったとしても出来ないとは思う

639:名前は開発中のものです。
11/02/04 14:38:04 MVi9WYrf
実例を交えたわかりやすいドキュメントが沢山ある言語こそが「初心者向け」という持論
初心者に必要なものは言語の簡単さよりも、最初の壁をいくつか超えるためのやさしい解説だと思う

初心者ならC#やJAVAから、ってのはゲーム意外の一般的なプログラムでのことなんじゃないかな
C++以外はゲーム制作の為の解説サイトとかかなり少ないし

640:名前は開発中のものです。
11/02/04 14:41:03 CU+f2z6I
よくわからんなぁ。
初心者の話してるんだよな?

俺はC++とDXライブラリでゲーム作ってるし作ってきたが、実際のとこC++を使いこなしてるわけじゃない。
初心者に毛が生えた程度だ。けど、何の問題も出ていない。

例えば>>612の言ってるメモリ管理だのメモリ周りのバグだの、なんて全然考慮してないし存在すら知らない。
むしろそういう事を気にするようになったら上級者だよな?
初心者にはそんな事全然関係ないよ。

初心者にとって易しいってのは、システムまわりの安全性なんかじゃない。
覚える事が少ない段階でも動く物が作れる事。そして、手軽に勉強できる(資料が簡単に手に入る)事だよ。

641:名前は開発中のものです。
11/02/04 15:17:25 E/T+upxq
C#やJavaなどの方が難易度は低い、というのは(覚えることが少なくて済む)という
意味じゃない
むしろ C++の方が覚えることは少なくて済むような気もする

C#やJavaの場合、覚えたことをそのまま使うパターンでのプログラミングが多い
それだけ高レベルのライブラリやらオブジェクトやらが揃ってる
→それらの使い方を覚えなきゃならんから、覚えることが多い

C++の場合、覚えたことを組み合わせて応用するというプログラミングが要求される
→だから、サンプルコードがたくさんあると楽できる
もちろん(C#には応用なんて要らない)とは言わないけどな


642:名前は開発中のものです。
11/02/04 15:19:45 +mRmK1/Q
>覚える事が少ない段階でも動く物が作れる事。そして、手軽に勉強できる(資料が簡単に手に入る)事だよ。
これはもっともな正論だね。
しかし、これさえも出来ない初心者が多くいるのは事実だ。

643:名前は開発中のものです。
11/02/04 15:31:20 4gaOamZV
事実だ(キリッ

644:名前は開発中のものです。
11/02/04 15:32:36 B/8/xRi6
DXライブラリは遊びながらC/C++覚えるにはいいんでないかな
コンソール並におまじないが少ないから学習の邪魔にならない
C#でもC#+XNAとかになると完全に初心者お断りだよ

645:名前は開発中のものです。
11/02/04 15:41:20 zvmJIej4
>>640
お前の作ったプログラムを公開するとき
このプログラムは予期せぬ動作を起こす可能性があるため
自分のパソコンが壊れてもいい人だけ実行してくださいって注意書きをちゃんと付けろよ。

646:名前は開発中のものです。
11/02/04 15:43:37 FTwi59ne
boost使おうとするともれなくテンプレート、メタプログラミング、
ジェネリックの知識が必要になるんだけどね
まあ最初が楽かどうかで選ぶならツクールとかになっちゃうから言語の比較は意味ないな

647:名前は開発中のものです。
11/02/04 15:45:42 nHohQiTe
最低動作環境― OS : WindowsXP SP2 以上
でいいだろ

648:名前は開発中のものです。
11/02/04 16:19:24 cCo0ykp3
HSPでいいと思うよ

649:名前は開発中のものです。
11/02/04 16:25:18 v+xsDxji
>>646
別に「もれなく」ではないだろ

650:名前は開発中のものです。
11/02/04 16:39:47 B/8/xRi6
テンプレートなんてマクロに毛が生えただけ
所詮言葉遊びのパズル

651:名前は開発中のものです。
11/02/04 17:13:25 FTwi59ne
>>649
詳しくどうぞ

652:名前は開発中のものです。
11/02/04 17:16:28 bvXT0uLK
>>651
別にBoostはそんなに敷居高くないぞ・・・

653:名前は開発中のものです。
11/02/04 17:21:27 FTwi59ne
ああ「もれなく」って言葉が気に入らなかったのか

654:名前は開発中のものです。
11/02/04 17:50:00 bf3eC1dG
CとC++がごっちゃになってんじゃね
Cは簡単、>>640が良い例、でもメモリ管理は必須だぞ
C++全開で書かれたソースは難しいが
ほとんどの場合Cから初めても進むにつれC++寄りになるから続ければ勝手に読めるようになる
webで勉強するならC/C++が一番資料多い
DXライブラリ+Cは初心者におすすめできると思うぜ
んで、さらに時がたつとC#でツール作成してるはず

655:名前は開発中のものです。
11/02/04 18:08:50 nHohQiTe
なってないだろ。
DXライブラリのサンプルコードもC++だし、
ほとんど大多数がC++で開発してると思うぞ。


まあ、ほとんどの、C++の入門サイトも入門書も、
Cから受け継いだ構文・機能の説明を省いてるから、
必然的にCを学ばなきゃいけないのが現実かもしれんが。

656:名前は開発中のものです。
11/02/04 18:54:22 MVi9WYrf
龍神録のトコなんかC++使ってるのに書き方がまんまCなんで、
クラスもオブジェクト指向もSTLもBoostも使わなくてもあれくらいのモノは作れるってののいい見本だと思う

別にゲーム作るのにオブジェクト指向もBoostも必須なわけではないし、
そんなのが必須になってくるくらいの規模の大きい作品を作ろうとするのは初心者には無茶
使えれば便利だけどね

C++はCに機能が追加されたものなんだから、無理に追加されたものを使おうとしなければ、
C++がCより難しいってことはないと思う

657:名前は開発中のものです。
11/02/04 19:14:23 gYkXmix/
話が噛み合ってないな。寝言で会話してるみたいw

658:名前は開発中のものです。
11/02/04 19:22:22 lLkvF9Gs
噛み合ってないなw
そりゃ使ってるのはC++だろw

659:名前は開発中のものです。
11/02/04 20:05:12 CU+f2z6I
>>654
>でもメモリ管理は必須だぞ

メモリ管理って言うけど、具体的に何をするのかピンとこない。
大事なのはわかるんだけどさ。

俺はオブジェクト指向わからんし、クラスの使い方すらも理解していない。
主に使う変数はほとんどグローバルで配列の数も全て固定。
ポインタもどうしても必要な部分以外使ってない。

エラーが起こるとしたら配列範囲オーバーか0除算くらいで、その程度ならなんとでもなる。

あとはDXライブラリで読み込んだ画像データ等を必要に応じてDeleteしていく、くらいしか気をつけてない。

660:名前は開発中のものです。
11/02/04 21:12:04 6/uiWO3/
メモリ管理というと
win98ぐらいの時には
メモリークリーナーが便利だったな

661:名前は開発中のものです。
11/02/04 22:25:14 N2iHbnIF
メニュー画面やステータス表示など、決まった場所に数字や
文字列を表示するXとYの位置を直にソースコードに書き込むと
頻繁に位置を変更する時ビルドに時間がかかったり
後でわかりにくくなるので、テキストにずらっと位置情報をまとめて
それを読み込んで使っています
しかし位置情報というのは細かいものまで含めてたくさんあるので
「こんなものまでいちいち読み込んでやるべきなのか?」
と疑問に思うことがあります
皆さんはどうしてますか? 私のやりかたはおかしいでしょうか

662:名前は開発中のものです。
11/02/04 22:47:43 bHk+Uq52
>>661
着眼点はよいです
ソースコードに埋め込まないほうがよいのは確かです(最低限マクロか定数として分離させるべき)
複雑になってくると自分でも混乱しますけど、それをうまくやる方法ってのは正解はないです
一定の開発スタイルを決めるとそれなりに整理はできるんですが・・・

663:名前は開発中のものです。
11/02/05 01:16:00 a1DliHej
ゲームつくりの最中にそういうこと考える人はだいたい完成させられない

664:名前は開発中のものです。
11/02/05 03:59:26 0SOpPPRW
>>659
メモリ管理とは違うけど、とりあえずグローバル変数を極力使わないところから始めてはどうか。
これくらいなら、Cの入門書にも書いてあるレベルだし、慣れれば手間ですらなくなるし。

>>661
小規模開発なら、細かい数字は外部に置かなくても、そこまで問題にはならないと思うよ。
ただし、>662の言う通り、#defineなりconstなりで分離させておくべきだと思う。

>>663
休憩中とか散歩中とか仕事中に考えればいいのよ。

665:名前は開発中のものです。
11/02/05 10:11:08 LqlwHybZ
DXライブラリで文字を書いて、ワードとかメモ帳に出力する方法ってしらない?

666:名前は開発中のものです。
11/02/05 10:18:58 0SOpPPRW
>>665
ワードやメモ帳に、文字列を食わせる方法ってあるのかな。
一旦テキストファイルに出力するのが簡単なんじゃない?


667:名前は開発中のものです。
11/02/05 10:29:33 97+pwl5O
ワードならCOM経由であらゆる操作が出来るけどC++からだとクソ難しいので.NETかスクリプト言語推奨
メモ帳ならキー送るしかない

668:名前は開発中のものです。
11/02/05 10:31:13 LqlwHybZ
直接ワードやメモ帳に出力できなくてもいいんです。
DrawString を使うと、画面に文字が描画されますが、
それをコピーペーストしてワードに貼り付けることが出来るならそれでもかまわないんです。
実際はできません。
私はまったくの初心者なので、質問がおかしいところもあるかもしれませんが、
>>666の テキストファイルに出力する っていうやり方を教えてもらえないでしょうか。
どういう関数を使えば出来ることなんでしょうか?

669:名前は開発中のものです。
11/02/05 10:38:37 97+pwl5O
クリップボードに入れるにはWindows APIのSetClipboardData関数を使う
ファイルへの出力は、DXライブラリの関数を使ってもいいけど普通はC++の標準ライブラリの
入出力機能を使う
どちらにしてもスレ違い

670:名前は開発中のものです。
11/02/05 10:54:09 fuYn973K
>>668
ファイルへ書き出すなら fopen, fprintf, fclose

クリップボードへ入れたければ
GlobalAlloc,GlobalFree, GlobalLock,GlobalUnlock,
OpenClipboard,EmptyClipboard,SetClipboardData,CloseClipboard
を使うといいよ

671:名前は開発中のものです。
11/02/05 10:57:01 LqlwHybZ
ありがとうございます。
利用できる関数がそんなにあったんですね。

672:名前は開発中のものです。
11/02/05 21:47:08 zsx+Wg5G
>>659
タスク用のワークエリアを確保したり開放したりしないんだろうね
最初にがばっと確保して、タスクごとに使いまわす

673:名前は開発中のものです。
11/02/05 22:05:24 GZLq5iGw
それは古に廃れたというタスクシステムのことですか?

674:名前は開発中のものです。
11/02/05 22:07:15 n/4Fp6g/
またタスクシステムバカが来たか

675:名前は開発中のものです。
11/02/05 22:19:11 op8JGqIp
そんなメモリの節約に必死になるなんて、
PSPのソフトでも開発してんのか

676:名前は開発中のものです。
11/02/05 23:11:04 7xJ6Lxp5
PSPは酷かったな

677:名前は開発中のものです。
11/02/05 23:41:09 LazTXNwj
PSPでは金玉を回転させるアプリしか作らなかったな

678:名前は開発中のものです。
11/02/05 23:56:58 5PjJbGzB
ちなみにメモリ管理ってメモリを節約するためじゃないからな


679:名前は開発中のものです。
11/02/05 23:58:41 5PjJbGzB
訂正

>ちなみにメモリ管理ってメモリを節約するためじゃないからな

ちなみにメモリ管理ってメモリを節約するためだけじゃないからな


680:名前は開発中のものです。
11/02/05 23:59:53 LazTXNwj
メモリ管理という言葉が漠然としすぎていて、
具体的にどういった事をメモリ管理というのか実例を説明してほしいですね

681:名前は開発中のものです。
11/02/06 00:42:48 hi6mskVF
newしてdeleteするってのもメモリ管理、というか普通こっちの意味じゃね?

682:名前は開発中のものです。
11/02/06 00:44:00 edmoP5Oc
sharedptrさいきょう!!!

683:名前は開発中のものです。
11/02/06 00:47:12 Bcoc3jNp
ポインタにNULLを入れて何回でもdeleteしてやる

684:名前は開発中のものです。
11/02/06 00:50:45 Bp6r7tC9
newって何でOSが管理してくれないんだよ

685:名前は開発中のものです。
11/02/06 00:51:42 bBxVkAP5
初心者がC++を扱うのはメモリ管理をしないといけないから難しい、
って主張だったのに、初心者はnew・deleteは使わないと思うんだけどな……
だから話がループするのかな

686:名前は開発中のものです。
11/02/06 00:55:29 hjXl231Y
C++初心者じゃなくて、new,delete初心者と呼ぼうw

687:名前は開発中のものです。
11/02/06 01:21:28 KavCN3Ib
いまだにnew, deleteの必要性がわからなくて使っていない。

688:名前は開発中のものです。
11/02/06 01:24:03 Bp6r7tC9
俺は配列を最大でいくつ確保すればいいか不明な場合newを使ってる。
他に使い道あるの?

689:名前は開発中のものです。
11/02/06 01:27:00 KavCN3Ib
>>688
よく知らないけど、そういう場合ってvectorとか使うんじゃないの?
まぁ自分は決め打ちでドカッと多目に配列を確保。

690:名前は開発中のものです。
11/02/06 01:40:42 edmoP5Oc
よく考えたらnew/deleteを目にみえる場所で使わないためのvectorだったりするのか
いままで気付かなかったわー

691:名前は開発中のものです。
11/02/06 01:46:35 Wfa4vAEK
結局このスレはC++初心者ばかりだったということですねw

692:名前は開発中のものです。
11/02/06 01:46:56 k3JuiCGX
>>690
いや、根本的に違うだろjk・・・
newはポリモーフィズム使うなら必須っていうかC++使っておいてポリモ使わないとかなにその苦行

693:名前は開発中のものです。
11/02/06 01:48:40 edmoP5Oc
Cで多態させるのにnewとかいらなくね?RAIIあるし

694:名前は開発中のものです。
11/02/06 01:54:34 k3JuiCGX
>>693
は? 多態とRAIIに何の関連性あるんだアホか
マジでガチ初心者だらけじゃねえか

695:名前は開発中のものです。
11/02/06 01:57:17 fHNV/tRC
例えば敵キャラのデータに配列を使うとして、
敵キャラが最大で100体でるのか、それとも10000体以上でるのかわからない、ってのだと
PCの動作環境はどうやって決めるんだろう。

最初に「最大1000体、これ以上は出さない」と決めておけば
1000体動くかどうか確認して、「ちゃんと動くな。ではこのPCの性能を最低環境としよう」ってできると思うけど。

696:名前は開発中のものです。
11/02/06 02:01:52 edmoP5Oc
>>694
ちょっと間違って理解してるような気がするので聞いてみるけど
newがポリモーフィズムに必須というのはどういうこと?

697:名前は開発中のものです。
11/02/06 02:11:58 KY5hMpMn
ツリーとかグラフ系のデータ構造扱うときはnew必要じゃね?
動的に何かを生成するときは普通使うよね。
ないとできないわけじゃないけど・・・

698:名前は開発中のものです。
11/02/06 02:22:41 bBxVkAP5
>>695
基本的には一番重いシーンで快適に動く環境を推奨スペックとして表記するのが普通
その敵が10000体出るっていうのが滅多にないことなら、それとは別に、普通に遊べるスペックを動作スペックということにしとけばいいと思う


newだけど、使い方で一番イメージしやすいのはシーンの管理だと思う
タイトル画面でプレイ開始を選択した時点で、外部からタイトル画面クラスをdeleteしてゲームクラスをnewする
外部では常にNULL以外のクラスをアップデート、的な

あとは、糞大きいクラスを実体化するとき、newやmallocを使わないと失敗して落ちる場合があるってくらいかな
ポリモーフィズムはシラネ

699:名前は開発中のものです。
11/02/06 02:43:28 FYHHz7EY
>>697と同意なんだけど
それ以外のやり方あるなら教えてもらいたい

700:名前は開発中のものです。
11/02/06 02:45:17 k3JuiCGX
>>696
こういうことだよ
URLリンク(ideone.com)
っていうかまず、RAIIが何か行ってみろよマジ・・・

701:名前は開発中のものです。
11/02/06 02:52:22 k3JuiCGX
スマートじゃなかったから書きなおし
URLリンク(ideone.com)

702:名前は開発中のものです。
11/02/06 03:32:24 3eWOv2dl
あるクラスに、別クラスのインスタンスを持たせたい場合、
自分はポインタにしちゃうことが多いかなあ。

>>698
Stateパターンだっけ?


703:名前は開発中のものです。
11/02/06 03:40:14 k3JuiCGX
>>689
シーンクラスを継承したタイトル画面・ゲーム画面クラスをメインループで常にupdateするっていうのはポリモーフィズムだべさ・・・
Scene* p;
p = new Title(); or new Game();
while(...){
p->update();
}
的な。

704:名前は開発中のものです。
11/02/06 03:42:45 KavCN3Ib
クラスに別クラスのインスタンスを持たすこと多いけど、やっぱポインタにしないと駄目なんかな…
何か管理が面倒そうでポインタにしてない

705:名前は開発中のものです。
11/02/06 03:46:23 KY5hMpMn
>>704
別にオッケーだべ
というかほとんどの言語ではデフォルトが参照だべ

706:名前は開発中のものです。
11/02/06 03:49:17 KavCN3Ib
>>703
あ、やっぱ一般的にはそんな風にシーン管理するのね。
なんかかえって難しそうに感じて、ベタにswitchで回してしまう。
書き方としてはギリギリ読めるんだけど、実感としてポリモの便利さがピンと来ない。

707:名前は開発中のものです。
11/02/06 03:55:02 LAhGvLpb
まあポリモーフィズムなんてただの暗黙のswitchなんだからそれでも問題ない

708:名前は開発中のものです。
11/02/06 04:01:41 bBxVkAP5
>>702,703
アドリブプログラマだから設計パターンとか用語の定義とかは知らないんだよ……
こうやったら管理しやすくないかなー、ってテキトーに書いてるだけだし
これがポリモーフィズムなら、規模の大きなゲーム作ろうとすれば自然に身につくものなんだと思う

709:名前は開発中のものです。
11/02/06 04:16:03 FRrxkwCp
シーンみたいに柔軟性が求められるところを抽象化してもあまり得しないけどね

710:702
11/02/06 04:49:13 3eWOv2dl
>>704
自分も最初はクラスの実体を持ってたけど、必要に迫られてポインタに移行した。
やり方は他にもあるんだろうけどねー。


711:名前は開発中のものです。
11/02/06 05:49:43 Bcoc3jNp
実態を持つ方がコンパイル時間がかかる

712:名前は開発中のものです。
11/02/06 07:03:48 wzAw0A/n
傍から見てて思ったんだが別にポリモ使うのに new/delete 必須じゃなくね

713:名前は開発中のものです。
11/02/06 07:50:12 vYbU4BgG
必須じゃないね
void f(Obj* o)
{

714:名前は開発中のものです。
11/02/06 07:51:36 vYbU4BgG
途中でかきこんだわ・・・
void f(Obj* o) {
 o->update();
}
ObjA a;
ObjB b;
f(&a);
f(&b);
こういうこともできるわけだし

715:名前は開発中のものです。
11/02/06 08:17:22 DfvbrRc2
ぶっちゃけゲームが出来上がることが最優先なので
とりあえずCで書き始めて、できる範囲でC++化することにしているよ

現段階では、クラスが変数と関数のセットであることくらいしか使えてねーけどなw

716:名前は開発中のものです。
11/02/06 09:29:09 vYbU4BgG
それでいいと思うよ
そりゃC++を完璧にマスターしてから作ったほうが圧倒的に効率いいだろうけど
C++は十年勉強して先輩のコーディング盗んでようやく半人前の世界だからねw

717:名前は開発中のものです。
11/02/06 09:36:50 hi6mskVF
慣れが大事だし使い続けるのが良いと思うよ
使ってるうちに理解が深まる

718:名前は開発中のものです。
11/02/06 10:00:06 stjfxyZ6
new、deleteどころかオブジェクト指向プログラミングをしなくても、
ゲームは普通に作れるからな。初心者にとって無関係といえば無関係だろ。

719:名前は開発中のものです。
11/02/06 12:17:01 +QgrF6fp
オブジェクト指向勉強したかったらJavaやC#でやったほうがいいと思うよ
C++ではノイズが多すぎて本質がわかりにくい
いちいちクラス作るのも使うのもめんどくさすぎ

720:名前は開発中のものです。
11/02/06 12:27:24 Bp6r7tC9
visualC++は自動でクラス作ってくれるじゃん

721:名前は開発中のものです。
11/02/06 12:34:00 +QgrF6fp
そんな機能が必要なこと自体がおかしいんだよ
別にC++のオブジェクト指向が使えないと言ってるんじゃなくて、
勉強の妨げになる余計なものが多すぎると言ってるだけ

722:名前は開発中のものです。
11/02/06 13:08:48 stjfxyZ6
それは同意できるな。
C++はCとのしがらみのせいで無駄に複雑になってる。
純粋にオブジェクト指向を学びたかったら、
しがらみを完全に断ち切ったC#、Javaのほうが分かりやすい

723:名前は開発中のものです。
11/02/06 13:14:20 KY5hMpMn
オブジェクト指向を学びたい!のなら教育用の別の言語をオススメするが、Windowsの実用言語として同時に学ぶならC#かなぁ
.NET FrameworkとVisual Studio Expressは非常に強力
Javaもいいんだけど、標準クラスライブラリだけだとWindowsアプリケーションをさくっと作るみたいな使い方が難しい
俺がJavaに詳しくないだけかもしれないけど、GUIの作成周りがどうも・・・

724:名前は開発中のものです。
11/02/06 14:10:59 k3JuiCGX
>>714
実質的に必須だろ・・・
引数の参照使って多態もできるけど、それはあくまでも関数レベルの話なんだし
そりゃ部分的には参照使うほうがスタック領域のオブジェクト使うから早いけど、
例えば敵が格納されてるリストの中に複数種類の敵入れたりするときどうすんだよ
古典タスクでも使うのか?

725:名前は開発中のものです。
11/02/06 17:08:03 FRrxkwCp
ゲームはオブジェクトの振る舞いを場合によって変化させないといけないから
オブジェクト指向を使うにしても結構訓練を必要とすると思うよ

726:名前は開発中のものです。
11/02/06 22:24:40 gmKYG7No
enumのパラメータの名前がよく被る
どうしよう

727:名前は開発中のものです。
11/02/06 22:30:00 Eb0WRl87
クラスに持たせて、クラス名::enum

728:名前は開発中のものです。
11/02/06 22:48:27 Bcoc3jNp
enumに型名を付けるとfor文で回せなくてめんどくさくね

enum STAGE
{
  FIRST,
  SECOND,
  THIRD,
  STAGE_NUM,
};

for(STAGE idx=FIRST; idx<STAGE_NUM; idx++){
}

こういうことができない。
enumは型名がない方がよくね

729:名前は開発中のものです。
11/02/06 23:56:26 o0IXDaRU
C++ってメモリの操作がこまめに出来るからプログラミングの勉強にすごいなると思う

730:名前は開発中のものです。
11/02/07 00:06:53 o+ZRLSEj
for(int idx=FIRST; idx<STAGE_NUM; idx++){
}

は出来ないの?

731:名前は開発中のものです。
11/02/07 00:13:22 o7zGWqwC
>>729
低レベルな作業が勉強になるというなら
クラスもnewもdeleteもテンプレートも使うべきじゃないよ
せっせとHSPみたいなコード書いてればいい

732:名前は開発中のものです。
11/02/07 00:29:30 d7Cek6eo
>>731
HSPは勉強にもってこいなのか?

733:名前は開発中のものです。
11/02/07 00:36:10 o7zGWqwC
低レベル(!=簡単)な言語の例として挙げただけ
もちろんハード寄りの低レベルな知識は大事だけど
プログラミングには抽象化も重要だ
アセンブラには関数がないからC言語より勉強になるの?

734:名前は開発中のものです。
11/02/07 00:46:04 5kwAP+20
>>728
なんでforで回せられないん?

735:名前は開発中のものです。
11/02/07 01:07:36 ln0Hp/Vm
intでできたは

736:名前は開発中のものです。
11/02/07 05:11:14 WyOjR7J5
HSPって低レベルだっけ

737:名前は開発中のものです。
11/02/07 05:20:57 z2dDXVbA
なにげにアレHSP用の関数実装とか無しに外部DLL呼び出せたりして面白いよね
HSPでdxlib使ってる人っている?

738:名前は開発中のものです。
11/02/07 05:32:21 2KMBKGJ1
HSPは参照というものが存在してなかったはず。抽象度という意味ではかなり低レベルかと

739:名前は開発中のものです。
11/02/07 11:25:04 b8F3RAga
低レベルって、低級言語って意味で言ってるんだよな?

740:名前は開発中のものです。
11/02/07 12:56:25 InNumn8p
HSPか
初心者の勉強に向いてるの?

741:名前は開発中のものです。
11/02/07 13:20:20 tg7ZaRxP
HSPは小学校用と思った方がいい。入口がかんただが、複雑になると泥沼。

742:名前は開発中のものです。
11/02/07 13:29:51 InNumn8p
>>741
有難う。

743:名前は開発中のものです。
11/02/07 15:19:07 PS0gfCYa
HSPは勉強用ではなく体験用と思えばとてもすばらしい環境だな
手軽に弄って手軽なものを作る分には最適だが本格的なものを作ろうとした時に
どうしても仕様上の不便さが目立ってしまう
元々のコンセプトがそういう方向性なんだから本来の目的は達成している筈なんだが
簡便さゆえに万能を求められてしまうなんたらかんたら~はスレ違いの話だな

まあ勉強が目的なら応用性の高い言語を選択した方が回り道は少ないだろうな
逆に見ればそれ程大規模でもなく複雑な表現も処理速度も必要としないようなソフト製作であれば
HSPでも十分だとも言える
多少の知識があればDXlibの2D機能ぐらいなら一応使えるしな

744:名前は開発中のものです。
11/02/07 17:36:43 orHlWPg7
ちょっとした動作デモが、1時間くらいで組みあがったりしたのを見てビビった


745:名前は開発中のものです。
11/02/07 19:07:46 4Bjtftyn
HSPで簡単と思える程度のゲームなら他の言語でも簡単なんじゃね

746:名前は開発中のものです。
11/02/07 19:11:19 z2dDXVbA
他の言語て

747:名前は開発中のものです。
11/02/07 19:15:19 4Bjtftyn
日本語でおk

748:名前は開発中のものです。
11/02/07 20:57:52 cLL/ycl2
他の言語でもおk

749:名前は開発中のものです。
11/02/07 21:06:03 WyOjR7J5
HSPって低級言語だっけ

750:名前は開発中のものです。
11/02/07 22:03:36 ao/YIlT9
一般には高級言語に分類されてる

751:名前は開発中のものです。
11/02/07 23:04:20 wF/kiWoY
せめてクラスか構造体があればな

752:名前は開発中のものです。
11/02/07 23:15:47 OcsNs/sY
クラスはHSPのコンセプトからはずれると思うが、構造体は欲しいな

753:名前は開発中のものです。
11/02/07 23:30:15 OcsNs/sY
そういえばそれ以前に妙ちくりんな型変換をなんとかして欲しいな

754:名前は開発中のものです。
11/02/08 01:11:11 zz8oJ9kr
俺的にはHSP=BASICって感じ。高望みはしないし、人に勧める気もしない

755:名前は開発中のものです。
11/02/08 16:05:17 6L0TPnqD
すれ違い

756:名前は開発中のものです。
11/02/08 17:54:15 +ML1FjeC
から生まれる

757:名前は開発中のものです。
11/02/08 20:35:13 SsLD3XMz
小さな愛

758:名前は開発中のものです。
11/02/09 02:00:42 5lfRH9sH
AIにいい参考資料ってやっぱ本買うしかないのかな?
全くイメージが出来ない

759:名前は開発中のものです。
11/02/09 02:47:15 ieGKHoAe
AIって言われても漠然としていて何を知りたいのか分からん

760:名前は開発中のものです。
11/02/09 09:32:08 56rbMTpR
実例で学ぶゲームAIプログラミング
URLリンク(www.oreilly.co.jp)

761:名前は開発中のものです。
11/02/09 20:36:21 v7oSuKhP
いわゆる和ゲーのAIと、洋ゲーのAIじゃあ全然違うだろうな

762:名前は開発中のものです。
11/02/09 20:57:36 7Rex9UNl
勇者が死ぬとメガザル

763:名前は開発中のものです。
11/02/09 21:04:48 bxVvIYXu
FF13だっけ?味方の戦闘AIの設定いじって戦うやつ
ドラクエであれやってみたら結構楽しそう

764:名前は開発中のものです。
11/02/09 21:52:06 MQeJ0Td3
どうだろうな。

「HP50%以下でホイミ」と指定されていれば、その通り行動しないとマズいけど、
「いのちだいじに」なら、殺られる前に殺れというのも選択肢に入る懐の広さはあるだろうし。
一応、キャラごとの性格設定や、プレイヤーが勝手に想像する余地というメリットもあるからなあ。

765:名前は開発中のものです。
11/02/09 23:34:22 gbbiuBkv
今現在で実用的な意味でのAI というと特定の条件下での話になっちゃうからね
目的とゲーム条件と製作者の好みで決めちゃうところが大きいかと

766:名前は開発中のものです。
11/02/12 13:12:29 nJI+bwQD
ぐぐっても見つからなかったので質問です。

リフレッシュレートに依存せず、指定したfpsで処理を行う場合のサンプルがあれば、
その場所を教えてほしいです。
dxlib wiki かなにかがないか探したのですが、見つかりませんでした。

同梱のhelpだと、リフレッシュレートにあわせて処理を変えてしまえというものはあったのですが、
fps60固定でやりたいので、使えませんでした。

普通の2DアクションゲームならどのゲームでもやってるFAQ・TIPSだと思いますし、
wikiにも真っ先に掲載されるようなネタですので、
自分の拙いコーディングと調査で時間食うより、サンプルコピペで一瞬で済ませたいです。

実現方法としては、
・flip時に待たない
・自前で待つ:msec単位の現在時刻取得APIを利用し、sleepする(?)
あたりでいけるとは思ってます。

ご存じの方、よろしくお願いします。

767:名前は開発中のものです。
11/02/12 13:16:58 hgni81jL
>>766
>自分の拙いコーディングと調査で時間食うより、サンプルコピペで一瞬で済ませたいです。
それを自前でやればスキルアップでほかの部分もより良いコーディングができるようになるかと。
最近はPCも液晶ばっかりで大抵リフレッシュレートが60Hzだから垂直同期依存のソフトも多いんじゃないかな。

まぁ、無精せずにじっくりやれって事ですw

768:名前は開発中のものです。
11/02/12 13:30:22 qAUrfDwp
>>766
時前でレートを作ると、がたつき(ティアリング)がおきるぞ、わかってるのか?

769:名前は開発中のものです。
11/02/12 16:16:10 mJ46d9vv
リフレッシュレートに依存しないって言うから、
可変FPSの話かと思ったが、どうやら違ったようだ。

770:名前は開発中のものです。
11/02/12 16:34:22 WPIK0Noa
龍神録プログラミングの館の43章、「きっちりFPSを制御してみよう」に解説がある
SetWaitVSyncFlag()で垂直同期を切れば思い通りになるはず

771:766
11/02/13 09:42:41 KpZXeEQj
>>770
教えていただいたとおりに実装したところ、思い通りになりました。ありがとうございます!
一番時間かかった問題(sleepでやると2回に1回くらい描画結果がwindowに反映されない)は、
PC再起動でなおりました。

>>767-768
アドバイスありがとうございます。ティアリングは覚悟済みです。
余談ですが、もちろん普通に垂直同期を待つモードもついています。
今回は1関数コピペで済むレベルなので不精しましたが、
そうでない場合はいただいたアドバイスどおりじっくりやりたいと思います。

772:名前は開発中のものです。
11/02/16 10:32:36 kx3d0uWe
listのイテレータをstaticで持っておきたいのですが
そのイテレータを使い終わった時に初期化したいです
しかし一体何を入れればいいのかわかりません
別に初期化しないでもバグにならないように設計すればよいのですが
何か気持ち悪くて・・・

773:名前は開発中のものです。
11/02/16 10:45:00 hu/634nm
初期化しないで使い、毎回使うときに初期化するのが基本だけど、
どうしてもってのならNULLを入れとけばいいです
NULL(=0)は絶対にポインタとしてあり得ない数値なんで、it==NULLなら参照しない、って使い方が出来ますにゃ
(当然、NULLが代入されてるイテレータで要素を参照してしまうとアプリは落ちる)

774:名前は開発中のものです。
11/02/16 20:49:33 RSQiCP9S
イテレータstaticでもつって何に使うの

775:名前は開発中のものです。
11/02/17 12:10:06 POOkR4PO
当たり前すぎるのか検索しても引っかからないのですが、
3Dモデルのデータにはテクスチャファイルは埋め込めないんでしょうか?
ごちゃごちゃするのでまとめたいんですが…。

それとも最終的にDXアーカイブにすれば(mv1のみ?)でまとめろって話ですかね。

776:名前は開発中のものです。
11/02/17 18:48:14 L+DlSeIR
DrawRotaGraphってめっちゃ重かったりする?
擬似3Dゲームを作ろうと思ってマップや敵を回転させてたらめっちゃ重い

777:名前は開発中のものです。
11/02/17 18:54:18 s7Rh9Whn
原因はお前のクソコード

778:名前は開発中のものです。
11/02/17 19:06:21 L+DlSeIR
ひょっとして、画像のロードをループのたびにやってるのがいけないのか?
でもさ、フィールド関数の領域???でロードしたら、次から画像ハンドルが空っぽになってんだよ

779:名前は開発中のものです。
11/02/17 19:11:41 NFDiEQjC
寿命が尽きたんだ。諦めろ。

780:名前は開発中のものです。
11/02/17 19:18:03 L+DlSeIR
おかしいな、このスレ誰もいないのかな

781:名前は開発中のものです。
11/02/17 19:19:56 +LcL54Sl
誰もいませんよ

782:名前は開発中のものです。
11/02/17 19:21:09 8eHPFNop
むしろ自分はDrawRotaGraphで統一してる。
関数によって、座標指定が左上だったり中央だったりするのが面倒だったので。


>>780
せめて24時間は待てよw

783:名前は開発中のものです。
11/02/17 19:53:11 JfE8kAGm
>>778
>画像のロードをループのたびにやってる
そんな事やってたら重いのは当たり前だ

>画像ハンドルが空っぽ
明らかなバグ臭、ちゃんととレースしてデバッグしろ

784:名前は開発中のものです。
11/02/17 19:55:24 /kIHAK9a
ローカル変数に代入してるんじゃね?staticもなしに

785:名前は開発中のものです。
11/02/17 20:07:30 2T4y7T5P
>>778
783も言ってるけどまんま原因はそれだよw
ロードは描画の度やるようなもんじゃない
変数の有効範囲をちゃんと管理できるコードか書けない初心者のうちは、
画像ハンドルはグローバルで置いとくべき
そしてゲーム起動時に全部読み込むくらいでいいにゃん

786:名前は開発中のものです。
11/02/17 20:22:19 NFDiEQjC
そしてグローバル変数の初期化にLoadGraph使ってまた発狂

787:名前は開発中のものです。
11/02/17 21:57:53 L+DlSeIR
ありがとうございます
またできる環境になったら試して見ます
またお世話になるかと思いますがよろしくお願いします

788:名前は開発中のものです。
11/02/18 01:46:16 GOKTeo9s
またお世話になる前にC言語勉強して公式をよく読め

789:名前は開発中のものです。
11/02/18 14:19:13 R8VH2Snc
ログファイルの出力フォルダの設定ってどうやったらできますか?
時間をログファイル名につけて保存する設定にしたのはいいんですが実行するたびにファイルが増えるのでひとまとめにできたらいいなと思うんですが

790:名前は開発中のものです。
11/02/18 14:30:19 evmgDxOS
そう言うのは公式で聞いたほうが早い

791:名前は開発中のものです。
11/02/18 14:49:54 R8VH2Snc
ありがとうございます。そうしてみます

792:名前は開発中のものです。
11/02/18 19:00:32 G40bfkWJ
DXライブラリ ゲームプログラム講座
のとおりにやってたら、そんなバグ仕込むことは少ないと思うんだけどなあ

よくわかんないうちは、
それを改造していく方法でいいじゃん

ほかにもソース公開してる人がいるから、それを改造していってもいいし

793:名前は開発中のものです。
11/02/18 19:11:39 4cFumhE/
特に変数のスコープを解説されてない講座に従えば、
そりゃ間違いを犯すだろ。改造と並列して原理を学ばないと。

794:名前は開発中のものです。
11/02/18 21:34:07 2/JFNBpt
ポインタにNULLを入れて何回でもdeleteしてやる

795:名前は開発中のものです。
11/02/18 21:48:34 DL5by/CF
君がッ! 泣くまでッ! deleteを止めないッ!

796:名前は開発中のものです。
11/02/19 00:11:11 aRLzCjm9
DXライブラリってDirectGraphic使ってるの?

797:名前は開発中のものです。
11/02/19 00:12:54 aRLzCjm9
サーセン

798:名前は開発中のものです。
11/02/19 00:18:35 AyR1BOuA
>>790
公式でそういうクソみたいな質問させるのやめろよ

799:名前は開発中のものです。
11/02/19 00:41:55 hJx6ylHW
軽くソースをあたってみると、公式や2chで質問するより早く分かったりする。
分からないことも多いけど。

800:名前は開発中のものです。
11/02/19 07:24:18 wF23eZ21
ミスのない、凝ったことをやってない、そういうレベルのソースに出会えるといいね。

801:名前は開発中のものです。
11/02/19 10:26:58 HniCnkbn
ゲームのソースって人それぞれオリジナリティに溢れてて読みづらいんだよね
純粋にC++の勉強としては、ゲーム以外のプログラムとかゲームエンジンのソースとか読んだ方がいい気がする

802:名前は開発中のものです。
11/02/19 11:12:29 q8myv8eW
>>763
リメイク版ドラクエ4で「めいれいさせろ」が追加された頃から察してくれ…

803:名前は開発中のものです。
11/02/19 13:02:18 /MJ/MkF7
>>798
じゃあ、お前が答えてやれよ

804:名前は開発中のものです。
11/02/21 15:53:01.31 H/f3jJzW
縦横座標から濃度と色を計算して1点ずつ描画モードを切り替えて点を打つっていう処理をやったら
案の定遅くなったんだけどやっぱ無謀だったんですか?
関数呼び出すだけで時間かかるから1点1点描いてくのはダメなのかな?
1ドットにつき数回三角関数や逆三角関数を使ったのもあるかもしれないけど
ドット打つところを2*2の四角形に変えたら少しはマシになったのでやっぱ描画関数の呼び出し回数の問題っぽい。

何が言いたいかと言うと、
char gamen[???][???][4]; //縦×横×三色と濃度
みたいな配列みたいなのを用意してこれを渡せば一括で描画してくれるなんて関数があればいいなぁってね。
画像のデータ構造の中身なんてわかんないけど似たような事やってるんじゃないのかな?

805:名前は開発中のものです。
11/02/21 16:40:26.86 9GgWz1ID
ソフトイメージとDrawSoftImageでいんじゃね?
言ってることはこれそのままっぽいし

806:名前は開発中のものです。
11/02/21 16:52:59.96 h9QhWIFW
>>804
片方ずつ実行して時間計れば、処理速度くらいわかるでしょ。
結論から言うと画像を作ってから、一回で描画すればおk。

807:名前は開発中のものです。
11/02/21 17:01:58.37 H/f3jJzW
あーん、あったねぇ……うん、ごめんね。
都合良く、アルファ濃度にも対応してるのあるのね。まさにピッタリ。
DrawSoftImageの説明に重いとは書いてあるけどDrawPixel毎回呼び出すよりはマシなのかな。
今度比べて試してみます。ありがとうございました。

808:名前は開発中のものです。
11/02/21 17:07:06.38 MMcVeH9B
なんか解決したみたいだけど一応書いとく

描画モードの変更関数は結構重いよ
どのくらい重いかというと毎フレーム3000回呼んでたら60fps維持できないくらい

809:名前は開発中のものです。
11/02/21 17:12:14.93 H/f3jJzW
あーそうなんだ。
ドット毎にあのパラメータを変更するためにSetDrawBlendMode呼んでたから、なるほど。
ますますソフトイメージの方が良いみたいだね。
重ね重ねありがとう。

810:名前は開発中のものです。
11/02/21 21:14:42.39 xa3qwwu7
ソフトイメージもクソ重いけどな・・・

811:名前は開発中のものです。
11/02/21 21:37:06.89 MMcVeH9B
804がどんなことをやりたいと思ってるのかが気になる
サブサーフェスみたいなのがやりたいのか、それともお絵かきツールみたいなのを実装しようとしてるのか……

812:名前は開発中のものです。
11/02/22 01:34:18.44 M0x+7GIl
ピクセルシェーダ向きだな
とんでもなく速くなるよ

813:804
11/02/22 05:37:38.23 fi/o64E4
>>811

t:時間
x:キャラの中心線からの相対横座標
y:キャラの下端からの相対縦座標
xmax:模様の横幅/2
ymax:模様の縦幅

red[i][j]=255*sin(0.05*t*t+sin(acos(x/xmax)/16+0.1*t));
alpha[i][j]=255*y/ymax*x*x/xmax/xmax;

これは適当だけどこんな感じの計算をしてキャラの周りを波模様の筒状のオーラが囲むような
演出を作りたかったんだよね一瞬だけど。
だからそこまで必須じゃなかったり。いやドットでやるのは馬鹿げてるってわかってはいたんだけどね。

814:名前は開発中のものです。
11/02/22 12:21:32.47 8kTZW2q7
波長や振幅が固定で良いなら画像なんだろうけどなあ

815:名前は開発中のものです。
11/02/22 12:36:39.49 2hGlEXNN
それだと、やっぱりシェーダか2Dポリゴンかなぁ

816:名前は開発中のものです。
11/02/23 02:06:02.89 UA4c++Ac
C++にLuaを組み込むメリットは処理の速さですか?

現在RPGを製作中で、自分でスクリプトを組んでやってるんですが
若干レスポンスが遅いです
これが改善されるならLua導入も検討しようと思うのですが

817:名前は開発中のものです。
11/02/23 02:09:38.48 6JL+nAie
スレチ

818:名前は開発中のものです。
11/02/23 02:19:07.06 +qfQHx1D
>>816
軽量設計した簡易スクリプトがluaより遅いって事はまずない
もしも毎回読み込んで構文解析して実行してるならそこで遅くなる
起動時にスクリプトを構文解析して、実行用の中間コードを保持しておくとか工夫してみたら?
luaの長所はスクリプト内でとてつもなく複雑なことをしても動作することがある程度補償されてる点

819:名前は開発中のものです。
11/02/23 04:24:07.24 Gd9oN5TQ
DXライブラリレベルならスクリプト要らないと思うけどな
記述が簡単なDXライブラリに記述が簡単なスクリプト言語を追加してどうすんの
動的リロードとかは魅力だけどデバッグが更に面倒になるし

820:名前は開発中のものです。
11/02/23 05:23:52.62 2fkZgoQ8
Luaというか組み込みスクリプト言語のメリットは動的リロードとコルーチンだろ・・・

821:名前は開発中のものです。
11/02/23 05:24:24.01 +qfQHx1D
スクリプトには再コンパイルなしでイベント追加ができるなどの強みはあるよ
人形劇みたいなイベント有りのRPG作るならスクリプトみたいな仕組みはないと困るんでない?

822:名前は開発中のものです。
11/02/23 13:24:26.50 KDGE0euW
結局のところ、複数で担当するかどうかというのも大きいよな。


823:名前は開発中のものです。
11/02/23 20:20:54.51 slm3+WaE
2DRPG程度で重くなってる方がやばいな

824:名前は開発中のものです。
11/02/26 00:34:35.38 llK7EsEr
DXライブラリにluaが合わさったら最強に見えるかも、
と思ったことはある

825:名前は開発中のものです。
11/02/26 00:39:08.09 /pRzzwPn
luaにポーティングとかもう誰かやってんじゃないの?

826:名前は開発中のものです。
11/02/26 00:52:29.00 DM00gsqn
「lua DXライブラリ」でググるといくつか挑戦したのが見つかるね

827:名前は開発中のものです。
11/02/26 08:56:00.23 eTqHkKj4
Lua+DXライブラリって何かいい事あるの?

828:名前は開発中のものです。
11/02/26 11:25:41.87 enInS/6/
なんで良い事ないと思うの?

829:名前は開発中のものです。
11/02/26 11:34:41.26 i8Eo6Mya
単純に疑問かもしれないのに

一体何と戦ってるの?

830:名前は開発中のものです。
11/02/26 12:31:16.83 llK7EsEr
質問の意図次第かな
・DXライブラリを使ったゲーム開発において、
 組み込みスクリプト言語を導入することでのメリットとは何か
・DXライブラリ+組み込みスクリプト言語 を用いたゲーム開発において、
 ほかの組み込みスクリプト言語に比べてのluaの優位性とは
で回答は変わるわな

831:名前は開発中のものです。
11/02/26 12:45:40.80 DM00gsqn
DXライブラリは基本的には描画がメインだからなぁ
組み込みスクリプト使うような規模の作品になれば、描画をフレームワーク化するのは当然になるし、
有用な組み合わせとしては「DXライブラリ+スクリプト」というよりは「自作フレームワーク+スクリプト」って感じになって、
DXライブラリを使うかどうかって所はあまり関係しない気がする

832:名前は開発中のものです。
11/02/26 13:35:39.83 eTqHkKj4
いや、DXライブラリとLuaを組み合わせたら最強とかあったから、
何か他のものとは違う特別なメリットが得られると思った次第。
言葉足らずでごめん。
別にそういうのは無い感じなのかな?

833:名前は開発中のものです。
11/02/26 13:38:49.16 enInS/6/
単に開発が楽ってだけだろ
Luaじゃなしに組み込みスクリプト言語ならそんなに変わらん
速度面・普及面じゃLua一択だが

834:名前は開発中のものです。
11/02/26 15:04:09.36 8F4iVscQ
DXライブラリで開発してる人は、大なり小なりフレームワーク的なものを組んでるような気がする。
この辺の情報ってあんまり出ないよね。


835:名前は開発中のものです。
11/02/26 15:26:33.72 /pRzzwPn
単に、Tonyu systemみたいな環境を自分で作れたら夢が広がりんぐ 程度の意味だと思うよ

836:名前は開発中のものです。
11/02/26 17:22:25.72 E0NawrDD
Luaの場合は構文やクセの把握をしておけばまたどこかで役に立つ可能性があるくらいには普及してる
どっかの誰かが作ったほとんど使われてないスクリプ言語はそういったトライアンドエラーを他の環境で活かせる度合いが小さい
・・・程度の差はあるね

まあ損しないことばかり考えてると何も作れないんだがなw

837:名前は開発中のものです。
11/02/26 20:31:19.79 0j1IiD9M
DxLibはゲームライブラリって感じじゃないからなぁ

838:名前は開発中のものです。
11/02/26 21:07:57.84 HzAF130I
そろそろスレチ

839:名前は開発中のものです。
11/02/27 09:19:22.82 OH7ge9Jj
DXライブラリとフレームワークについては興味あるなあ
まぁこれもDXライブラリに限らない話だからスレチかな

840:名前は開発中のものです。
11/02/27 09:35:38.18 tW/E8A8B
良くも悪くもラッパーライブラリだしな、フレームワーク必須に近い
それなりの規模なゲームを作ろうとしたら自前実装だらけになる

841:名前は開発中のものです。
11/02/27 09:46:08.08 0L5aKjyl
ゲームフレームワーク作るなら、DXライブラリで楽できる分なんて
作業全体の中では少ないから結局自分でやっても変わらん

842:名前は開発中のものです。
11/02/27 10:13:30.78 TzpLKbBT
>>841
いや、割と結構な部分省けるべさ
レンダリングフレームワークを作る手間がまるまる消えるんだし

843:名前は開発中のものです。
11/02/27 13:46:42.55 9Fl/vGOB
DXライブラリの上に自前フレームワークを作るのなら
DirectXの余計なことに頭を使わなくてすむ。
クラス設計とかだけを考えれば良いからすごい楽になる。

ってか楽になった。
俺はもうDeviceLostと格闘するのは嫌だわ・・・

844:名前は開発中のものです。
11/02/27 15:10:27.18 aZ0j/EAR
>フレームワーク
ベースの部分を、DXライブラリとそうでないものとで切り替えられると良いんだろうけどな。


845:名前は開発中のものです。
11/03/02 00:54:47.81 u6ffonYs
BGMのループポイントの話だけど、ループポイントの設定の仕方がミリ秒とサンプルとバイトの3つあるけど、
それぞれメリットデメリットってあるの?
細かさは

バイト>サンプル>ミリ秒

なのはいいとして、やっぱバイト単位とかのほうがミリ秒と違って再生環境によるズレが無いのかな?
バイトってなんかこうファイルを直接見てる感じがするからそんな気がするのよ。
もしそうじゃなくて「ミリ秒でずれるときはバイトでもずれる」とかなら俺的には
バイトのメリットが無いからもうミリ秒でいいやって話になるわけよ。
どうせ10ミリ秒ぐらいの違いじゃあわかんないし俺。

というか
URLリンク(izuministrator.com)
によると
SetLoopPosSoundMem
でバイトでの指定ができるはずなんだけど、なぜかミリ秒指定と同じ動きになっちゃってるから
バイト指定できなくて困ってるのよね。

長文スマソ

846:名前は開発中のものです。
11/03/02 21:23:00.01 J7GxD6/6
公式のリファレンスでは、現在SetLoopPosSoundMemはミリ秒指定用の関数になってるね

ミリ秒でもズレないからミリ秒でやったほうがいいと思うよ
コード見たわけじゃないけど、多分内部では計算して単位揃えて同じ動作で動いてると思うし

バイトやサンプル数だと、周波数とか変えたとき変更しなきゃなるし、メリットは殆ど無いって言っていい

847:名前は開発中のものです。
11/03/02 23:38:04.82 EReXQxMM
なるほどありがとう。

しかしまぁ公式リファレンスは
int GetCurrentPositionSoundMem( int SoundHandle ) ;
の項目で
int SetCurrentPositionSoundMem( int SamplePosition, int SoundHandle ) ;
のと同じ説明書いてるし信用できないな。
とりあえず名前が違うのに同じ挙動の関数がある時点で、
どちらかはバイトのほうを実装しようとして間違えたんだと思うけど。

848:名前は開発中のものです。
11/03/02 23:57:52.31 qyJBDqiQ
バイト指定なんてしても変なずれ方するだけだし最小単位はサンプルでいいと思うけどそれは置いといて
ソースみたところ、SetLoopTimePosSoundMemとSetLoopPosSoundMemの実装が同じコードになってる。多分バグじゃないかな。
メリットデメリットの話で言うなら、それぞれの関数は内部でSetLoopSamplePosSoundMemの実装を呼び出してるだけなので全く同じなはず。

849:名前は開発中のものです。
11/03/03 16:24:34.69 Zh6pP09G
同じような内容で、引数が違う関数の場合、
片方が他方のラッパーなんだろうな~と思ってソースを眺めてみると、実は違う場合があったりするよな…。


850:名前は開発中のものです。
11/03/03 17:31:53.66 EV+fS59G
そこら辺揺れるのが非公式関数だからなー
そういうのは公式に質問したほうがいんじゃないかな
なんらかのリアクションあるだろうし

851:名前は開発中のものです。
11/03/03 21:36:34.77 9izXx4AI
DXライブラリでも、ちゃんと作れば状態遷移を行って帰ってきても1バイトたりとも増えないの?
メニュー画面からゲーム画面に行って帰ってくるとメモリ使用量が増えてるんだけど。
ちゃんと各画面において終わる時にInitGraphとInitSoundMem呼んでるしのに。
ファイル読み込み関連はLoadGraphとLoadDivGraphとLoadSoundMemしか使ってないからこれで大丈夫のはずなんだが。
fopenも使ったけどちゃんとfcloseしてるし。mallocの類は全く使ってない。

852:名前は開発中のものです。
11/03/03 21:45:58.98 SaQE7YU5
メモリ使用量って何を見て言ってるの?
タスクマネージャなんだったら、ウィンドウを一時的に最小化してみたらいいよ
タスクマネージャの数字を減らすのは、自称詳しいユーザーを安心させる程度の意味しかない

853:名前は開発中のものです。
11/03/03 21:55:06.60 9izXx4AI
最小化すると正しい値が出るの?
やってみたけどやっぱ上がったものは上がったままだなぁ。

854:名前は開発中のものです。
11/03/03 23:03:00.90 UieYMyVE
ループを進めて時間が経ったらメモリ増えなくなるかも知れない。
ある程度のメモリは即開放されずに内部に留められたりするものらしい

855:名前は開発中のものです。
11/03/03 23:32:31.47 qrLZpjId
読み込んだファイルはOSが一時的にキャッシュ保存しているよ。

856:名前は開発中のものです。
11/03/03 23:35:35.10 9izXx4AI
じゃ、じゃあやっぱ気にしなくていいってことかな……うん。

857:名前は開発中のものです。
11/03/03 23:37:05.63 zB1jyOJI
状態遷移のたびに際限なく増えてるならメモリリークの可能性大

あともしVista以降だったらタスクマネージャにデフォルトで表示されてるプライベートワーキングセットには
DLL側のメモリの使用量は含まれてないよ

858:名前は開発中のものです。
11/03/03 23:59:37.80 9izXx4AI
えー……じゃあやっぱ原因探さないとな。ありがとう。

859:名前は開発中のものです。
11/03/04 00:05:04.17 ZZu9fnGE
>>858
何処を見て判断しているか説明しないと、色々出るだけだろ。何処見てるんだよ!

860:名前は開発中のものです。
11/03/04 00:08:06.20 Gm+qWo11
いや、タスクマネージャ……

861:名前は開発中のものです。
11/03/04 00:25:23.10 phAV7U6c
とりあえずゲームループに入って100秒くらい経ってもまだメモリ増えるならアウト

862:名前は開発中のものです。
11/03/04 01:01:17.80 Gm+qWo11
や、やっぱり法則がわからない。
何事も、初めのうちは増えるんだよね。
例えば効果音で、初めのうちは鳴る度にメモリ増えるんだけど、
何度も鳴ってると増えなくなる。
画像の読み込み+表示でもそうみたい。

863:名前は開発中のものです。
11/03/04 01:06:04.38 Gm+qWo11
また肝心な事言い忘れた。
そういうことだから、やっぱループし初めは初めて尽くしだからポンポン増えてくけど、
落ち着けば変わったことが起こらない限り増えない。

864:名前は開発中のものです。
11/03/04 01:07:59.19 Gm+qWo11
重ね重ねごめんね。誤字

ループし初めは初めて尽くし→ループし始めは初めて尽くし

865:名前は開発中のものです。
11/03/04 01:30:31.12 +Ujkj93Y
ずっと動かし続けてみたら?
数時間プレイし続けただけで落ちたらメモリリークだろうし

866:名前は開発中のものです。
11/03/04 23:09:56.12 3Qrvh8YP
プログラマ諸兄方に教えて頂きたい。

正直、俺のヘボいプログラムを人に見せるのは恥ずかしいけど、
訊くは一時の恥、とサンプルを晒します。

URLリンク(www.dotup.org)

あくまでサンプルで、適当にやってるところもあるけど、大体において俺はこんな形でゲーム作ってます。
ご覧の通り一応動きはするけど、プログラムの組み方は拙いです。

これをいわゆる普通なやり方に直すとするとどうなりますでしょうか。
特にキャラクターデータやグラフィックハンドルの管理をどうしてるのか、とかが知りたいです。

よろしくお願いします。

867:名前は開発中のものです。
11/03/04 23:26:51.42 kgJhX4cx
で、ダウンロードパスは?

868:名前は開発中のものです。
11/03/05 00:21:59.55 wFok8gdI
あ、すみません。書くの忘れてました。
DXlib です。

869:名前は開発中のものです。
11/03/05 00:32:14.95 Yfm7rI7q
やり方に直すって、全部コード書けってことかい?
流石に面倒だぞ
ぱっと見たところ、クラスちゃんと使えよと思ったな
C++の言語仕様くらいはちゃんと勉強しな
あとキャラクタ管理にはリスト構造とか使えばいいと思うよ

870:名前は開発中のものです。
11/03/05 01:28:05.42 1UObIsvi
拙いという割にはちゃんと細かい処理も関数に分けてて分かりやすいと思う
コメント多めなのも良い
クラスなんて構造体扱いでも全く構わないよ
全体的にわかりやすいベターCコードって印象

871:名前は開発中のものです。
11/03/05 01:31:08.83 Yfm7rI7q
構造体扱いなら
class Hoge{
public:
};
なんてせずに
struct{
};
でいいだろ。
そもそも、C++的に書きたいのか、C言語的に書きたいのかってのを言わんと目指すコードが分からんよな。

872:名前は開発中のものです。
11/03/05 01:31:35.11 Yfm7rI7q
struct Hoge{}; だったすまん

873:名前は開発中のものです。
11/03/05 04:19:43.37 /y9kIpiy
>>866
コメントも多いし処理ごとにブロック化されているので
読みやすくて(保守しやすいので)良いと思う。

敢えて言えば、サンプルだからかもしれないけれど
敵のタイプや数はマジックナンバーを使わないほうがいいと思う。
ENEMY_DATA[100]も、#define ENEMY_NUMBERS 100 とかにして
まとめてヘッダに定義しておけば可読性もあがるし、敵の数を
変える必要があっても、他の部分(たとえば敵初期化時の
forループの所とか)も直さなくていいから、楽になると思う。

874:名前は開発中のものです。
11/03/05 04:21:30.33 /y9kIpiy
>キャラクターデータやグラフィックハンドルの管理
C++で書くつもりなら、ゲーム内のオブジェクトについては
まず基底クラス作って、そこから各キャラを派生させて
敵や弾ごとにリストや、マネージャーとなるクラスで
管理しておけば処理や修正も楽だよ。

そうしておけば、サンプルのように描画時に敵のタイプで
switchしなくても、たとえば敵リスト->Draw(); みたいに
書くだけでOKだし、もし新キャラを後で追加したくなっても
Draw_rtn関数内は何も修正しなくてすむ。
同様に移動処理も、基底クラスのメンバに仮想関数として
Move()とか持たして、派生先の各キャラごとに実際の処理を
書いておけば、Move_rtn関数内では
敵リスト->Move(); とかしておくだけですむ。

でも最初にカッチリと複雑なものを作ろうとして、
いつまでたってもゲーム完成できない…というのは最悪なので
当面はこういう感じで書いていくのもいいと思う。
不便や必要を感じたら、その都度勉強したらいいし。

こういった話はDxLibの話とは関係ないし、
C++で書かれているゲーム開発用の入門書のサンプルにたいてい
載ってると思うので何冊か買ってみるといいかも。

875:名前は開発中のものです。
11/03/05 13:47:42.01 lRq0e7jV
しかし管理人様はマジですげーぜ

876:名前は開発中のものです。
11/03/05 16:58:19.71 4fF2MP2u
同意

877:名前は開発中のものです。
11/03/05 21:00:41.90 +x8oBxgp
画像のハンドル=ポインタですか?

878:名前は開発中のものです。
11/03/05 21:06:11.54 QynImjUh
違います

879:はじめまして。
11/03/06 22:54:57.95 QYrw4Tbt
確認なのですが、DXLibの描画順序って、コードの順序ですよね?

しかし、まずフィールドモデル(mqo)を描画した後、
メタセコイアで透過PNGを貼りつけた板モデル(mqo)を描画すると
板が先に描画されたかのように表示されます。

具体的には、以下のように表示されます。
URLリンク(cdn-ak.f.st-hatena.com)

どうすればよいのでしょうか?

880:はじめまして。
11/03/06 23:00:32.76 QYrw4Tbt
すみません、ちょっと怪しい部分がありますので、
もう少し自分で調べてみます。

881:はじめまして。
11/03/06 23:12:39.74 QYrw4Tbt
ミスでした。思い通りに描画できました。

(update()でも描画していたというオチでした。。w)

882:名前は開発中のものです。
11/03/07 00:49:57.69 CZyikCNH
透過処理のポリゴンは大変なんですよ。
Zバッファーへの書込みをしなかったり、Zソートして描画しないといけなかったり。
>>879は、単にZバッファーに書込みしてるのでそれをOFFすれば、そのシーンだけは
正しく表示されるかな。

883:名前は開発中のものです。
11/03/07 19:08:00.52 b7x4k2Cf
Zソートってみんなどうやってるの?
俺とりあえず表示する予定の全モデルの全メッシュを片っ端からキューに入れて
メッシュ座標の最大値と最小値の中点求めて
それのワールド座標求めてそれのスクリーン座標求めてそれのZでソートかけて描画してる
糞重たそうwwww
最近のPCスペック高いからぜんぜんわかんないけど

884:名前は開発中のものです。
11/03/07 19:16:35.82 qzzE/e1x
PlayMovieでGIFアニメの再生が可能、と聞いたのですが

885:名前は開発中のものです。
11/03/07 22:14:07.46 xxQTGPDS
なんかFPSが安定しないな~って思って
vsync待ちする時間を1分測ってみたら
60fps目標でで20ミリ秒以上待つフレームが
0.3~0.6%ほどあるんだけど
そういうもんなんかな?
BGMとゲーム内容を同期させたいから0.2秒くらいずれると
違和感感じるようになって困っちゃうんだよね

886:名前は開発中のものです。
11/03/07 23:05:01.44 SO4RWHi7
>>885
どういうコード書いてるか知らんけど
自分は龍神録のコードのfps制御のとこだけコピペしたらすごい安定したよ

887:名前は開発中のものです。
11/03/08 00:37:13.97 3MPvLyMj
>>886
簡単なテストコードなんだけどね~
前回ScreenFlipした直後と
今回ScreenFlipした直後の間の時間を求めるだけの

自分の環境だけなのかどうか判断したいんで
ちょっと試してみてくれんかな?
ウィンドウモード時とフルスクリーンモード時の二つ
ソースも一応いれといた
URLリンク(www1.axfc.net)
パスはvsync

フルスクリーンの時のほうがタイムオーバーする回数がだいたい2倍多くなるんだよな~

888:名前は開発中のものです。
11/03/08 00:51:45.04 bFxplNfr
タイムオーバーカウントとやらは
ウィンドウ:0~3回
フルスク:6~12回
程度。
フルスクは立ち上がりの1秒くらいが不安定っぽいな

889:名前は開発中のものです。
11/03/08 00:57:56.84 KY1+fYB9
関係ないかもしらんが俺の環境ではフルスクリーンだとなぜかVsync待ちすらしてないようでvsync_time: 0.005くらいが出まくってた。カウントは16。

890:名前は開発中のものです。
11/03/08 22:22:52.93 3MPvLyMj
>>888
>>889
テストありがとう
ん~、環境によってわりかし違うなぁ
どうすべ~

891:名前は開発中のものです。
11/03/08 22:26:55.30 8AuwhuEL
環境設定で垂直同期オフのタイマー待ちモードを選べるようにしたらいいんじゃないか

892:名前は開発中のものです。
11/03/08 22:38:03.07 6A/P0SlX
似たような話で申し訳ないが、俺もちょっと気になる事が。

俺は垂直同期信号待ちを切ったプログラムを組んでる。
それとは別に、ウィンドウモードかフルスクリーンモードかを記録して、
プルグラム起動時にはその記録を読み込んで、どちらのモードで始めるか決まるようにしてる。

で、ここからが気になる事なんだけど。

フルスクリーンで起動した時は、まったくティアリングが出ないんだけど、
ウィンドウモードからフルスクリーンに切り替えた時は酷いティアリングが発生してしまう。
(フルスクリーンで起動して、一度ウィンドウモードにしてからまたフルスクリーンに戻しても同じ)

普通に考えたら垂直(略)待ちしてなければティアリングは発生して当たり前なんだから
フルスクリーン起動時の方が特殊なんだろうか??

他の人でこういう現象を経験した人っていますかね。

893:名前は開発中のものです。
11/03/08 23:27:50.64 hpvVdE5K
>>886に同じ

894:名前は開発中のものです。
11/03/09 00:22:43.32 rJmaFgi1
>>892
フルスクリーン → ウィンドウモード → フルスクリーン の時の動作が良くわからんなあ。

895:名前は開発中のものです。
11/03/09 00:50:26.09 OL3/YmmT
>>892
その様な話を聞いた気がする。新しいので治っていたような…と曖昧な記憶があった。

896:名前は開発中のものです。
11/03/10 05:50:27.58 6m0CA7fb
グラフィックの白い部分は濃度100%で、灰色の部分は濃度50%で描画したいんだけど、いい方法ないかな?

そうしたいグラフィックをhoge_a.bmpにして真っ白いhoge.bmpも用意してhoge.bmpのほうを描画するようにすればいいんだろうけど
あんまスマートじゃないよね。

897:名前は開発中のものです。
11/03/10 06:16:14.89 FAQ2zmRE
それ加算合成じゃね?

898:名前は開発中のものです。
11/03/10 07:04:03.90 6m0CA7fb
違うのよね。例えば描画しようとした場所が元々、色(255,128,0)だったら
白い所は色(255,255,255)になって灰色(128,128,128)の所は色(255,192,128)になって、黒いところは色(255,128,0)のままって感じ。
ようはアルファブレンドの濃度を画像から読み込みたいの。
DrawGraph系はそれがデフォで実現できるんだけど。

899:名前は開発中のものです。
11/03/10 07:18:31.39 vOLR/zA1
素直に>>896に描いた通りに画像を用意するか、そういう透過度のPNG画像を用意するかだね
PictBearとかあればぐその通りのPNG生成できるし

900:名前は開発中のものです。
11/03/10 07:24:22.95 6m0CA7fb
ああーPNGかぁ……そういえばそんなのもあったねぇ。
16色BMPしか使った事無かったからその発想は無かった。

901:名前は開発中のものです。
11/03/10 07:25:05.24 6m0CA7fb
言い忘れた。
回答ありがとうございました。

902:名前は開発中のものです。
11/03/10 07:26:03.94 vOLR/zA1
16色BMPっていつの時代だよw

903:名前は開発中のものです。
11/03/10 07:37:10.25 6m0CA7fb
いやなんかこう、描いたまんまなのが保障されて信用できるっていうか。
(0,0,0)だけが透過されるってわかりやすいし。元々俺ドット絵しか描けないし。

でもPNGって色情報とその色が何ビット連続で続くかっていうデータ構造なんだっけか?
それなら見た目は変わらないだろうしそのほうがサイズ的にもいいんだよね。
いや前から気付いてたんだけどね、めんどくさいからずっとそのままでやっての、ごめん。

904:名前は開発中のものです。
11/03/10 09:38:01.41 jQ8f/olW
PNGは基本的にはピクセルのデータをzip圧縮してるだけ
可逆圧縮だから絶対に全てのピクセルが描いたままの色になる

905:名前は開発中のものです。
11/03/10 12:34:25.51 +yprSrry
俺も最初bmpでやってたけどpngにしたら
かなり表現したいものが楽で簡単に作れるようになった
おすすめ

906:名前は開発中のものです。
11/03/10 12:35:03.98 +yprSrry
楽で簡単ってなんだよ…orz

907:名前は開発中のものです。
11/03/10 19:59:55.15 6m0CA7fb
やったぁPNGでできたヨーありがと

908:名前は開発中のものです。
11/03/10 20:13:25.51 FAQ2zmRE
PNGでドット絵というなら、pngoutっていうフリーのコンソールアプリケーションでPNGの最適化とかおすすめよ
別にしなくてもいいけど

909:名前は開発中のものです。
11/03/10 20:33:30.41 6m0CA7fb
ということはデフォルトでは最適じゃないってこと?
まぁ情報ありがとう。

910:名前は開発中のものです。
11/03/10 21:43:01.44 2JxcKgYY
圧縮の最適なパラメータ値を探し出すのは
わりと時間がかかるからね。

911:名前は開発中のものです。
11/03/10 23:01:54.80 eX9JRndm
男は黙って32bitBMP

912:名前は開発中のものです。
11/03/11 07:33:52.45 gK4E7Ao2
データーがでかすぎじゃん。
最近のゲームはDVD埋めるためにBMP使ってるとしか思えん

913:名前は開発中のものです。
11/03/11 07:45:02.94 fDILOKgF
最近のゲームってBMPなのか?
違法コピー対策にデータ量水増ししてるという話は聞いたことあるけど

914: [―{}@{}@{}-] 名前は開発中のものです。
11/03/11 07:46:39.43 jcxEZYMy
でも結局実行するときには展開するわけじゃん。圧縮したまま表示できるわけじゃないし。メモリ使用量は変わらんのでしょ?展開処理が省かれる方がいいじゃん

915:名前は開発中のものです。
11/03/11 08:26:21.44 3h44Ixvy
メモリやCPUの少ないPSとかの中期コンシューマ機はわからないけど、
そういった処理能力が十分にある最近のPCは「展開速度<読み込み速度」だと思うのよね
大きいファイルをHDDガリガリ言わせて読み込むよりは、小さい圧縮ファイルをちょいと読み込んで、
高速なメモリやCPUで展開した方が速度的には早いんじゃないかな

916:名前は開発中のものです。
11/03/11 10:50:48.71 plaIhemI
そもそもそんなbmpとかpんg違うだけで変わってくるもんなんか

917:名前は開発中のものです。
11/03/11 10:50:54.67 OccSvVJ3
SDカードからデータを読み込む時マップ移動でめっちゃ遅かったけど
圧縮してみたら物凄い早くなってびっくりした

918:名前は開発中のものです。
11/03/11 10:56:30.82 LEs/Jeuf
そりゃHDDに比べて転送速度がかなり遅いのが多いからな

919:名前は開発中のものです。
11/03/11 11:36:41.06 KcMscP0h
>>884
過去スレにそういう話が出てた。
14ヶ月ぐらい前のレスだったけど、多分
今も再生できると思う。


645:名前は開発中のものです。[sage]2010/01/18(月) 19:34:01 ID:YzUndEty

gifアニメ、
PlayMovie()で出来たはず。


920:名前は開発中のものです。
11/03/11 21:37:47.82 plaIhemI
つい2か月前じゃんw

921:名前は開発中のものです。
11/03/11 21:58:57.74 XN7O6btB
   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |        J
/     ∩ノ ⊃  ヽ
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /


922:名前は開発中のものです。
11/03/11 22:06:30.00 7H8Pgyin
>>890だけど
結局vsync待ちするのやめて
ティアリング発生覚悟で
高精度パフォーマンスカウンタでFPS制御することにしたわ
すげー安定した
ティアリングも思ったより気にならない

923:名前は開発中のものです。
11/03/11 22:41:51.60 TNQZ9jw4
そういえばVistaか7かでOS側がティアリング防止してるなんて話も聞いたような気がする
垂直同期信号待ちとかもうする必要なさそうだね

924:名前は開発中のものです。
11/03/11 22:44:33.33 7H8Pgyin
>>923
らしいね、オレはXPだから関係ないけどな~
どういう仕組みでティアリング防止してるんだろ

925:名前は開発中のものです。
11/03/11 22:50:03.08 TNQZ9jw4
ちょっと調べた感じだと、単純に1フレーム遅らせてるだけみたい
Vistaでマウスの位置に画像を表示するだけのプログラム動かすとちょっと遅れて付いて来てるような感じを覚えてるなそういえば

926:名前は開発中のものです。
11/03/11 22:54:16.60 2Fw05PYB
DWMは画面全体をゲームの画面と同じように描画するんだよ
DXライブラリの言葉で説明すると、まず各ウィンドウをそれぞれ別々のグラフィック(テクスチャ)に描いて
それをDrawGraphで裏画面に描画した後、垂直同期待ちを行ってから表示する


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