DXライブラリ 総合スレッド 2008at GAMEDEV
DXライブラリ 総合スレッド 2008 - 暇つぶし2ch210:名前は開発中のものです。
08/12/06 04:17:22 MshHJhkd
俺もよくわからないけど、>>189

>DXライブラリでは作成したサーフェスに直接描画出来ないのでしょうか?

と明確に聞いてるぞ。
それを初心者が関係ない知ったか話をしてるとしか見えない。
「俺は平気だよ?」とか言う話もいらないと思うww

>>202もヒントになると思うけど多分新しい文字列を頻繁に表示しようとしてるんじゃないかな。
毎フレーム更新される数値を表示するって事も多いと思うし。

211:名前は開発中のものです。
08/12/06 06:11:31 VA5mVjgv
ファイナルファンタジーの裏ワザででてくる
数字ゲームとかあれ作ると面白そう

212:名前は開発中のものです。
08/12/06 09:55:12 DCsCuBVu
ブラックジャックといいたまへ

213:名前は開発中のものです。
08/12/06 11:21:34 gOAp6PdO
>>189は「同じ文字列」って書いてるじゃないか。
まあ任意のオフスクリーンバッファに描いてそれを転送したい、というのはわかるが
できる機能を追加するかDXライブラリをやめるしかないのでは。

214:名前は開発中のものです。
08/12/06 16:48:54 KujsLoK9
クリックイベントを使いたいのですがどうすればよいのでしょうか?
公式などにクリックイベントのコードがなかったのでここで質問させてください

215:名前は開発中のものです。
08/12/06 17:16:43 t9JSHoeE
SetWaitVSyncFlagをFalseにしておいて、16666マイクロミリセカンド待機し描画

↑で描画すると30フレームあたりまで落ちるんですが、SetWaitVSyncFlagをFalseにしてても同期するってあるんでしょうか?

待機を16200にすると60フレームになるので、同期でひっかかってるんだと思うのですが……

216:名前は開発中のものです。
08/12/06 17:19:10 KujsLoK9
自己解決しました

217:名前は開発中のものです。
08/12/06 20:30:15 JBa6ugiY
なんだったのよw

218:215
08/12/07 18:55:49 OyZdJ9xq
すいません、こちらも自己解決しました……

219:名前は開発中のものです。
08/12/08 00:25:32 2qR4Oo16
Cの入門書見てる段階なんですが、DXライブラリでのゲーム製作講座を見てみたら、
C言語というより、DXライブラリ言語でのプログラミングという印象を受けました。
DXライブラリを使ってプログラミングする場合は、
Cのほうは入門書を一通り読んだだけの知識でよくて、
あとはDXライブラリの使い方をきちんとやるほうがいいんですよね?

220:名前は開発中のものです。
08/12/08 00:31:03 A0APKyuo
Cも一通りの知識は要るだろうから
平行して勉強しなはれ。

221:名前は開発中のものです。
08/12/08 00:55:25 FYgRMyd9
いやいや
もろCで作ってるよ
printfが絵を表示する関数になるだけ

222:名前は開発中のものです。
08/12/08 03:17:20 tsVxmfWH
>>219
「C言語 = printfやscanf、fopen等の標準関数」だと思ってるんならそれは間違いだ

223:名前は開発中のものです。
08/12/08 03:37:47 ghLgcWkz
>>219
それでいいと思うよー。
Cの文法なんて覚える事少ないし、入門書片手に取り掛かっちゃえば大丈夫。
今後も、プログラミングで何かを作る時、基本的にDXライブラリのような、外部のライブラリの使い方を覚えるって作業が大半になるよ。
入門書に書いてあるstdio.hのprintfみたいな標準関数を覚えるみたいに。

224:名前は開発中のものです。
08/12/08 11:27:49 tq0zLS+0
>>210

>>>202もヒントになると思うけど多分新しい文字列を頻繁に表示しようとしてるんじゃないかな。
>毎フレーム更新される数値を表示するって事も多いと思うし。

それこそ仕様を見直せとしか言いようがないようなw
毎フレーム更新する数値や文章ならプレイヤーに全文しっかり読ませるためものじゃないだろうし。

225:名前は開発中のものです。
08/12/08 18:07:49 ofH1nP7I
ノベルとかアドベンチャーのサンプルがあるサイト教えてください

226:名前は開発中のものです。
08/12/08 18:55:26 dZklSLE8
公式にあったような気がするが……。

227:名前は開発中のものです。
08/12/08 20:50:58 vtoynrkC
Dxライブラリを使って
60フレーム固定のシューティングを作ろうと思ったんですが

公式をみると「グラフィックがぶれがひどくなる」と書いてあって
URLリンク(homepage2.nifty.com)

で、実際にサンプル試してみたら
確かに時々ひっかかる感じが。

これって改善はできないものなんでしょうか?

228:名前は開発中のものです。
08/12/08 20:56:58 a6vLxw2w
内部の更新処理(当たり判定,posX += vXなど)のフレームレートを倍にするとか

229:名前は開発中のものです。
08/12/09 01:42:49 osPjvukM
>>227
int Time; を
LONGLONG Time; に、

Time = GetNowCount(); を
Time = GetNowHiPerformanceCount(); に

while( GetNowCount() - Time < 17) {} を
while (GetNowHiPerformanceCount() - Time < (1000000 / 60)) {} に

書き換えてみたら?



230:名前は開発中のものです。
08/12/09 13:46:02 uZqK3Qyt
>>224
RPGやアドベンチャーゲームなら
1文字ずつゲーム内Windowに描画され、ゲーム内Windowごと表示非表示を切り替えられるって仕様は普通に有るでしょう

231:名前は開発中のものです。
08/12/09 15:29:12 hNxQdCPd
>>226
文字表示ぐらいしかないと思うけど・・・

232:名前は開発中のものです。
08/12/09 15:52:37 R5xGo07t
サンプルゲームみたいなのでなかったっけ?
前はあったはずなんだが。

233:名前は開発中のものです。
08/12/09 17:32:59 PL50HxGw
「DXライブラリサンプルゲームのダウンロード」のページにある
「スクリプトプレーヤー」の事じゃないかな。


234:名前は開発中のものです。
08/12/09 18:26:23 hNxQdCPd
スクリプトプレーヤーはソースの意味が分からない
いきなりスクリプトのソースみろとか言われてもなにがなにやらって感じ

235:名前は開発中のものです。
08/12/09 19:12:36 PIQiSLzg
サンプル見たいって話を聞くたびに
見てもわかるの?
という疑問が湧く。
同じ動きをするものを自分で書けるくらいの技量がなければ結局読めない気がする。

他人のソース読むのが超苦手で自分で書いた方が早い俺限定の話だが。

236:名前は開発中のものです。
08/12/09 19:35:05 aLvm7Uo6
>>235
アルゴリズムは同程度の技量がないと読めないけど、設計はそんなことないよ。

スクリプトプレイヤーのソース見たけどちょっと酷いな。
マジックナンバー、関数長すぎる、グローバル変数使いまくりetc...
たしかにこれ読めとか言われても俺も困る。


自作2Dライブラリ作ってたんだが、画像系の実装が終了したところで
面倒になってきたんでDXライブラリを使うことにした。おまいらよろしく。

237:名前は開発中のものです。
08/12/09 20:33:33 PIQiSLzg
>>236
ああ確かに設計は読みたいかも。
うまい人のクラス構成とかはみてみたい。

238:名前は開発中のものです。
08/12/09 20:44:39 HfON+uiV
うまい人のコードは,クラスやメソッドの実装にどんどんステップインしていかなくても
表面だけ見れば理解できるよね

239:名前は開発中のものです。
08/12/09 20:59:26 MCEWLRF6
>>228
すいません、内部処理は一定化したかったので・・

>>229
ありがとうございます!
引っかかりが無くなりました。
タイマーの精度の問題だったみたいですね。

240:名前は開発中のものです。
08/12/10 15:43:30 LwDc2Tc0
>>220
>>221
>>222
>>223
printfなどが関数だということを意識していませんでした。
まさに、C言語=標準関数のつもりで勉強していました。
外部ライブラリを使うのだから、それから提供される関数の使い方を勉強するのは当たり前ですね。
プログラミングに対する疑問が少し解けました。どうもありがとうございました。

241:名前は開発中のものです。
08/12/11 09:38:29 oww0q0NN
画像の、ある部分だけを拡大して描画することは出来ますか?
ループ表示する背景の一部分だけを拡大表示したいです。

242:名前は開発中のものです。
08/12/11 10:38:54 qrB4r20j
やった事ないけど、指定領域だけで新しいグラフィックハンドルを作るとかできるはずだから、
それをしてから拡大表示させればいいんじゃないかな。

前提条件として矩形範囲のみって事になるけど。

243:名前は開発中のものです。
08/12/11 11:00:28 oww0q0NN
>>242
なるほど、ありがとうございます。矩形なのでその辺は大丈夫です。
でもアクションゲームみたいに、リアルタイムにバックグラウンドをスクロールさせつつ、
拡大率を変えてバックグラウンド表示するのはその方法ではコストが掛かり過ぎて無理なようですね。
DrawExtendGraphの描画元矩形指定関数があれば一発なのに><

244:名前は開発中のものです。
08/12/11 11:23:00 qrB4r20j
背景をスクロールさせつつ、拡大部分もスクロールさせるのかな。
それじゃ無理だね。

それならいっそ、

背景を普通の大きさで書く → 画面の描画範囲を設定(SetDrawArea) → 背景を拡大して書く

ってやってみるのはどうだろう。
背景を二回描くから、やり方によってはコストかかるけど……。

245:名前は開発中のものです。
08/12/11 12:23:15 Otp3maXe
つDrawRectExtendGraph

246:名前は開発中のものです。
08/12/11 12:49:25 oww0q0NN
>>244
そうですそうです、元画像の一部分を拡大表示したいんです。

>>245
おお!ありがとうございます。そんな関数があったんですねw
面倒でも自分でDxLib.hをチェックしないと駄目ですねw

247:名前は開発中のものです。
08/12/12 18:14:48 dqaLLhhf
今 トルネコやシレンみたいな2Dダンジョン探索ゲームを
800 x 600 ウィンドウモードで作っているんですが
2Dゲームは 640 x 480 が基本だと聞きました。

800x600だと何か不都合でも起こるんでしょうか?

248:名前は開発中のものです。
08/12/12 19:08:10 e0uVhp4S
32x32とか16x16のブロックがぴったり収まらない、とか。?

249:名前は開発中のものです。
08/12/12 20:15:13 dqaLLhhf
画面下と右にブロックが半分だけ表示されるのは我慢しようと思います。
800x600だと特定の環境ではちらつきが酷いとかだったら嫌だなぁと思いまして

250:名前は開発中のものです。
08/12/12 20:24:18 yokHYtBf
>>247
処理速度の問題とユーザの環境の問題
ちなみにカラーモードも256色パレットモードが基本だった
しかしそれは過去の話
今はPCのスペックは十分だし、800*600の画面モードの無いPCの方が少ないと思うから問題ないかと


251:名前は開発中のものです。
08/12/12 21:25:42 aXKygAOw
ちょっと便乗
CRT使いなんでわからないんだけど
液晶の場合、画面サイズに合わない画面モードの表示ってどうなるの?

1)全画面に拡大されてぼやける
2)表示分だけ使われて余白は黒塗りになる

252:名前は開発中のものです。
08/12/12 21:28:59 8ZHcqCMQ
>>251
A.液晶の設定しだい

253:名前は開発中のものです。
08/12/12 22:00:48 J3zydYCS
初心者で悪いんだが質問。

うまく言えないんだけど

player.cpp内でint宣言をして、void player()で増減させる。
そして
「enemy.cpp内」で「player.cppのvoid player()」で増減したint変数を使用して作りたい判定があるんだけど。

こういうのってやっぱり出来ないのかな?


254:名前は開発中のものです。
08/12/12 22:09:20 r3WCUutT
extern

255:名前は開発中のものです。
08/12/12 22:12:35 dqaLLhhf
player.cppでグローバル変数としてint宣言して
enemy.cppの冒頭にextern宣言すれば判定にも使えるようになるよ

256:名前は開発中のものです。
08/12/12 22:19:36 J3zydYCS
>>254-255
ああそれ忘れてたww
おもいっくそ素材ファイルの読み込みで使ってたのに

ありがと、助かった

257:名前は開発中のものです。
08/12/12 22:34:39 ztObze9Y
-- player.cpp --
int i;
void player(){ i += 1; }

-- enemy.cpp --
extern int i;
void enemy(){ if(i) ・・・ ;}

258:名前は開発中のものです。
08/12/12 22:49:50 aXKygAOw
>>252
即レスサンクス。

じゃあプログラムする側としては
あんまり気にしても意味無いんだ・・

勉強になりますた。

259:名前は開発中のものです。
08/12/12 23:04:32 e0uVhp4S
>画面サイズ
最近流行りの低価格ノートPCとかだと、どんな感じなんだろう?
縦600くらい?

260:名前は開発中のものです。
08/12/13 01:45:20 E/1bppJy
if(enemy01_Life < 0){
DeleteGraph( enemy01 ) ;
}
else if(hitS < hit ){
PlaySoundMem( hit_test , DX_PLAYTYPE_BACK );
shotflag = 0;
enemy01_Life -=1;
}

このコードで、最後のenemy01_Life -=1の判定を一回だけ判定場合ってどうすればいいの?
ダメージ判定だけがどうしても残ってしまう

261:名前は開発中のものです。
08/12/13 02:02:18 Swo2xfir
>260
具体的に何がしたいが、何が起こってるのかを示せ。
コードにはコメントを入れろ。第三者には何をやってるか分からない。


んで、だ。
ショットが命中した時、

 (1)ショット自体を消す(敵に当たると弾が消える)
 (2)敵ごとにカウンタを作っておき、「一度当たったら10フレームの間は無敵」とかにする
 (3)弾ごとに自分がどの敵に命中したかを覚えておき、2度目は命中扱いにならないようにする

こんな感じ?

262:名前は開発中のものです。
08/12/13 02:20:00 E/1bppJy
>>261
玉の画像は消えるんだけど、当たり判定だけが「次にショットボタンを押すまで」残るんだ。
何がしたいかは、「玉一つにつき一回だけダメージ判定」をしたい。
ショットコード↓

if( Key & PAD_INPUT_A && shotflag == 0){ //ショットボタンが押されたら
PlaySoundMem( p_shot_se , DX_PLAYTYPE_BACK );//ショット音を鳴らす
shotX = PlayerX ;
shotY = PlayerY ; //プレイヤーの現在位置を取得
shotflag = 1 ; //ショットフラグONにする
}
if( shotflag == 1 ){ //ショットフラグONになったら
shotY -= SHOT_SPEED ;
DrawGraph( shotX+10 , shotY , p_shot_img , TRUE ) ;
if(shotY < SHOT_DELAY){
shotflag = 0 ;
}
}

判定コード↓
GetGraphSize( enemy01 , &SizeX , &SizeY ) ; //グラフィックのサイズを取得
hit = SizeX/2 ; //グラフィックの当たり判定(半径)
hitX = shotX - enemy01X;
hitY = shotY - enemy01Y; //三角形の斜辺を除くXYの長さ
hitS = sqrt(hitX*hitX+hitY*hitY); //斜辺
if(enemy01_Life < 0){ //敵死亡してる時
DeleteGraph( enemy01 ) ;
}
else if(hitS < hit ){ //(ヒット時)
PlaySoundMem( hit_test , DX_PLAYTYPE_BACK );
shotflag = 0;
enemy01_Life -=1;

263:名前は開発中のものです。
08/12/13 02:39:09 DJ2YFwb1
>>262
判定のコードがifにかかってない

if( shotflag == 1 ){ //ショットフラグONになったら
shotY -= SHOT_SPEED ;
DrawGraph( shotX+10 , shotY , p_shot_img , TRUE ) ;
if(shotY < SHOT_DELAY){
shotflag = 0 ;
}

判定コード↓
GetGraphSize( enemy01 , &SizeX , &SizeY ) ; //グラフィックのサイズを取得
hit = SizeX/2 ; //グラフィックの当たり判定(半径)
hitX = shotX - enemy01X;
hitY = shotY - enemy01Y; //三角形の斜辺を除くXYの長さ
hitS = sqrt(hitX*hitX+hitY*hitY); //斜辺
if(enemy01_Life < 0){ //敵死亡してる時
DeleteGraph( enemy01 ) ;
}

264:名前は開発中のものです。
08/12/13 02:43:12 DJ2YFwb1
なんか伝わる気がしないから書き方を変えると

if(shotflagが真)
{
  //ここに判定のコードも書く
}

265:名前は開発中のものです。
08/12/13 02:56:17 E/1bppJy
えっと、つまり

ショットコード内で
if( shotflag == 1 ){ //ショットフラグONになったら

この部分に判定コード(>>263のGetGraphSize~DeleteGraph( enemy01 ) ;)

}

を入れないとダメってこと?

266:名前は開発中のものです。
08/12/13 03:06:51 DJ2YFwb1
そう
shotflagって弾があるかないかのフラグでしょ?
今のままだとshotflagが0の時にも判定される

あといろいろ突っ込みどころがあるけど
そういう書き方してると確実にスパゲティソースになる

267:名前は開発中のものです。
08/12/13 11:56:05 E/1bppJy
>>266
マジかw
プログラム初心者で全然分からんから適当に組んでる
既にややこしくなってる


268:名前は開発中のものです。
08/12/13 12:55:29 6PMqtPt6
動けば結構。
実際に作って慣れればいいのだ。

269:名前は開発中のものです。
08/12/13 13:01:52 E/1bppJy
>>263-264
そのとおりにやってみたけど
やっぱり玉一つで「次にショットボタンが押されるまで」の間に複数回攻撃判定が出ちゃう・・・。



270:名前は開発中のものです。
08/12/13 13:08:45 WaQfNGav
>>267
初心者なら仕方なら、一回スパゲティコード書いて捨てる経験もしてみるといいかもね。
それがいやならオブジェクト指向の簡単な本があるからそれ読んでみるといいよ。
オブジェクト指向とゲームは相性がよい部類。

ためしにオブジェクト指向で書き直してみようかと思ったけど、半分ほど書いた時点で
長くなった上に果たしてこれを理解できるのかという疑問がわいてきたので捨てた^w^)


271:名前は開発中のものです。
08/12/13 13:10:15 WaQfNGav
仕方ならってなんだよOTL 仕方ない、ね

272:名前は開発中のものです。
08/12/13 13:19:00 klDdA96T
OOとゲームって相性いいかなぁ。
素人の俺がいうのもなんだけどむしろ相性はよくない方だと思うけど、経験が足りないからかな?
一応ゲーム作りはDXライブラリ使ってもOO(OO風ともいう)を意識して書いてるけど、
C++の便利な機能(クラスや継承程度)を使うくらいでこれぞOOって感じでもないなぁ。
C#でちょっとしたツールなんか作るとOOだなぁって感じるけど。

273:名前は開発中のものです。
08/12/13 13:48:06 WaQfNGav
>>272
ツールを作る件はオブジェクト指向じゃなくて提供されるオブジェクト指向ライブラリが優秀
ってだけだと思う。

>相性はよくない方
どの辺が?ならデータ指向で作る?手続き指向で?俺は絶対いやだけどなー。

パラダイムってのはつまるところコードの整理術なわけで、それを感じないってのは別に
不思議じゃないよ。

さっきでたコード、弾丸と敵との当たり判定がでてきだけど、

int dx = shot->getX() - enemy->getX();
int dy = shot->getY() - enemy->getY();
double distance = sqrt( dx*dx + dy*dy );
if( distance < HIT_SIZE )
{
/*ヒット処理*/
}

って書いてたらお前ちょっと表に出ろだけど、ちゃんとTell, dont ask の原則にのっとって書いたら

if( shot->hitTest( enemy ) )
{
/*ヒット処理*/
}

変更にも強く、なおかつコードはわかりやすくなる。

274:名前は開発中のものです。
08/12/13 17:56:36 E/1bppJy
もー全然できねーよおおおおおおお

いっそコレ仕様にすっか
敵の端っこにショット当てた状態でショットボタンを押さないと一定時間大ダメージ!

画期的と言えば画期的だが生憎ただのバグだ。

275:名前は開発中のものです。
08/12/13 18:54:39 DJ2YFwb1
>>274
今じっくり見たけど
>>262のif( shotflag == 1 )のブロックを>>262の一番最後で閉じるか
else if(hitS < hit )のブロックの中でhitSを条件満たさないように変更する
これで正常になると思うが、違ったらすまそ

276:名前は開発中のものです。
08/12/13 18:56:46 O5bnNqrG
shotflagっていうのは弾の生死状態を管理するフラグなんだから、
弾が生きているときだけ判定をすればいいわけだよね。
>>>264が言う通り当たり判定をするブロックを if ( shotflag == 1 ){}で囲めば出来ると思うんだけどなあ。
弾が死んでても玉の座標は留まって、さらにshotflagが機能していないから(セットが上手く行っていないか判定処理に考慮されていない)
何度も当たっていると思われるんだけど。

てか敵をデタッチするのにDeleteGraph()で画像そのものを削除するって激しすぎないか?w
if ( enemy_alive ) { Task(); } // 敵が生きているときのみ敵に関する処理を行う
とかにした方が良いと思うんだが。

277:名前は開発中のものです。
08/12/13 18:59:29 O5bnNqrG
ごめん、if ( enemy_alive ) → if ( enemy01_Life >= 0 )

278:名前は開発中のものです。
08/12/13 21:59:39 E/1bppJy
>>274だけど、ちょっと検証した
当たり判定は座標で行ってたから

URLリンク(www.uploda.org)

この画像の様に(hit>hitS)になってる時に判定が出て、その判定が次玉を出すときまで残るんだ。
だからこの画像はhitは21でhitSは13.9.....ってなってるので次に玉が出るまで(hitSの数値が変わるまで)凄い勢いでenemy_Lifeが減り続けてる

敵に当たった瞬間にhitSをリセットすればいいのかな?

279:名前は開発中のものです。
08/12/13 22:22:05 O5bnNqrG
もうソースうpしてくれよ

280:名前は開発中のものです。
08/12/13 22:28:29 E/1bppJy
URLリンク(www2.uploda.org)
パスは274

問題のソースはenemy_moveとplayerにあります。

初心者だからすげー読みずらいと思う

281:名前は開発中のものです。
08/12/13 22:30:08 DJ2YFwb1
>>275では解決しなかったか?

282:名前は開発中のものです。
08/12/13 22:32:35 E/1bppJy
>>281
うん、その通りにやってみても何故か結果は変わらずだった

283:名前は開発中のものです。
08/12/13 22:32:46 O5bnNqrG
hitSっていうのは敵と弾との距離でしょ
それは当たり判定をする必要があるとき、
つまり弾と敵が生きているときに毎フレーム計算すればいい
弾の座標を遥か彼方にリセットしたりhitSを直接いじくって
当たり判定が真にならないようにすれば確かに上手く行くだろうけど
本質的には当たり判定をする必要が無いときに判定しているのが問題なんじゃないの?

284:名前は開発中のものです。
08/12/13 22:45:11 E/1bppJy
>>283
毎回計算して判定してるんだけど
ヒットした時に計算が次玉出すときまで止まっちゃう

285:名前は開発中のものです。
08/12/13 22:47:31 O5bnNqrG
>>280
全然修正されてないじゃないかw

「enemy_move.cpp」の
GetGraphSize( enemy01 , &SizeX , &SizeY ) ; //グラフィックのサイズを取得
の前に一行追加して
if ( shotflag == 1 ){
GetGraphSize( enemy01 , &SizeX , &SizeY ) ; //グラフィックのサイズを取得
とする。
次に、その下のほうの
int Color ;
の前に閉じ括弧を追加して
}
int Color ;
とする。
つまり、当たり判定をしている部分を
if ( shotflag == 1 ){
}
で括る。

それとインデントをきっちりしないとネストレベルが分からなくなるよ。

286:名前は開発中のものです。
08/12/13 22:53:39 klDdA96T
>>273
んーていうかC#の件は、ライブラリが優秀で作りやすい=オブジェクト指向って事じゃなくて、
コントロール一つ設置してイベントを呼び出すってだけでオブジェクト指向を感じる。
もっと具体的に言えばイベントハンドラ(やデリゲート)がオブジェクト指向だなぁって。

提示してくれた下のコードも、それだけじゃオブジェクト指向を感じない。
結果的に言わんとしようとしてることはわかるけどね。
ただそれだけじゃただのサブルーチン呼び出し。

言いたいのはそのコードだけを見てオブジェクト指向じゃないって事じゃないし、
自分でゲーム作る時もオブジェクト指向で書きたいわけだけど、
概念的に無理やり感があるのと、非オブジェクト指向でも書けるってので、
GUIアプリと比べて相性がいい方ではないって事。


287:名前は開発中のものです。
08/12/13 23:05:58 E/1bppJy
>>285
おおおおおおお!!!ありがとおおおおお
一つのライフしか減らないwwwwwww

すげー!ショットフラグがONの時にしか判定しないようにするってそういう事だったのかwww

ちなみにプログラムの書き方?はこんな感じでいいのかな?


288:名前は開発中のものです。
08/12/13 23:22:28 HImZ/jwv
どうでもいいけど定数を#defineで書くのとconstで書くのってどっちがいいのけ?
俺は気持ち悪いからconstでやってるわけだが

289:名前は開発中のものです。
08/12/13 23:33:22 Swo2xfir
>288
・歴史的な経緯とかはあるかも
・特に理由が無ければconstでいいんじゃね?
・defineじゃないと出来ないこと、スマートなこともあるから気をつけろ

290:名前は開発中のものです。
08/12/13 23:34:35 Swo2xfir
>287
とりあえず、何でもいいので1つ完成させてからじゃないと
定番の書き方とかは説明しても意味が無いし、おそらく理解できないと思う。

291:名前は開発中のものです。
08/12/13 23:42:11 MCFYNnvA
#defineは計算式入れられるのがいいな
気を付けないと間違った結果が返ってくるハメになるが

292:名前は開発中のものです。
08/12/14 00:49:54 UsQn7VQk
>>287
おめでとう。お世辞にも綺麗なソースとは言えないけど、
モノとして動いているということはとても大事なこと、すごいことだよ。
作り続けていれば段々上手くなって行くはず。

あと>>285の修正をした段階で、今度は敵の消滅タイミングがおかしくなると思う。
敵のライフが-1になった瞬間には敵は消滅せず、その後自機が弾を発射した瞬間に消滅する、っていう風に。

これを修正するには、敵をデタッチ(殺す)処理をしている部分を移動させればいい。

/* ↓elseは消し、必要なら if ( enemy01_Life >= 0 && hitS < hit ) などとする。しなくても出来るが。
  または if ( shotflag == 1 ) のところに敵の生死チェックを入れる。即ち if ( enemy01_Life >= 0 && shotflag == 1 ) とする。しなくてもでき(ry */
if(hitS < hit ){ //敵の画像と自機の玉を直角三角形結んだ時の斜辺が当たり判定より小さい時(hit!!)
    PlaySoundMem( hit_test , DX_PLAYTYPE_BACK );
    shotflag = 0;
    enemy01_Life -=1;
    if(enemy01_Life < 0){ //敵死亡してる時 /* この3行を */
        DeleteGraph( enemy01 ) ;        /* ここに */
    }                        /* 移動 */
}

まずはインデント(ソースコードの段落処理)から始めよう。

293:名前は開発中のものです。
08/12/14 01:24:21 2jf1rfQx
そこでPythonとrubyの登場ですね

294:名前は開発中のものです。
08/12/14 07:22:24 HIyGZizO
>>286
さっき提示したコードの価値をただのサブルーチン呼び出しとか
言っちゃってる時点でなんかもう全然わかってない。

あれはShotオブジェクトにEnemyとの当たり判定を”頼んで”いるんだよ。
この違いがわからないんならいつまでたっても素人のまま。

というか
>もっと具体的に言えばイベントハンドラ(やデリゲート)がオブジェクト指向だなぁって。
デリゲートなんか関数型プログラミング言語の概念の拝借だよ。
これがオブジェクト指向!なんてデザインパターンこそがオブジェクト指向!というのと同じくらい笑えるんだが。

>概念的に無理やり感があるのと、非オブジェクト指向でも書けるってので、
>GUIアプリと比べて相性がいい方ではないって事。
どこが無理やりなんだよw
さっきのコード、Enemy,Player,Shotというクラスを抽出できるけど、これのどこが無理やりなんだよ。自然だろうに。

それとGUIアプリだって手続き型で書ける。イベントハンドラやデリゲートはオブジェクト指向の一機能を使って
実装されてるけれど、それ自体はオブジェクト指向じゃない。だからVBでもGUIアプリが組めるわけだ。


ここまで言ってゲームをオブジェクト指向で組むのは向いてないと言うならもうしらね
というかもっと勉強してくださいいやマジで

295:名前は開発中のものです。
08/12/14 09:52:32 1zOFBaLD
C#6年やってるんだけど未だにオブジェクト指向わからねえ。
でもゲームとオブジェクト指向は相性いいと思うよ。

296:名前は開発中のものです。
08/12/14 11:03:33 DFScKmBl
イベントを使ってたところをEventListenerとか使ってobserver剥き出しに変更したら
オブジェクト指向になるのか? 実質的に全く等価なのに?
>>294の言うオブジェクト指向って何なんだ

297:名前は開発中のものです。
08/12/14 11:38:14 NFgVN8d3
オブジェクト指向って単純に、人が走っても車が走っても同じ「走る」だ、ってだけじゃねーの

298:名前は開発中のものです。
08/12/14 12:16:50 h39ltAFv
オブジェクト指向って考え方が出る前からプログラム作って遊んでるが
未だにオブジェクト指向が理解できん。
273で言うならちょっと表へ出ろレベル以下だ。

299:名前は開発中のものです。
08/12/14 17:59:02 17g8Fdx4
>>294は釣りだよな?w
突っ込むところが多すぎるww
「ShotオブジェクトにEnemyとの当たり判定を”頼んで”いる」だけでオブジェクト指向とかww

ところで、ゲームをオブジェクト指向で組むのは向いてないって話題は誰がしてるの?してない気がする。。

300:名前は開発中のものです。
08/12/14 18:01:31 17g8Fdx4
>>297
たぶんオブジェクト指向入門書にはそういう概念的な事が書いてあると思うけど、
オブジェクト指向って本当は概念の事じゃないよ。
もっと具体的なプログラミングの事。
「ShotオブジェクトにEnemyとの当たり判定を”頼んで”」も別にオブジェクト指向じゃないww

301:名前は開発中のものです。
08/12/14 18:44:57 CDnr1Yv3
>>300
そうなん?
レシーバか引数が違えばそれは別物だっていう名前空間の概念がまずあって
そいつを楽に実現するための補助がクラスやテンプレートやインターフェースなんだって認識だったが
具体的なプログラミングの事を言うなら言語がクラスベースかどうかで相当違ってくると思うし
あと>>299最後の行は>>272

302:名前は開発中のものです。
08/12/14 18:58:29 AhiFoxCU
構造体に関数がくっついただけのクラスのインスタンスを生成して
それで動かしたらオブジェクト指向。
そう思っている俺が通りますよ。

303:名前は開発中のものです。
08/12/14 19:02:22 ST598Jfh
何もめてんだよ

>>272は基本的に用語を間違っているがそれに気付いていない
で、親切に答えてくれた>>273と会話がかみ合っていない

>>272はVBライクなコンポーネント貼りつけとプロパティ設定での
プログラミングスタイルとオブジェクト指向を混同している
また、Windowsのイベントドリブン構造を言語仕様と勘違いしてる

-まとめ-

Q.DXライブラリを使うとVBでアプリ作るみたいにコンポーネント貼ってプロパティ設定だけでプログラムできますか?
A.できません

Q.イベントドリブンがオブジェクト指向ですよね?
A.違います

Q.イベントドリブンでゲームプログラムは書けますか?
A.書けます

Q.オブジェクト指向でゲームプログラムは書けますか?
A.書けます


304:名前は開発中のものです。
08/12/14 19:18:54 mrF69eoK
ん~・・・?
>>272
>DXライブラリ使ってもOO(OO風ともいう)を意識して書いてるけど
っていうのはDXライブラリ自体がC(非OOPL)で書かれてるけどって意味だろ
>>303こそ勘違いしてるだろ

305:名前は開発中のものです。
08/12/14 19:22:31 17g8Fdx4
厳密に言えばC/C++使ってる時点でピュアなオブジェクト指向は無理だけどな。
メッセージ呼び出しっていう機能はないし、それに似た機能はメソッド呼び出し(=関数呼び出し)でしかないし。
組み込み型もオブジェクトじゃないしいきなりint main(){}で始まるしww

306:名前は開発中のものです。
08/12/14 19:33:16 5menpJL8
幸せって何ですか?

307:名前は開発中のものです。
08/12/14 20:33:18 P8eg6rH1
オブジェクト指向ってそんなに高度な事なの?
それとも人それぞれ考え方が変わるモノなの?

308:名前は開発中のものです。
08/12/14 20:46:29 uHyIUedU
CしかわかんなくてもDirextXゲームプログラムがさっくりできちゃうのがウリの
DXライブラリのスレでオブジェクト指向を熱っぽく語る男の人って……

309:名前は開発中のものです。
08/12/14 21:04:56 SEtb8HBj
        ____   
       / \  /\ キリッ
.     / (ー)  (ー)\      
    /   ⌒(__人__)⌒ \    < 厳密に言えばC/C++使ってる時点で
    |      |r┬-|    |        ピュアなオブジェクト指向は無理だけどな。
     \     `ー'´   /
    ノ            \
  /´               ヽ              
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.    
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))


          ____
        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)
| / / /     |r┬-|    | (⌒)/ / / //  だっておwwwww
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/
|     ノ     | |  |   \  /  )  /
ヽ    /     `ー'´      ヽ /    /     バ
 |    |   l||l 从人 l||l      l||l 从人 l||l  バ   ン
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、    ン
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))


310:名前は開発中のものです。
08/12/14 21:23:33 a4AnO2Cl
DXライブラリで質問が・・・



あ、スレ間違えました!すみません

311:名前は開発中のものです。
08/12/14 21:47:10 17g8Fdx4
>>309
int main()ってオブジェクト指向的になんなの?www

312:名前は開発中のものです。
08/12/14 22:41:43 ST598Jfh
>>304
何がん~・・・?だ
そんな事だから

>>286
>んーていうかC#の件は、ライブラリが優秀で作りやすい=オブジェクト指向って事じゃなくて、
>コントロール一つ設置してイベントを呼び出すってだけでオブジェクト指向を感じる。

とかマヌケな事を書いてしまうのさ
>>303のまとめでいいんだよ

RADツールと言語の区別もついてない質問に対して、みんなにちゃんと答えてもらってる事をまず理解するべきだな
元々スレ違いだ、感謝こそすれ相手を見下すとか勘違いすぎるんだよww

313:名前は開発中のものです。
08/12/14 23:20:03 17g8Fdx4
なんか常に話がちょいズレの人いるな

314:さらに話がちょいズレの人
08/12/15 00:08:20 JJfbOdAj
>>303には、同意だけど。 OOなんて元の発生が3つぐらいあって、
さらに様々な言語にそれらのOOが混同されながら導入される過程で
どんどんと複雑に入り組んでいってる。
(しかも、良くも悪くも元がProgramming言語における概念だから、
 普通の言葉に意味を汲み出す過程で色々とノイズや過不足が起こる。
さらに、OOAだ、OODだなんだので純粋なOOよりも
とりあえず使える道具としてのOOが今のメインストリームだと思うし。)
だから、結果的には、人によってOOの概念も色々な違いがある。


あと、そんな訳だからと言う訳じゃないがCだって、OOPLは可能。
ただし、言語的なサポートが対応してないから、
様々な工夫をする必要があったりする。
また、逆の意見としても>>305のint main()で始まるからオブジェクト指向じゃない。
ってのもどうかと思う。
OSも含めたアプリケーションをProgramとみるならば、
int main()は、ズバリそのアプリの呼び出しメッセージと見做しても誤解ではないしね。

あと、>>301の言ってる事は別にOOじゃないと思うぞ。
それらは単に多態性とかであって、OOとしてあったら好ましいが、

さらに>>300のプログラミングの概念と具体的なプログラミングが別モノっぽいのも違うんじゃない?
基本アセンブリでやるでもない限りは、プログラムは概念に概念を積み上げた産物だし、
それらの概念を如何につかうか?どのように解釈するか?がプログラミングでしょ。
だからこそ、gotoは悪!!やJavaにはポインタはありません!!みたいな話も出てくるわけでww

315:名前は開発中のものです。
08/12/15 00:20:00 xNu63hXk
俺は別にピュアだか厳密だか理想的だかなOOじゃなくても
それなりに作れてメンテできればいいかな
ピュアなのがいい人はその人が納得する言語なりなんなりを使えばいいし

316:名前は開発中のものです。
08/12/15 00:48:36 syJyrDB+
ついこの前DXライブラリでゲームを作り始めた初心者なんですが。
時間のとり方について質問があります
URLリンク(homepage2.nifty.com)
のサイトを見て時間所得して表示までできたのですが、ボタン(たとえばスペースボタン)を押して時間を最初からやり直すのはどうすればいいでしょうか?(キー入力状態の取得はできています)
日本語わかりずらかったらすいませんm(_ _;)m

317:名前は開発中のものです。
08/12/15 00:52:41 r0Y4Aqo3
int ゲーム内ではこっちを使う;

ゲーム内ではこっちを使う = GetNowCount();
if (ボタンが押された) ゲーム内ではこっちを使う = 0;

318:317
08/12/15 00:57:14 r0Y4Aqo3
間違えた。正しくは
int ゲーム内ではこっちを使う;
int 前にリセットした時間;

int now = GetNowCount();
ゲーム内ではこっちを使う = now - 前にリセットした時間;
if (ボタンが押された) { ゲーム内ではこっちを使う = 0; 前にリセットした時間 = now; }

319:名前は開発中のものです。
08/12/15 05:27:51 dny0TB5O
>>148
いや、スレチでもないぞ。ライブラリ作者の古い作品だから

320:名前は開発中のものです。
08/12/15 11:37:12 gYDVxSnY
>>273
if( shot->hitTest( enemy ) )
{
/*ヒット処理*/
}
って書くとたしかに変更に強くわかりやすくなるけどそれがOOだっていうのは尚早だよ。
hitTest()の中身は結局上と同じ事してるんだから。
だからその部分がOOだって言われるとただのリファクタリング手法でしかない。
もしその部分だけでOOだっていえるならGUIアプリだって
TextBox tb = new TextBox;
list.add(tb);
ほら、同じ。
でも両方ともただオブジェクトを渡してるって事実しかないよ。
それを推しておきながらデリゲートだけじゃOOじゃない!っていうのは横暴だなぁ。
ちなみにVBは今はOOPLだよ。
OOは議論が起きるくらい曖昧なところもあるけど、やっぱりカプセル化・継承・ポリモーフィズムの3つは最低限主張すべきだね。
個人的にはわざわざなんでカプセル化なんてあるのか疑問だけどw(隠蔽や最小の原則なんかは構造化言語からずっとあった)

321:名前は開発中のものです。
08/12/15 11:46:55 gYDVxSnY
>>303
煽るわけじゃないけど流れを読んできてなんでいきなりWindowsのイベントドリブンが出てくるのかなって思ったんだけど、
きっと>>305のメッセージ呼び出し機能って言葉からそう思ったのかな?
たしかにイベントドリブンもメッセージっていうけどOOのメッセージっていうのは全く別物だよ。
純粋なOOPL(Smalltalkなど)ではメッセージ機能っていうのがあるんだ。
メソッド呼び出しに似てるけどちょっと違う。
C++ではメンバ関数、Javaではメソッド呼び出しで実現してるけどね。
詳しくは自分で調べてみて。

322:名前は開発中のものです。
08/12/15 13:36:35 Mi5wQEEl
>>321
>>286
>コントロール一つ設置してイベントを呼び出すってだけでオブジェクト指向を感じる。
>もっと具体的に言えばイベントハンドラ(やデリゲート)がオブジェクト指向だなぁって。
いや、Windowsのイベントドリブン構造の事だ
読めばわかる

323:名前は開発中のものです。
08/12/15 17:20:30 k3xYLtfr
オブジェクト指向は僕達の心の中にあります

324:名前は開発中のものです。
08/12/15 18:27:06 VbZykIE5
俺の中でオブジェクトっつったらスプライトの事だ!

325:名前は開発中のものです。
08/12/15 20:55:40 0kk0L8Su
じゃあ俺は、この形。

int WINAPI WinMain(うんたらかんたら~){
    Application App;
    App.Run();
    return 0;
}

Applicationのインスタンスが生成されてる間はアプリが生きてる。
App破棄と同時にアプリも終了する、この形がいちばん美しいと思う。

326:名前は開発中のものです。
08/12/15 21:40:30 fyQ9eFTJ
>>325
シングルスレッドであれば、確かに良いアイディアだと思う。

327:名前は開発中のものです。
08/12/15 21:43:08 WW1gkqvT
そこまでやる必要あるか?

328:名前は開発中のものです。
08/12/15 23:22:35 A6pVWDv7
>>326
中でタスクマネージャー的なものでCPU毎に負荷分散させているかもしれんぞ?

329:名前は開発中のものです。
08/12/16 00:20:42 fzHt/ZSS
>>325のやりかたにどこかまずいところあるの?

330:名前は開発中のものです。
08/12/16 00:26:55 JBSSxUHl
>>324
用語が適当すぎるよな。

メモリを占拠した実体→「オブジェクト」
コンパイルして出来るファイル→「オブジェクト」
自分自身で処理させる論理機構→「オブジェクト」

名前付けたやつちょっとツラ貸せっていうか
昔、書籍読んだときさっぱり意味わからんかったぜ・・

331:名前は開発中のものです。
08/12/16 00:44:36 o3pFEybH
メモリを占拠した実体ってインスタンスのこと?

332:名前は開発中のものです。
08/12/16 01:58:01 r2TMQqJU
変数じゃないの?変数もオブジェクトだよね

333:名前は開発中のものです。
08/12/16 04:02:55 dNyohwYS
>324はもっと誉められていいと思う

334:名前は開発中のものです。
08/12/16 11:37:43 IA9CyF+N
昔読んだ本には、OOPは

オブエクとは「物」と訳される。曖昧さの象徴である。
頭の中でイメージしなさい。
物と呼ばれる、段ボール箱「みかん箱」がたくさんある。
みかん箱の中身は隠されている、知らなくて良い。
みかん箱を紐で結ぶ事が「プログラム」である。
みかん箱には切替スイッチが付いている、それで位置、色、大きさが変化する。
みかん箱が「オブジェクト」である。


335:名前は開発中のものです。
08/12/16 14:57:03 j+OyGE8J
基本的にOOやマイノリティ言語のウンチクや自分語りはスレ違いだな

336:名前は開発中のものです。
08/12/17 01:37:25 SDA7SaR9
>>334
簡単に言うと
バカでも切り替えスイッチをポチって押せば変化する事が出来る。
けどその変化する「仕組み」を理解する必要は無い。

って事?

オブジェクト指向あんまよく分からないけど、そうなると定数#defineって簡単なオブジェクト指向に入るの?

例えば
#define SPEED 25//数値を変えると速度が変えられます。
ってあったら数字を変えるだけで変化が実装できるし。

なんか違うかw

337:名前は開発中のものです。
08/12/17 02:09:42 adQIUXL6
>>336
それだけだとただのブラックボックス化。
OOの一部ではあるけどCの関数だってブラックボックスでしょ?

338:名前は開発中のものです。
08/12/17 02:33:05 S1ZUobQv
グラフィック表示させる関数いろいろあるじゃない
DrawGraphとかDrawTurnGraphとかDrawExtendGraphとかDrawRotaGraphとかDrawRotaGraph2とかDrawModiGraphとか
あれみんな同じ重さなのかな
あと、やっぱ画像の大きさと重さにも関係あるのかな
あと、同じ四角のグラを表示させるのでもその四角のグラ用意して読み込んで表示させるのと
DrawBoxで表示させるとでは重さは変わらないのかな

339:名前は開発中のものです。
08/12/17 02:38:22 S1ZUobQv
自分でOO使ってゲーム作ろうとすると結局グローバル多用したりパブリック多用しちまうんだよなあ

340:名前は開発中のものです。
08/12/17 02:53:08 dezoAnwU
>>336
>>337
URLリンク(ja.wikipedia.org)

341:名前は開発中のものです。
08/12/17 02:59:26 dezoAnwU
>>338
自分で実際に比べてみればいいんじゃね

342:名前は開発中のものです。
08/12/17 03:20:54 adQIUXL6
>>338
”重さ”ってなんだ?^^;
ソース見てベンチ測って見ればいいじゃん。

343:名前は開発中のものです。
08/12/17 06:22:20 S1ZUobQv
なるほど
その発想はなかったわ
そんなこといままでしたことなかったからな
面倒臭さと相談してやるかどうか考えてみる

344:名前は開発中のものです。
08/12/17 07:31:49 dezoAnwU
>>343
やるならGetNowHiPerformanceCount()を使うのはどうだ?
で、計測した方法と結果をここに書けば聞きっぱなしじゃなく他のやつの参考にもなる

345:名前は開発中のものです。
08/12/17 08:18:15 /BQwBqZh
DXライブラリでスムーズに最大値合成できませんかね?
「画像を減算合成→重ねて加算合成」で実装すると、色深度が16ビットの時汚くなるし、描画コストも倍になるんですが……

346:名前は開発中のものです。
08/12/17 20:28:28 S1ZUobQv
VC6.0でLONGLONG型表示させるには%I64dでよかったかな

347:名前は開発中のものです。
08/12/18 10:36:19 Gli++Azx
sprintfの話?
__int64 を使うならそれだね。

348:名前は開発中のものです。
08/12/22 14:30:15 3lSGgVQC
DXライブラリいいね!
DXライブラリ3Dとは別ものなのかね?

349:名前は開発中のものです。
08/12/22 14:38:38 fWgsLNUU
3Dの方は派生verだな

350:名前は開発中のものです。
08/12/23 10:53:03 0Fgrfb5X
ゲームプログラムってMSXのころBASICでやってた程度だけど
DirectXっつーやつはすごいな
ダブルバッファリングっつーのがあれば
MSXのころ悩んでたことがほとんど悩まなくていいじゃんね。
スクロールすら画像を移動するだけって最強すぎ。

351:名前は開発中のものです。
08/12/23 12:05:58 UbzH2xVf
>>350
ちょっ、MSXの頃だってダブルバッファリングしてたっつうのw
MSXはページ切り替えできたから、最高に楽だったわ
まあ、ハードウェアスクロールがあればもっと良かったが仕方ない

352:名前は開発中のものです。
08/12/23 12:16:16 0Fgrfb5X
>>351
そうか
それはすまんかった

あー。そういえばあったような気がしないでもないな。
でも俺の技術では処理速度が遅くてスプライトを動かす程度しかできなかった
スクロールとかもってのはか。


353:名前は開発中のものです。
08/12/23 15:26:44 9N5u30T9
してたっけ。
もう覚えてないやw

354:名前は開発中のものです。
08/12/23 16:45:08 SQBujvLn
つーか、毎回全画面書き換えに耐えられないからページ切り替えはヘルプ画面とかで
利用してた気がしないでもないが。

355:名前は開発中のものです。
08/12/23 17:12:48 VOrvPW1P
タイトル画面を一瞬で表示するために使ってた。
あとはAVGの絵や3D迷路の表示とか。
アクション系のゲームには使わなかったな。

356:名前は開発中のものです。
08/12/23 17:42:12 1h1OeV87
ページを切り替えないと、
ロゴとかが生成される様子が眺められるんだよな。あれはあれで楽しかった。

357:名前は開発中のものです。
08/12/23 17:47:08 0Fgrfb5X
やっぱりいろいろ工夫する必要あったよね。
でもDXライブラリ使ったらそんなことまったく考えなくてよかったから
カルチャーショックだった。

358:名前は開発中のものです。
08/12/23 19:15:26 5et0/vdD
流石に時代は変わったわ。
ま、MSXBASICのノリでかる~く作っちゃえ。

359:名前は開発中のものです。
08/12/23 20:09:58 LP/OttsW
なんだこの40代スレ

360:名前は開発中のものです。
08/12/23 22:47:31 fMIdyvOB
How many pages ? ■

361:名前は開発中のものです。
08/12/24 00:56:47 DPn+CnyU
MSXが導入されて、それまでのマシンで頻発してた
「雑誌掲載のソースコードを打ち込んでも自分のマシンだと動かない」っていうのが
少なくなったって印象があったなあ。

まあ、MSX自体のバージョンアップがあって、その栄光も一瞬だったんですけどね!


>359
まだ20代の真ん中くらいだよ!

362:名前は開発中のものです。
08/12/24 01:58:38 fELrH+/v
Windowsが導入されて、
「自分で作ったプログラムが他人のPCでは動かない」っていうのが
少なくなった…………かな?

363:名前は開発中のものです。
08/12/24 05:58:03 IOaM1VJp
昔はスペックのわりにマシンも高価だったし
CPUやビデオをアップグレードするには、PCをまるごと買い換えるのが基本だったり
お殿様商売の時代だったなあ

364:名前は開発中のものです。
08/12/24 06:59:35 S9NW4iC4
>>350
>>351
MSX1なのか2なのか2+なのかターボRなのかどのスクリーンモードなのかで話が違ってくるし
ここはDirectXのスレじゃなくDXライブラリのスレだぜ!

365:名前は開発中のものです。
08/12/24 09:24:20 WpOVuCI5
VECTOR3 hoge;
hoge = mL.GetCameraEyePoint();

としてVECTOR3の中身をとりだしたいのですが
hoge.x
とかいうような形でとりだせないものでしょうか?

366:名前は開発中のものです。
08/12/24 09:43:56 WpOVuCI5
VECTOR3 cc;
cc.x=5;
mL.printf("cc.x=%d", cc.x);

としてもcc.x=0って表示されてしまいます。

367:名前は開発中のものです。
08/12/24 09:51:25 WpOVuCI5
すみません。
mL.printf("cc.x=%f", cc.x);
にしたら表示されました。


368:名前は開発中のものです。
08/12/28 11:21:41 DBaYT0uR
DXライブラリの描画をウィンドウハンドルを渡して
とあるウィンドウ内に表示することはできないでしょうか?

こんな感じで
URLリンク(blogs.wankuma.com)

369:名前は開発中のものです。
09/01/04 19:04:03 X40+Kh+H
更新が止まってるようだけど
DXライブラリ3Dって完成したの?

370:名前は開発中のものです。
09/01/05 13:47:48 hCfaSDI/
失礼ですが質問です。
DXライブラリでプログラムを作って起動し、終了させたのですが、
なぜかウィンドウは消えてもタスクバーに"DxLib"が残ってしまいます。
閉じようと何度も試しましたが消えてくれません(タスクマネージャでもダメ)。
以前同じことが起こった時はパソコンの電源をスイッチから直接切らないといけませんでした。
何か解決策はないでしょうか。

このトラブルが発生した時は自分の失敗で無限ループを脱せず、
ツールバーのデバッグの停止を使って終了させました。
たぶん原因はこれだと思います。

371:名前は開発中のものです。
09/01/05 14:31:31 etDOrpmF
DxLib_End()
を呼ばなかったからに1票

372:名前は開発中のものです。
09/01/05 15:06:35 hCfaSDI/
>>371
一応プログラムには書いてありますが、
その無限ループが発生したループ内では通ってないと思います。
これが原因なのでしょうか。
しかしDxLib_End()を通ると即プログラム終了だと思っていたのですが・・・

373:名前は開発中のものです。
09/01/05 15:15:38 aPIdrXEx
DxLib_End()はライブラリの終了であって、
ちゃんとその後ループから抜けてプログラム自体終了(WinMainからreturn)してるの?

374:名前は開発中のものです。
09/01/05 15:16:28 va+Hleat
>何か解決策はないでしょうか
>たぶん原因はこれだと思います。
>これが原因なのでしょうか。
ソースも晒さず、これだ、あれだと聞き返されても返答が難しいよね

>失礼ですが質問です。
失礼だと思ったので、回答は出来かねます



375:名前は開発中のものです。
09/01/05 16:13:33 hCfaSDI/
>>374
私に誠意が足りませんでした。申し訳ございません。

どう書けばよいのか分からないのですが、
WINMAINの中でreturnさせる直前にDxLib_End()を置いています。
DxLib_End()は一度限りでいいと思っていましたがもしかして違ったいたのでしょうか。

私が尋ねたかったのは、プログラムの起動中、
もしくは無限ループで抜け出せない時にデバッグの停止を行うと、
上述のトラブルが発生するのでしょうか、ということです。
分かりづらくて本当に申し訳ございません。

ソースに関しては、プログラムの内容について尋ねていたつもりではなかったため、
晒さずに漠然とした質問になってしまいました。この点に関しても私に落ち度がありました。
抜粋するのが適当だとは思いますが、ソースを全部晒しておきます。
URLリンク(www6.uploader.jp)


・・・喧嘩腰に見えるorz 敬語って難しいです。

376:名前は開発中のものです。
09/01/05 16:20:42 hCfaSDI/
これではただの丸投げですねorz

int WINAPI WINMAIN( 略 ){

(ここにプロトタイプ宣言した関数) ←ここの中で無限ループが発生している

DxLib_End();
return 0;
}

という風にはしています。
ソースでは一応ですがループを自分で抜けられるようには少し変えています。

377:名前は開発中のものです。
09/01/05 18:20:18 P66gcfVh
ソースのヒドさがなんか好感もてるなw

>(ここにプロトタイプ宣言した関数) ←ここの中で無限ループが発生している

>DxLib_End();

それだと、
そのループから処理が抜けない限り、絶対にDxLib_End()には辿り着かない

そんでデバッグツールでの停止ではもちろんDxLib_End()が呼ばれず、それが問題だというのは一応あってるかもしれない

378:名前は開発中のものです。
09/01/05 19:02:24 KsfcQKrh
Flashのムービークリップや、
JavaScriptのsetIntervalのように
毎フレーム実行させるようにセット・解除できるような機能はないでしょうか?

379:名前は開発中のものです。
09/01/05 23:22:56 etDOrpmF
>>376
ソース見るのだるいから見ないが、
ループを抜けられるようにしてあるなら、ループを抜けてみてプロセスが残ってないか確かめればいいじゃないか。
プロセスがしっかり終了してればDxLib_End()が呼ばれてなくてそれが問題だったって分かるんじゃないか?まぁ、これだけじゃそうとも限らないが。
それでもし終了できていたらDxLib_End()を書いたものと書かないものとを比べればちゃんと分かるが。
で、それが分かればおのずと質問に答えられると思うが。
ただ、ProcessMessage()だっけ?で処理してくれるような終了の仕方(ってある?)の場合には、そこらをしっかり書けばちゃんと終了できると思うが。

380:名前は開発中のものです。
09/01/05 23:59:30 V4nq/52k
>>376
  while(CheckHitKey(KEY_INPUT_SPACE)==0){
    battle();
    WaitKey();
  }

  ScreenFlip();
  WaitKey();
  DxLib_End();
  return 0;
}

これだとProcessMessageで-1引いてもループ抜けられないような気がする。
whileの条件式にProcessMessageの判定加えたらいいんでは。
あと抜けた後のWaitKeyは、強制終了後も参照されてしまうのでやめたほうがいい。

381:名前は開発中のものです。
09/01/06 00:18:40 F/Rau1w+
>毎フレーム実行させるようにセット・解除できるような機能はないでしょうか?
何を毎フレーム実行させたいんだ?
というか質問は一つづつにしろよ

382:名前は開発中のものです。
09/01/06 07:35:09 Oinf+8tR
>>381
情報が足りませんでした。申し訳ありません。
JavaScriptでは、
var set = setInterval(function(){
  ~~処理~~
}, 1);
のようにすると、1ミリ秒ごとにfunctionを呼び出すことができます。
また、clearInterval(set);で解除することもできます。
同じように毎フレーム実行させることはできるでしょうか。
whileに全て入れるのが面倒なのです。

383:名前は開発中のものです。
09/01/06 08:50:13 35IX/qYC
>>379,380
アドバイスありがとうございます。
ProcessMessage()を完全に忘れていました。
まだまだ基本がなっていないようなので、しばらくROMって学んでいこうと思います。

384:名前は開発中のものです。
09/01/06 09:59:47 eUx/xd8R
>>382
どうも、聞きたいことがよく分からん。
while文に入れるのが面倒なほどに大量に関数があるのか?
複数の関数を一つの関数の中にまとめて、まとめた関数をwhile文の中においておくってのじゃダメなんか?
それとも、while文に全て入れるのが面倒じゃなくて、
フレーム管理とかプログラムの状態遷移が分からないってことか?
ってか、それはライブラリというより言語の使用じゃないか?
もし仮にDxライブラリで出来たとしても、登録、解除のし忘れとかでバグの原因になりそうに思えるんだが。

385:名前は開発中のものです。
09/01/06 11:50:37 WsDU+BU3
設計の問題であってDXライブラリとは関係ないな
for (int i = 0; i < enemyCount; i++) enemy[i].Update();
こういうようなことを言ってるの?

386:名前は開発中のものです。
09/01/06 15:00:44 Oinf+8tR
>>384
whileに全て入れるのが面倒に感じていましたが、言われてみるとそうですね。
>>385
毎フレーム実行させるという意味でこちらにきましたが、観点がずれていたようです。
while文の中にforループを入れるという発想はありませんでした。試行錯誤してみようと思います。ありがとうございました。

387:名前は開発中のものです。
09/01/06 15:06:41 WsDU+BU3
>>385みたいなのって定石だから
試行錯誤するよりも初心者サイトでも見て素直に真似した方がいいよ

388:名前は開発中のものです。
09/01/06 20:56:28 Nr8kFssc
>>377
少なくともVSの「デバッグの停止」ならDxLib_End()が呼ばれなかろうとなんだろうとちゃんとリソースを解放してくれるはず。
>>370がいつまでも終了しなかったのはexeを直接起動したかリリースビルドだったのでは?

>>380
WaitKey()は別に問題ないよ。

あとScreenFlip()がWhileの外にあったら画面更新されないから中へ。

389:名前は開発中のものです。
09/01/11 09:44:15 fWlpK7Co
DXライブラリを使用つつ、DirectXを直接使用することは出来ないでしょうか?

○○->(うんたらかんたら)
という処理が入っていると、エラーが発生して終了してしまいます。

390:名前は開発中のものです。
09/01/11 11:16:24 yJOODiUh
>389
その例文だと全く意味が伝わらない

391:名前は開発中のものです。
09/01/11 14:03:14 fWlpK7Co
>>390
わかり難くてすいません……
DirectXを直に使いたい所があるので以下のコードを追加し呼び出した所強制終了が発生したので、
やはりDXライブラリを使用しながら直接DirectXを使う事は難しいのでしょうか?

#include <d3d8.h>

void aaa(){
LPDIRECT3DDEVICE8 FogDev;
D3DCOLOR FogCol;
float FogStart;
float FogEnd;
FogCol=0xffffff;
FogStart=100;
FogEnd=300;
//この中をコメントアウトすればエラー無し
//逆に一つでもあるとエラーで落ちてしまう……
//================================================
FogDev->SetRenderState(D3DRS_FOGCOLOR,FogCol);
FogDev->SetRenderState(D3DRS_FOGSTART,*((DWORD*)&FogStart));
FogDev->SetRenderState(D3DRS_FOGEND,*((DWORD*)&FogEnd));
FogDev->SetRenderState(D3DRS_FOGVERTEXMODE,D3DFOG_LINEAR);
FogDev -> SetRenderState(D3DRS_FOGENABLE,true);
//================================================

}



392:名前は開発中のものです。
09/01/11 14:50:36 2fY4/RNq
質問ですが、ウィンドウモードにした時の左上のウィンドウアイコンは変更出来ますか?

393:名前は開発中のものです。
09/01/11 16:25:19 rRSsOCCS
>>391
参照エラーかな?
DXライブラリ側でLPDIRECT3DDEVICE8って持ってなかったっけ?
と無責任な事言ってみる。
DXライブラリのソース確認してみて。

>>392
出来るよん

394:名前は開発中のものです。
09/01/11 18:28:35 fWlpK7Co
>>393
ヘッダファイルを確認した所、LPDIRECT3DDEVICE7に関しての記述はみられましたが、
LPDIRECT3DDEVICE8についての記述はありませんでした。
ライブラリ初期化の前に読んだ所起動すらしなかったので、やっぱりDXライブラリとの競合ですかね……

395:名前は開発中のものです。
09/01/11 20:07:47 fWlpK7Co
どうやら単純にコードが悪かった様です。
スレ汚し失礼しました……

396:名前は開発中のものです。
09/01/16 16:45:35 EID2Tgc4
前うpして感想頂いて、とてもやる気が出たので、
こんな感じの体験版となりました。

URLリンク(tikuwa.net)
DLKey:dx


397:名前は開発中のものです。
09/01/16 23:45:16 c/8VRMs/
頑張ってるじゃん

BGMやSEも自作?
引用があれば著作権等の明記はしっかりしておいた方が良いよ

398:名前は開発中のものです。
09/01/16 23:47:43 iRSkofRl
DXライブラリ3Dのサイトが消えてるな

399:名前は開発中のものです。
09/01/17 00:09:20 zPKek+/O
ほんとだ、今見てみたら消えてるな

400:名前は開発中のものです。
09/01/17 00:17:49 h2yGMjkV
DXライブラリでタイトルバー消すことって出来る?
イメージ的にはこういうものを作りたいんだけど

URLリンク(www.geocities.jp)

URLリンク(www.geocities.jp)

URLリンク(www.geocities.jp)

401:名前は開発中のものです。
09/01/17 00:30:31 r/BmSdjn
>>400
URLリンク(studiokingyo.fc2web.com)
で紹介されてる方法で駄目なら、ちょっと工夫が要る気がする

402:名前は開発中のものです。
09/01/17 01:42:14 A53qKgs6
>>397
自作なので大丈夫かとは思います。

403:名前は開発中のものです。
09/01/17 01:46:05 hNEzfB40
自作なのか……すげぇ。

404:名前は開発中のものです。
09/01/17 01:57:18 A53qKgs6
あ、DXライブラリとPNG読み込み機能の著作権表記してない…これはマズったかも…。

405:名前は開発中のものです。
09/01/17 09:58:07 OLTrE10N
>396
すげえ

どんどん敵が固くなるw
敵がワイドショット撃ってくるあたりから先にいけん

406:名前は開発中のものです。
09/01/17 10:33:37 POC77fOB
>396
相変わらず難し過ぎる……w
ところでなんかボスのライフが下がり切らない内に倒せたんだけど。制限時間?
あとグレイズタイプって何かと思ったらサイヴァリアなのね。

407:名前は開発中のものです。
09/01/17 11:55:31 A53qKgs6
>>403
どれも芋臭い曲ばかりですけどね…。
>>405
殆ど自機狙いなので直前に避けるとやりやすいと思います。
>>406
サイヴァリアの快感を再現してみたかったんです。
ボスはかすりで永遠に稼げるのと、ショット弱体化の対策として、
ワインダーを放ち終えた2分で自滅するようにしてみました。

408:名前は開発中のものです。
09/01/17 13:56:30 f9VOjqEO
ループ前にメニューバー作ってループの命令に解像度変更機能を書いてみたんだが、
どうもフルスクリーンだけ正常動作しない

一応、ソース書いておく

if(CheckMenuItemSelect_ID( 14)){
//起動時、フルスクリーン化
ChangeWindowMode( FALSE ) ; //フルスクリーンモードで起動
MAP_W = 640-SPAN_LR*2 ;
SPAN_LR =128;
SetGraphMode( 1024 , 768 , 32 ) ;
SetMenuItemMark_ID(11, MENUITEM_MARK_NONE);
SetMenuItemMark_ID(12, MENUITEM_MARK_NONE);
SetMenuItemMark_ID(13, MENUITEM_MARK_NONE);
SetMenuItemMark_ID(14, MENUITEM_MARK_CHECK);
//SetAlwaysRunFlag(TRUE) ;//ウインドウがアクティブではない状態でも処理を続行するか
SetDrawScreen( DX_SCREEN_BACK ) ; // 描画先画面を裏画面にセット
}

文字は表示されてもグラフィックは読み込まれない
左上隅に表示されるんだが、自分は中央拡大描画を求めている

409:名前は開発中のものです。
09/01/17 14:27:27 CHF9ChFj
>>404
お前何か勘違いしてないか?知識なんて使って減るもんじゃないから只だと思ってんだろ?
人に物を訊くってのがどういう事だか、自覚してる?
知識ってのはな、社会人に取って金と同じく貴重な財産なんだよ。使っても減らないけど、教えたら広まった分だけ価値が下がる。それを分けてくれって言ってんの自分でわかってる?
社会で必要とされる知識ってのはな、本になんか載ってない事ばかりなんだよ。全部人から人へ、直接のコミュニケーションを介して伝わって来たモンなんだ。
そういうノウハウを分けてもらう申し訳無さみたいな物が、伝わって来ないんだよ。お前の態度からは。
猿だって仲間から餌を分けてもらう時は申し訳無さそうな顔するんだよ。ヘラヘラ笑いながら近づいてったら殴り殺されんぞ。
猿だったら今頃とっくに死んでんだよお前。そんな態度で今まで。何回も言ったよな。謝る時は申し訳無さそうな顔をしろって。
そういう学校じゃ受けられない教育を受けておきながら、社会人を経験しなきゃ得られない知識を貰っておきながら、
何にも生かせてないんだよ今のお前は。学生のサークルごっこじゃないんだから。もっと四六時中危機感を持って生きてなきゃ駄目だよ。いい加減いつまで学生気分じゃ。

410:名前は開発中のものです。
09/01/17 14:35:00 r/BmSdjn
誤爆なのかそうでないのか……w

411:名前は開発中のものです。
09/01/17 15:00:14 A53qKgs6
>いい加減いつまでも学生気分じゃ。
耳が痛い話です。

412:名前は開発中のものです。
09/01/17 15:06:33 B1CiFUTT
人生一勝勉強です。

413:名前は開発中のものです。
09/01/17 16:00:07 IVDG90gp
アンカミスだろw

414:名前は開発中のものです。
09/01/17 16:46:40 UCl/dEbD
ボクは社会人になってから学生時代以上に学生気分です。

415:名前は開発中のものです。
09/01/17 23:46:21 h2yGMjkV
ウインドウモードで起動して
マウスの左クリックを監視するようにしました

その際、ウインドウの範囲外をクリックしてもマウスの左クリックを認識してしまいます

その解決策として
ウインドウの左上の座標(x,y)からWindowの大きさ(X+width,Y+height)までの間でクリックされた時のみクリックを監視するという方法をとろうと思っています

そこで質問なのですが
ウインドウの左上の座標を取得する関数は存在するのでしょうか?
また、無い場合は何か他に代用できる関数は標準ライブラリなんかに入っているでしょうか?


あと、ウインドウがアクティブかどうか判断する関数ももしあったら教えてください

一応調べたのですがヒットしなかったためよろしくお願いします



416:名前は開発中のものです。
09/01/17 23:53:38 m/2DoB9T
全部Win32APIにある

417:名前は開発中のものです。
09/01/17 23:57:48 h2yGMjkV
>>416
ありがとうございます見つかりました

下のは
GetActiveWindow()
でいけそうですね
上も調べてみます。ありがとうございました

418:名前は開発中のものです。
09/01/18 01:29:33 W8VFm9RV
度々すいません
>>415はアドバイスのお陰で全て解決しました

ところで、作成したexeを起動するとLog.txtというものができるのですがこれは仕様なのでしょうか?
logファイルを作成しないように設定することは出来ないのでしょうか?
よろしくお願いします

419:名前は開発中のものです。
09/01/18 01:46:03 bv5ORrRe
リファレンスを log で検索してみた?

420:名前は開発中のものです。
09/01/18 19:14:35 d7+8UZEG
Dx_Lib()
より前でSetOutApplicationLogValidFlagを呼びださなければなら無かったのですね
解決しましたありがとうございました

421:名前は開発中のものです。
09/01/18 19:22:47 Dn7rF8in
dxlibって英語の使い方が変だよね
LogValidとか

422:名前は開発中のものです。
09/01/18 20:26:55 d7+8UZEG
もしかしてめちゃくちゃ初歩なのかもしれないけど
他のツールで作ったソフトの内部でDXライブラリを呼び出すことって出来るんですか?

例えば、ノベルゲーム作成ツールでゲームを作って、ところどころでDXライブラリで作ったゲームを組み込む
みたいな感じで
ノベルのほうで普通にDXライブラリ製のソフトを呼ぶと窓が起動してしまいますよね?
ノベルのほうと同じ窓でゲームを実行することってできないのでしょうか?

意味がよく分からなかったらすいません

423:名前は開発中のものです。
09/01/18 20:58:55 N4guzxX8
たぶん無理だと思うが

424:名前は開発中のものです。
09/01/18 21:03:33 BZ0GBkU2
>>422
何が言いたいのかはわかるけど、残念ながら恐らく不可能。
両方でしっかりデータの受け渡しができれば、携帯アプリの前編後編みたいにすることは出来るかも知れないけど、
現存のツールではそこまでの機能は無いと思うし……。


425:名前は開発中のものです。
09/01/18 21:11:32 Dn7rF8in
プロセス二つ作ってパイプで通信すればいいじゃない

426:名前は開発中のものです。
09/01/18 21:29:03 d7+8UZEG
>>423,424
そうですか・・・

あまり知識無いんですけど、描画先のウィンドウハンドル(ここではノベゲー)を取得して、内部でDXライブラリ製のソフトを呼び出した時
ウインドウを新規で作らず、いまあるウインドウを描画先に指定(取得したハンドルを用い)みたいなことができれば可能なのかな?

よくわからないorz

>>425
具体的にはどういうことでしょうか?
ぐぐったら分かるかな


アドバイスありがとうございます

427:名前は開発中のものです。
09/01/18 21:39:59 GlhQpd6d
プラグイン形式的なDLLを作成すれば可能

428:名前は開発中のものです。
09/01/18 22:57:46 d7+8UZEG
>>427
ありがとうございます
やることとしては>>426に書いたとおり
>描画先のウィンドウハンドル(ここではノベゲー)を取得して、内部でDXライブラリ製のソフトを呼び出した時
>ウインドウを新規で作らず、いまあるウインドウを描画先に指定(取得したハンドルを用い)みたいなことができれば可能なのかな?

描画先を既存のウィンドウにすればいいんですよね

これってどうやるんだろう・・・・

429:名前は開発中のものです。
09/01/18 23:10:15 3xnYsDJW
>>422
できるぞ、(ただし、元のプログラムが自作かせめて、DLLを使えるのが前提だが。)

>>426
>ウインドウを新規で作らず、いまあるウインドウを描画先に指定(取得したハンドルを用い)みたいなこと・・・・
は、難しいと思う。
見た目的には、同等の事も可能だと思うが、実際にそのウィンドウに・…はややこしいと思う。
(内部的にその元アプリがどんな事してるか次第だけど、DXlib使うとDX内処理もあるから
 フック掛けて完璧に使えるとは思えないから。)

>>425じゃないけど、参考になりそうな。
 URLリンク(funini.com)
 URLリンク(www.fides.dti.ne.jp)
 URLリンク(msdn.microsoft.com)
 URLリンク(msdn.microsoft.com)
 URLリンク(msdn.microsoft.com)

 URLリンク(www.02.246.ne.jp)
 URLリンク(www.alpha-net.ne.jp)

430:名前は開発中のものです。
09/01/18 23:14:26 d7+8UZEG
>>429
ベースプログラムは吉里吉里かSystem4.0を考えてるので多分dllの読み込みは可能かとも居ます
実際色々プラグイン公開されてるし

色々ありがとうございます
調べてみます

431:名前は開発中のものです。
09/01/19 10:34:52 X5SZs/u2
>>396
亀だがやってみた

とりあえず途中から敵固すぎワロタ
ボンバーなしじゃ無理な気がww



俺のシューティングは随分昔にシューティングスレに投下してから弾幕に凝っててあんまり見た目の進歩がないぜ

432:名前は開発中のものです。
09/01/19 17:31:41 yZM1xSvo
>>431
固さは面とレベルの兼ね合いにしたいと思います。
最近見かけばかりに力を入れてて肝心のゲーム内容は…。

433:名前は開発中のものです。
09/01/19 17:42:09 IkXU3fd8
星のパーティクルがすてき。

434:名前は開発中のものです。
09/01/19 20:32:05 j6ExWMod
シューティングってこんなに作るの難しかったんだな

ゼビウスみたいのなら楽勝だろとか思ってました、ごめんなさい

435:名前は開発中のものです。
09/01/20 11:58:06 dMyWKq6o
初心者です
質問なのですが、ゲームのBGMで
最初に戻って繰り返すときBGMをとぎれてしまわないようにする方法はありますでしょうか
例えばRPGの戦闘音楽のようにずっと放置していてもきれいにループするような方法です

436:名前は開発中のものです。
09/01/20 12:40:01 /e+EiVUH
曲の途中で違和感のない位置に飛ばせばいいと思う。

俺はやったことないけど
URLリンク(homepage2.nifty.com)
これできれいにループするんじゃない?

437:名前は開発中のものです。
09/01/20 12:51:49 dMyWKq6o
>>436
ありがとうございます!勉強してチャレンジしてみます!

438:名前は開発中のものです。
09/01/20 15:22:07 A5DSi9Sd
>435
あと、姑息な手段で申し訳ないが
MIDIのようにサイズを気にしなくて済むようなものなら、最初から10分続くファイルにしてしまうという手もある。

439:名前は開発中のものです。
09/01/21 22:18:20 2s5lyHkK
PlaySoundMem()でループ再生フラグを指定すればいいよ。
>>435がファイル形式を言ってないのでわからないけどwavなら綺麗にループする。

440:名前は開発中のものです。
09/01/22 15:31:01 Xr8Aa3cY
>>439
たぶん>>435が使っているファイルは曲の最初と最後が繋がってないやつなんだろう。
だから、普通にループ指定すると音が途切れずにループしない。

けど、市販ゲームでもこういうBGMあるし、俺は気にしないけどな

441:名前は開発中のものです。
09/01/22 17:11:41 q+tQcJ7A
>>435
無音時間の全くない完全なシームレスループにしたい場合、下のページが参考になると思います。
URLリンク(www13.plala.or.jp)

API使わないといけないのとWAV限定ですが。

442:名前は開発中のものです。
09/01/22 17:15:00 9/RQfEqV
>>441
FF10のジェクト戦みたいにボーカルいれた音楽をBGMとして使えそうだな
すげえ

443:名前は開発中のものです。
09/01/22 17:34:21 Bh2KGHfp
>>440
「最初に戻って」って書いてあるからなぁ。
でも途切れる方法が書いてないところが色んな憶測を呼ぶよね。
まぁここまでで解決方法出たと思うからいいんだけどさ…。

444:名前は開発中のものです。
09/01/26 16:05:31 2mzhNCi2
DXライブラリ(2.25)のプロジェクトがコンパイルできない。
'/O2' と '/RTC1' は同時に指定できません ってコンパイルエラーが出る。
プロジェクトの設定でO2→Odにしてるんだけれども。
RTC1の方を切ればコンパイルできるんだけど、なんでだー!

445:名前は開発中のものです。
09/01/30 19:51:30 Wy6ip41+
フルスクリーン化ではなく、ウィンドウモードでの最大化って
どうやったらできるんでしょうか?


446:名前は開発中のものです。
09/01/31 06:27:02 mi0nZoft
起動時に設定ファイルなり引数なり読み込んで解像度変更させちゃえば?

447:名前は開発中のものです。
09/01/31 08:53:12 dFEgAXD4
>>445は画面サイズを可変にしたいということ?
どこかにそれっぽいサンプルがあったような……。気のせいかな。

448:名前は開発中のものです。
09/01/31 09:07:06 KRmQ80Gs
SetWindowSizeChangeEnableFlagで可変設定、
SetGraphModeで直接指定ができるね
なんとかして使ってるモニタの解像度を取得して当て込めば出来るかも
だけど処理速度は厳しいだろうな

449:名前は開発中のものです。
09/01/31 10:47:56 rbcO49fB
ウィンドウのサイズを変えたいのじゃなくて
右上の最大化のボタンを押せば、標準的なアプリと同じような
動作にしたいです、
画面全体にきっちり広がって間違ってマウスでドラッグしても動かないような感じです

450:名前は開発中のものです。
09/02/01 00:40:50 XJc1/NhO
えーと、それで、何がしたいの・・・?

451:名前は開発中のものです。
09/02/01 10:34:54 lmI58fq8
>>449
普通にフルスクリーンモードじゃなくてウインドゥモードにすれば
いいだけじゃないの?
そういう関数あったと思うけど。

452:名前は開発中のものです。
09/02/01 12:40:27 8EnnwsB0
デフォルトでは画面の端っこにマウスポインタを当ててもサイズは変えられないし
最大化ボタンも押すことができない
これを変えたいってことなら
サイズの手動変更の場合は>>448
あとはSetUseASyncChangeWindowModeFunction()で最大化ボタン有効化だと思うんだが
ちょっとこっちの使い方が分からないorz

453:名前は開発中のものです。
09/02/01 22:16:17 2n+Oqc2F
縦シューを作ろうと思ってるんですが、
480x640で起動することってできますか?


454:名前は開発中のものです。
09/02/01 22:20:08 90n+ELwG
>>453
URLリンク(homepage2.nifty.com)

455:名前は開発中のものです。
09/02/01 22:30:43 2n+Oqc2F
>>454
できた!
ありがと^^
起動時に640x480になってるのが気になるけど、まいっか

456:名前は開発中のものです。
09/02/01 22:34:51 90n+ELwG
>>455
もっと早い段階で呼び出せば良いよ
DxLib_lint()より上で呼べば最初からそのサイズになる

457:名前は開発中のものです。
09/02/04 01:44:28 igrRGuw3
DXライブラリで同人ゲームを作ろうと思っています。

C++でプログラミングするにあたって、横スクロールアクション(マリオとかロックマンみたいな)
の作り方のサンプルを紹介してるサイトってないですかね?

↓シューティングゲームについては四聖龍神録さんのページが非常に役に立ちました!
URLリンク(dixq.net)

458:名前は開発中のものです。
09/02/04 09:38:48 2Cf0XhT+
>>457
公式HPのサンプル

459:名前は開発中のものです。
09/02/04 14:27:42 CO3XfILg
応用力の無いやつや

460:名前は開発中のものです。
09/02/04 16:43:08 KduT8vdn
>>457

C++でのサンプルはどこにもない。と言い切っていい。

JAVAだが、考え方としてはいいかもしれないのでこれを見て、自分で考えてはどうか。
URLリンク(javagame.skr.jp)

これもC++ではないが、考え方としては(以下同文
URLリンク(itpro.nikkeibp.co.jp)

やはり、自分で考えて試行錯誤するしかないのではと思う今日この頃

461:名前は開発中のものです。
09/02/04 21:32:21 6meQrl/q
最初はグローバル変数使いまくって
次に構造体をグローバルにして使いまくって
次に構造体をポインタで書き換えるようにして
引数に構造体のポインタがどんどん増えていき
次に各構造体の先頭のポインタをまとめた構造体をつくってそれを引数にしたんだけど
だいたいみんなこんな感じ?

462:457
09/02/04 22:20:44 igrRGuw3
>>458-460
レスサンクスです!

>>460
まさにこういうページ探してました!
横スクロールと敵の制御とか参考になりまくりです。
言語は問わないんですが、STGの情報は多いのにACTはなかなか無かったので。

↓自分でも探してたんですが専門学校(?)のゲームの作り方ページもよかったです。
URLリンク(rina.jpn.ph)

Web上だとなかなか情報が無いから、専門学校の
教科書が欲しいなんて思っちゃいました。笑

463:名前は開発中のものです。
09/02/05 03:42:29 GjXLMUdb
>>461
前から気になってはいたんだけど、構造体とかグローバルで使うのって何かまずいことでもあるの?
ポインタにする利点をずぶの素人の俺にも分かり易く教えて欲しい。
引数で構造体を直に渡してなければ余り関係ない気がしてるんだけど。

464:名前は開発中のものです。
09/02/05 07:27:08 rTUW0rFP
グローバルな変数は、他で書き換えられるかもしれないことを
いちいち考えないといけないんだよな
プログラムの複雑さが増すので乱用は慎しめと言われてる

465:名前は開発中のものです。
09/02/05 08:09:33 ojur6QxZ
はっきり言ってしまえば、そのプログラムを自分しかさわらなくて、
注意して組む自身があるならグローバルでも問題ないと思う。

466:名前は開発中のものです。
09/02/05 08:48:42 9t4FKbe4
>>465
俺は、あえて 「昨日の自分は他人」だと思って、
可能な限り、必要性のない限り グローバル変数は使わない方がいいと思うけどね。
(特に、携帯機器とかメモリ節約とか求められてない時は余計に。)

>>463
“普通の”ポインタの利点は、微妙だな。ただ、まだまだある所じゃ、速度的に値のコピーよりも
参照して行った方が効率が良かったり、処理の記述がしやすくなったり。

ただ、あるClassのポインタ(関数ポインタ含む)は処理の委譲に頻繁に利用される。
利点として、全体像が綺麗にできるし、コードの混雑が大きく減る。
cf.Strategy パターン Decorator パターン  双方向リスト 動的確保

467:名前は開発中のものです。
09/02/05 09:31:40 Qc5+f5Cj
>>463
グローバル構造体自体は普通に使うよ。
グローバルクラスが普通に使われるように。
C++においては構造体=クラスだからね。
問題は、構造体に使われるpublic変数なんだと思う。
GetXX(),SetXX()にすればいいって問題でもないとは思うけど、もしクラスならメンバ変数は基本的にみんなprivateでしょ?

468:名前は開発中のものです。
09/02/05 10:35:01 4io8tQ0w
何言ってるかさっぱりわからん俺のソースは絶対他人には見せられんな。

469:名前は開発中のものです。
09/02/05 17:44:21 B8Cz6uqn
>>463
461です
俺は今年からプログラミング初めた素人
まだグローバル変数使って困ったことはないけど
勉強しつつゲーム製作やってるから今はポインタ使って試してる
次はクラスってのを使ってみる予定

470:名前は開発中のものです。
09/02/06 00:33:01 O6HFVvT0
DxLibでaviを再生させる関数ってありますか???

471:名前は開発中のものです。
09/02/06 00:35:30 O6HFVvT0
>>470
すいません
DXライブラリで検索したら即効見つかりました
お騒がせしました

472:名前は開発中のものです。
09/02/06 00:57:03 O6HFVvT0
すいません
下のようなコードで何か問題ってありますでしょうか
動画が真っ黒の画像で再生されてしまいます
test.aviはexeファイルと同じディレクトリにあります

#include "DxLib.h"

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}

PlayMovie( "test.avi" , 1 , DX_MOVIEPLAYTYPE_BCANCEL ) ;

DxLib_End() ; // DXライブラリ使用の終了処理

return 0 ; // ソフトの終了
}

473:名前は開発中のものです。
09/02/06 08:46:48 7KSAHxxq
>>472
原因を調べるにはまずどこがおかしいか調べようぜ
PlayMovieの戻り値は調べた?
まあおそらくtest.aviが開けないんだと思うけど。
exeと同じディレクトリでもカレントがそことは限らないよ、どうやって実行した?
フルパスで指定してみるのがいいかもね

474:名前は開発中のものです。
09/02/06 10:04:24 T3lftGPa
>>472

#include "DxLib.h"

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}

if(PlayMovie( "test.avi" , 1 , DX_MOVIEPLAYTYPE_BCANCEL ) ==-1)
{MessageBox(NILL,"ファイルが開けません","読み込みエラー",MB_OK);}

WaitKey();
DxLib_End() ; // DXライブラリ使用の終了処理

return 0 ; // ソフトの終了
}

こう変えて確認してみたら?
PlayMovieは、ファイルの読み込みに失敗すると-1を返す(成功は0)
もし、これでMessageBox表示されたら上手くファイル指定ができてないってこと

もしかしたらコーデックなんかの問題もあるかもしれないけどそこは分からない
あと、PlayMovieはそこでムービー停止するまで処理とまるんだっけ?
そうじゃないならムービーの再生が終わるまで処理終わらないようにする工夫が必要

どれもこれもリファレンスにあるから一度目を通してね

475:名前は開発中のものです。
09/02/06 10:36:49 7KSAHxxq
つーかこれ公式のヘルプのサンプルそのまま貼り付けただけじゃないか。
これで問題ありますか?って、、、、
今後もサンプルがうごかないたびにコメントごとそのまま貼り付けるつもりか。

476:名前は開発中のものです。
09/02/06 10:44:57 RXpavouu
公式ページにカレントディレクトリの説明がないからだろ
フルパス指定を推奨しろよ

477:名前は開発中のものです。
09/02/06 22:13:54 bune21hQ
実行させてないけども、472のプログラムって一瞬で終わったりはしないのか・・

478:名前は開発中のものです。
09/02/07 00:40:47 9/tOLDQP
一応、ムービーは最後まで流れたよ。
ファイルが無いときも黒画面のフルスクリーンまでいって帰ってくる

479:名前は開発中のものです。
09/02/07 00:50:47 XZUozGI6
>>472
音は鳴ってるの?

480:472
09/02/07 12:23:31 m2CcO09N
すいません
解決しました
原因は動画のサイズが大きかったことでした
試しに400*300の小さい動画を再生したところ画面左端にきちんと表示されました

481:名前は開発中のものです。
09/02/07 16:43:56 5JGvk0Ld
ほー大きいと駄目なのか

482:名前は開発中のものです。
09/02/07 18:57:56 fLtGYl8p
大きいってどれくらいだろう。

483:名前は開発中のものです。
09/02/07 21:03:54 lpCM/pFJ
謎がふかまるばかりだ

484:名前は開発中のものです。
09/02/07 23:54:45 winQ4pAR
画面から一部はみ出てるから表示されないじゃね

485:名前は開発中のものです。
09/02/09 20:19:32 1pnOXqGt
背景の画像と前景の人物画の輪郭をアンチエイリアスで
合成するにはどうしたらいいですか?

486:名前は開発中のものです。
09/02/09 21:02:42 r4CYwpcr
アルファブレンドの出番かな?
ファイル名_a.拡張子で指定。プログラムは変更不要で元ファイルといっしょに読み込む。
グレースケール(白黒)で256階調。
0(黒)が完全透過で255(白)がマスク、中間値で半透明処理できる。

487:名前は開発中のものです。
09/02/09 21:16:29 hQLvxnkO
前景に普通にアルファチャンネル付き24bit-PNG使うだけじゃなくて?

488:名前は開発中のものです。
09/02/09 21:39:39 kpyVvUs4
png扱えるならそれが一番楽だな

489:名前は開発中のものです。
09/02/09 22:04:30 1pnOXqGt
ありがとうございます

アルファブレンド試してみました
ファイル一つ用意するだけで出来たんですね
美しい描画に感動しました

アルファチャンネル付きpngは今から作ってみます
作ったことないからグーグルから始めますが
今日中にがんばってみます



490:名前は開発中のものです。
09/02/09 22:37:00 1pnOXqGt
アルファチャンネル付きpngすぐ出来た
ありがとうございました

491:名前は開発中のものです。
09/02/10 01:17:10 4F920hOP
俺はもう何でもかんでもアルファチャンネル付きPNGだ。便利すぎ

492:名前は開発中のものです。
09/02/10 10:00:17 XFgx+1B+
だな

493:名前は開発中のものです。
09/02/10 10:05:10 rFLiGfwY
pngって使用制限あるんだっけ?
pngを知ったら他の形式なんてとても使えたものじゃない。

494:名前は開発中のものです。
09/02/10 11:14:35 vQYvbazz
スピードに問題はないの?<アルファチャンネル付きPNG

495:名前は開発中のものです。
09/02/10 20:29:18 tnQHyXfF
読み込んだあとは一緒だから全く問題ない

496:名前は開発中のものです。
09/02/10 22:37:01 vQYvbazz
そうなんだ。
透過処理ってなんか重そうだから多用しないようにしてたんだけど、心配なかったのか。

497:名前は開発中のものです。
09/02/11 01:39:50 EiHo01Mu
png使ったら著作権表記が必要じゃなかったっけ?

498:名前は開発中のものです。
09/02/11 02:00:10 v+EsJNk0
pngはgifの特許がらみがウゼーって事で作られたものだから
その辺の表記なんたらは何にも必要ないよ

499:名前は開発中のものです。
09/02/11 03:56:50 abcckAid
pngそのものの著作権じゃなくて
読み込んで表示させるプログラムの著作権じゃない?

>・下記の機能を使用した場合は、配布するソフトウエアのドキュメント等に各機能に応じた
>  著作権表示を含めてください。

>  PNG 画像を読みこむ機能を使用した場合

>   libpng Copyright (c) 1998-2004 Glenn Randers-Pehrson.
>   zlib Copyright (C) 1995-2004 Jean-loup Gailly and Mark Adler.

URLリンク(homepage2.nifty.com)

500:名前は開発中のものです。
09/02/11 08:50:36 swUZoApZ
>>496
>>495はアルファブレンドとアルファチャンネル付きPNGが一緒ってことじゃないかな?
透過処理は普通の描画に比べたら遅いよ。

501:名前は開発中のものです。
09/02/11 09:51:46 1w4T1utS
ああ、なるほど。
491がなんでもかんでもって言ってるから
普通の描画と同じくらい軽いのかと思ってしまった。

502:名前は開発中のものです。
09/02/11 10:55:48 n8G83FSO
TGAだったら外部ライブラリ使ってないから著作権表記の必要はないよ
圧縮アルゴリズムが単純だからPNGよりファイルサイズが大きくなるけど・・・

503:名前は開発中のものです。
09/02/11 19:22:37 AZ7K07ik
さっき何気なく3D版の公式見てみたら・・・

504:名前は開発中のものです。
09/02/11 19:36:20 qrNBhwtd
終了か

505:名前は開発中のものです。
09/02/11 21:30:38 EO0e2yUS
透過処理はそんなに重くないよ

506:名前は開発中のものです。
09/02/12 04:09:43 T7mGdx78
3D版まだ落とせるとこない?

507:名前は開発中のものです。
09/02/12 09:22:15 g2cVI1Rq
直リンで落とせるんでない?

508:名前は開発中のものです。
09/02/12 10:15:43 S0rR+p5u
かゆい

うま



を思い出したwww作者どうなったんだw

509:名前は開発中のものです。
09/02/12 15:51:55 T7mGdx78
ファイル名が分からない…

510:名前は開発中のものです。
09/02/12 19:27:06 g2cVI1Rq
だいたいなんで今更3D版がほしいんだ?

511:名前は開発中のものです。
09/02/12 19:28:31 V7VMrK+q
なにが今更なの?

512:名前は開発中のものです。
09/02/12 19:45:30 g2cVI1Rq
公式が死んでるのに今更そこまでしてほしがる理由は何だろうと単純に思った。

513:名前は開発中のものです。
09/02/13 04:49:14 qd9k9XJd
きっと、開発を引き継いでくれる猛者なんだと予想

514:名前は開発中のものです。
09/02/13 08:52:43 gm7Wlof8
"今更"って主観に左右されると思う

515:名前は開発中のものです。
09/02/13 09:20:00 Tj50RFPE
>>512
前に使ってて一時期離れてたとか
DXライブラリの事を最近知ったなら今更とか関係ないし
てか、なんでそな事を疑問に思うのか疑問だ

516:名前は開発中のものです。
09/02/13 09:31:26 gsDT3swS
ちょうどサイトが死ぬ頃にきたもんだから、何かこう「今更かよ!」的な印象を持ってしまった。
失礼した。



517:名前は開発中のものです。
09/02/13 10:00:20 KHzspSCY
んーー???

518:名前は開発中のものです。
09/02/13 10:08:42 Gs8dKfU5
情弱死ねって事でしょ

519:名前は開発中のものです。
09/02/13 13:24:47 OFBqMPYi
とりあえず、webarchiveあたりからリンク引っ張ればいいじゃん

520:名前は開発中のものです。
09/02/13 17:52:53 gamtZzLZ
DXライブラリ初めてつかってみたんだけど、なかなかいいね。
面倒なDirectX初期化周りやレンダリング処理を全部任せられるのがすごく便利。
今まで何度も1人でゲーム作ろうとしてゲームのライブラリ化までで燃え尽きてたけど、いけそうな気がする。

ただ、メッセージプロシージャ周りを完全に独立させて、他に譲渡できればいいんだけど、
DirectXの特性上難しいのが残念かな。
ウィンドウモードでデバッグウィンドウ周りを実装してたときに感じた愚痴です。

521:名前は開発中のものです。
09/02/13 19:27:10 6Q+KDpbI
3Dの方が更新されてたが、作者どうしちまったんだ?気でも違ったか?

522:名前は開発中のものです。
09/02/13 19:33:25 OFBqMPYi
人生の方が狂ったんじゃ

523:名前は開発中のものです。
09/02/13 20:41:49 Br6f/DrZ
URLリンク(00o.sakura.ne.jp)
3D版の作者のサイト、移転してたんだ

524:名前は開発中のものです。
09/02/13 21:15:25 vieAChNU
>>523
日記の内容からして
もうDXライブラリの方は手をつけないんだろうか

525:名前は開発中のものです。
09/02/13 21:54:45 KHzspSCY
このスレ見てなかったっけ?
そのうち書き込むんじゃない?

526:名前は開発中のものです。
09/02/13 22:01:18 6Q+KDpbI
>>523
ああ、移転だったのか。
あんなイカレた閉鎖文なんか載っけてどうしたのかと思ったよ。

527:名前は開発中のものです。
09/02/13 22:26:23 Tj50RFPE
要望に答えるのが日常になって自分の作りたい物に時間や気力を使えなくなったから
過去を全部捨てて仕切りなおしたって感じだな
もうライブラリとかそう言うのは作っても公開しない気がする

528:名前は開発中のものです。
09/02/14 00:37:02 vEcxeBnT
DXライブラリ3Dは公開される気配はなさそうだし、終了のお知らせか・・・

529:名前は開発中のものです。
09/02/14 02:11:46 ioBOninz
まあこうなるとは思ってたよ
DXライブラリ3Dのソース見てみたらモデルの扱いにD3DX使ってて
まともなライブラリに至るにはまだまだ先の長い状態だったしな・・・

530:名前は開発中のものです。
09/02/14 13:24:54 esml8/+n
いや、作者はどこか意志が弱そうだから、
また公開してくれるまで諦めるな。

531:名前は開発中のものです。
09/02/16 13:18:58 xQ8BZc1p
人様が作っている物をタダで利用させてもらってる以上、こういう事態は仕方ないと思うよ

532:名前は開発中のものです。
09/02/16 17:21:56 2DsBHdnG
今、3D版のサイト見たら
DXライブラリ3Dファイナルパック
というのが、公開されてるんだが
URLリンク(fatalita.sakura.ne.jp)


533:名前は開発中のものです。
09/02/16 17:48:01 i1Y9wFn0
>>532
>※このサイトは2,3日以内に自動的に閉鎖されます
このスレ見て一時的に公開?w

534:名前は開発中のものです。
09/02/16 18:15:06 2i4RbFSc
でもこうやって出来る限りの配慮をしてくれるのはありがたい
非常に乙でした

535:名前は開発中のものです。
09/02/16 21:10:15 yCP91q6a
とりあえずウィルススキャンはクリアした

536:名前は開発中のものです。
09/02/17 14:12:08 VEVhf4mN
てか自動的に閉鎖ってできるのか

537:名前は開発中のものです。
09/02/17 15:16:32 Zl2geQsR
今北
関数リファレンスページにあるリンクされてない関数ってサンプルがないだけで使えるんだよね?
SUGEEEE

538:名前は開発中のものです。
09/02/17 16:23:49 5nIY3uJB
DXライブラリ3D作者
おつかれさま
いろいろ勉強させていただきました

539:名前は開発中のものです。
09/02/17 16:43:07 vyYC8Vig
DXライブラリ3D辞めたのか。うーん。これからどうしよう。
SlimDXに行くかな

540:名前は開発中のものです。
09/02/17 16:47:15 gK6Z/ZXS
SlimDX使えるような人ならDXライブラリの世話になんかならんw
.NET言語で書けること以外は生DirectXと同じだぞ

541:名前は開発中のものです。
09/02/17 17:10:56 nPVB/UbL
まあおかげDirectXのドキュメントが役に立つわけだがw

542:名前は開発中のものです。
09/02/17 20:02:40 /uggH+y6
DXライブラリ3D作者ありがとう、感動した。

おつかれさまでした。

543:名前は開発中のものです。
09/02/18 01:28:08 p5LpkikR
etGraphMode(800,600,32);
if( DxLib_Init() == -1 ){return -1 ;}
int t,g;
g=LoadGraph("a.png",TRUE);

SetDrawScreen(DX_SCREEN_BACK);
for(t=0;t<150;t++){
DrawGraph(GetRand(800),GetRand(600),g,1);
ScreenFlip();
WaitTimer(10);
ProcessMessage();
}

単純に画像を全画面にランダム表示するプログラムなのだがここで問題が・・・

Radeon系のグラボで実行すると画面がおかしくなるんです
SetScreenMemToVramFlagでグラホのメモリを使わない設定にするとまともに表示します
DXライブラリはRadeonの相性悪いんでしょうか
ちなみに実行したパソコンのグラボはラデX1950Proと3870で
ドライババージョンは1.2.2545 38946です

544:名前は開発中のものです。
09/02/18 01:28:34 p5LpkikR
最初のSぬけてた

545:名前は開発中のものです。
09/02/18 02:19:01 8ojm5TEP
「おかしく」の内容がわからないけど
たとえばSetGraphMode(640,480,16);にしても起こる?

546:名前は開発中のものです。
09/02/18 04:12:49 p5LpkikR
>>545
色を変えてもちらつきます・・・どうやら色問題でもなさそうです

で試行錯誤していろいろやってみたけど
SetDrawScreen(DX_SCREEN_BACK); というの行を削除して
実行するとまともにちらつきがなく1枚ずつまともにきれいに表示された
(理由はよくわからないけど・・・)
あ 肝心なDXライブラリはVer2.25です

547:名前は開発中のものです。
09/02/18 07:25:00 TxKBLHeJ
>>543
全文かいてないからどうおかしくなるのか分からないけど、それだとすぐに終わらない?
SetGraphMode(800,600,32);
if( DxLib_Init() == -1 ){return -1 ;}
int t,g;
g=LoadGraph("a.png",TRUE);

SetDrawScreen(DX_SCREEN_BACK);

while(ProcessMessage() == 0)
{
for(t=0;t<150;t++){
DrawGraph(GetRand(800),GetRand(600),g,1);
}
ScreenFlip();
}
DxLib_End();
return 0;

これでもだめ?


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