トップページgamedev
1001コメント334KB

DXライブラリ 総合スレッド その8

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2011/04/03(日) 17:17:11.99ID:liTmPO3j
Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、
「DXライブラリ」に関するスレッドです。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。

【公式】
http://homepage2.nifty.com/natupaji/DxLib/

【過去スレ】
DXライブラリ 総合スレッド
http://pc11.2ch.net/test/read.cgi/gamedev/1197468399/
DXライブラリ 総合スレッド 2008
http://pc11.2ch.net/test/read.cgi/gamedev/1224923873/
DXライブラリ 総合スレッド その3
http://pc11.2ch.net/test/read.cgi/gamedev/1238429676/
DXライブラリ 総合スレッド その4
http://pc11.2ch.net/test/read.cgi/gamedev/1249822550/
DXライブラリ 総合スレッド その5
http://pc11.2ch.net/test/read.cgi/gamedev/1259912953/
DXライブラリ 総合スレッド その6
http://hibari.2ch.net/test/read.cgi/gamedev/1267108154/
DXライブラリ 総合スレッド その7
http://hibari.2ch.net/test/read.cgi/gamedev/1286180687/
0002名前は開発中のものです。2011/04/03(日) 17:45:11.04ID:aEoUOWen
めちゃはややで
0003名前は開発中のものです。2011/04/03(日) 19:25:34.16ID:AodKWX3t
DXライブラリのソースコードを使って、ライブラリを作成せずに
例えば、真ん中に点を打つだけのプログラム
とかを作成したいのですが
ソースコードをどのようにいじれば良いでしょうか?
0004名前は開発中のものです。2011/04/03(日) 21:24:46.12ID:AodKWX3t
いや、何でもない。聞かなかったことに
0005名前は開発中のものです。2011/04/04(月) 02:53:30.39ID:27WTTC5Z
よかった立ってた
スレ立てられなかったからどうしようかと
>>1 乙!
0006名前は開発中のものです。2011/04/04(月) 13:56:43.96ID:G92pIitx
スレも立てられたし、ライブラリの正式版もバージョンアップされたな
0007名前は開発中のものです。2011/04/04(月) 14:46:10.56ID:lkmdMkYP
DXライブラリは、汎用性上げるためにDLLで配布したほうがいいだろ。
コンパイラ別にするのは面倒だし。
ライブラリのアップデートに対応できないし。
0008名前は開発中のものです。2011/04/04(月) 14:58:40.04ID:XwqulUWi
そうは思わない
0009名前は開発中のものです。2011/04/04(月) 15:19:02.79ID:72a4O5pd
自分みたいに、DLL形式じゃないから選んでるような人間も居るだろうしなあ。
0010名前は開発中のものです。2011/04/04(月) 15:33:30.37ID:qA+xtM5U
どうせバイナリ配布するなら両方用意すればいいだけのことなんじゃない
まぁ必要なものは自分で作ればいいんだけど
0011名前は開発中のものです。2011/04/04(月) 15:34:43.59ID:lkmdMkYP
実はDLLでもLIBでも速度差はないらしいが。
windowsが上手いことやって。
0012名前は開発中のものです。2011/04/04(月) 15:36:46.12ID:lkmdMkYP
総合アーカイバープロジェクトってあるだろう。
あれはほとんどDLLのみの配布だ。
バージョンアップされも、自作ゲーム・アプリの更新はいらない。
0013名前は開発中のものです。2011/04/04(月) 16:29:59.69ID:27WTTC5Z
アーカイバとかは仕様がハッキリ決まってるものだけど、ゲームのライブラリはそういうのとは違うんだよ
仕様が100%確定でない以上、ゲームとその周辺のバージョンの管理は作者がやらないといけない
例えば、ライブラリ側で生成される乱数が変更されたら、本体のバージョンは変わらないままリプレイが再生できなくなったりする
0014名前は開発中のものです。2011/04/04(月) 17:52:44.68ID:+4VnZw9S
うだうだ言ってないで自分で作れよ。
そのためのオープンソースだろ?
0015名前は開発中のものです。2011/04/04(月) 22:07:06.65ID:oUYUst2F
>>12
たぶん、DLLなら「DXライブラリがアップデートする度にビルドして配布」っていう手間がなくなるよ
って言いたいんだと思うけど、俺は逆だと思う。

DLLがアップデートされたら、配布中のゲームの挙動が変わったりして結構うざいと思うよ。
埋め込んでおけば、少なくとも挙動が変わる事がないからDLLが出る度に対応作業をしなくていい。
極端なことを言うと、新しいDLLが出る度に自作ゲームのテストをやり直さないといけない。
だから、開発者側でライブラリのバージョンをコントロールできないって結構大変だと思う。



統合アーカイバーの場合は

DLL→解凍処理そのもの
アプリ→DLLへのGUIを提供

というようにお互いに独立性が高い(特定のDLLやアプリである必要がない)。だから成り立っている。
0016名前は開発中のものです。2011/04/04(月) 23:52:45.21ID:+ZQ2N5lU
>>12
統合アーカイバプロジェクトでDLL形式が使われてるのは
DLLを追加することでプラグイン的にソフトの対応フォーマットを
拡張できるようにするためだと思うの。
そういう意味では、対比としてその例を出すのは
あんまり適切じゃないと思うの。

あと、他の有名なゲーム用ライブラリであるLunaとかも
LIB形式配布だった気がするけど。


ってか君、前スレでも同じ事言ってなかった?
0017名前は開発中のものです。2011/04/05(火) 01:08:55.04ID:leWQ4Q6V
一定の需要があるのは確かだろうけどね。
DLL形式で再配布してるところ無かったか。
0018名前は開発中のものです。2011/04/05(火) 01:47:10.74ID:azkSsqOb
DLL+Cリンケージはかなり多くの処理系でサポートされてて簡単に別の言語から呼び出せたりするのが夢があって良い
0019名前は開発中のものです。2011/04/05(火) 02:13:59.62ID:n6/xNVW9
作る側の都合としてはメリットあるんだけど
実質ゲーム遊ぶ人の視点で考えると

「わざわざDLLも入れないといけないの?
ちょっと遊びたいだけなのに、面倒だからいらね」
となる危惧はあるなあ…
0020名前は開発中のものです。2011/04/05(火) 03:07:44.02ID:8+yljQiv
dll使いたきゃc#用使えばいいじゃん。dll自体はネイティブなんだし。
0021名前は開発中のものです。2011/04/05(火) 11:21:42.45ID:leWQ4Q6V
>>19
かと言ってゲームと一緒にDLLも配布すると、せっかくのDLL形式の利点の1つが無くなるしな。
0022名前は開発中のものです。2011/04/05(火) 11:30:08.28ID:azkSsqOb
サイズ節約なんて利点のうちに入らないと思うけど
そもそもDLLのバージョンが違ったら動かないなんてザラだしユーザ側のDLLインストールとかに頼っちゃ駄目だろこの場合は
0023名前は開発中のものです。2011/04/05(火) 19:17:21.07ID:JYrZmSQ6
DxLib.DLLを別インストールするのは無しでしょ。

DXライブラリを使ったソフトが世間に大量にあるわけでも
DXライブラリが数十MBの巨大ライブラリってわけでも無いのに。
DXライブラリに対する利点がほとんど無いよ。無用にユーザの環境を汚すだけ。
0024名前は開発中のものです。2011/04/05(火) 19:31:00.32ID:iwB7WDbQ
DXライブラリを使ったソフトって数えたら結構な数がある気がする
0025名前は開発中のものです。2011/04/05(火) 20:58:30.77ID:rodxN/HH
7が汎用性とかイミフなことを言うから意味のない雑談が始まったな
0026名前は開発中のものです。2011/04/05(火) 21:44:01.31ID:hp+X5XW0
作ったエフェクトがイチマチ暗いというか効果がなかったんだが
二重に加算したらすごくよくなった。
どうやら画像を拡大するときの補完の影響で、エフェクトが全体的に暗くなっていたらしい
0027名前は開発中のものです。2011/04/05(火) 22:28:10.65ID:leWQ4Q6V
二重加算は自分もやるけど、数を増やしまくったりすると結構重いな。
極端に古いマシンではないはずだけど、動画キャプったときにカクついた。
0028名前は開発中のものです。2011/04/06(水) 15:56:44.88ID:BH+QSZ/U
拡大すると二重に描画しなきゃならないなら、最初から拡大しておいて、
それを明るさ二倍にした画像を用意しといた方が軽いと思う
色飽和させたいなら別だけど
0029名前は開発中のものです。2011/04/06(水) 19:00:44.88ID:v6FetV3w
画像を大きくすると今度はメモリが圧迫されるから状況しだいかもしれん
0030名前は開発中のものです。2011/04/06(水) 20:24:44.37ID:QYbzkIKn
class Picture{
public:
const int handle;
int x,y,width,height;
//..
Picture(char* filename):handle(LoadGraph(filename)), //..
draw(){DrawGraph(x,y,handle,TRUE);}
};

ってしたいんだが仕様のせいか描いてくれない
何か解決法ない?
0031名前は開発中のものです。2011/04/06(水) 21:12:08.23ID:LBQsvXTZ
そこだけ書かれても何も言えないYO
0032名前は開発中のものです。2011/04/06(水) 21:17:42.57ID:gWmiebMD
Dxライブラリをスクリプト言語Luaに移植してみた
http://www.dotup.org/uploda/www.dotup.org1503491.zip.html
0033名前は開発中のものです。2011/04/06(水) 21:26:12.85ID:QYbzkIKn
#include "DxLib.h"
using namespace std;

class Picture{
public:
const int handle;
int x,y,width,height;

Picture(char* filename):handle(LoadGraph(filename)),x(0),y(0)){
GetGraphSize(handle,&width,&height);
}

draw(){DrawGraph(x,y,handle,TRUE);}
};
0034名前は開発中のものです。2011/04/06(水) 21:27:15.55ID:QYbzkIKn
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
DxLib_Init();

Picture p;
p.draw();

DxLib_End();
return 0;
}

こんなカンジです
0035名前は開発中のものです。2011/04/06(水) 21:31:09.44ID:LBQsvXTZ
定義してるコンストラクタ呼び出されてないYO?
0036名前は開発中のものです。2011/04/06(水) 21:38:43.97ID:QYbzkIKn
悪い俺のミス
Picture p("test.png");
0037名前は開発中のものです。2011/04/06(水) 22:11:03.02ID:gWmiebMD
DXライブラリの問題ではない
もう一度クラスの使い方について勉強しなおしてください
0038名前は開発中のものです。2011/04/06(水) 22:15:24.70ID:N60iyAe0
コードが手元になくてうろ覚えで書いてる?
実際のコードを貼付けた方が確実。

このコードを基準に指摘するなら、
・ハンドル格納先がconst intだから
・描画後に即DxLib_Endしてるから画面が見えてない
0039名前は開発中のものです。2011/04/06(水) 22:55:38.57ID:QYbzkIKn
分かりました
ご指摘ありがとうございました
0040名前は開発中のものです。2011/04/07(木) 01:13:24.25ID:SEAR+BO1
ハンドル格納する変数がconstかどうかは関係ないぞ
0041382011/04/07(木) 01:33:22.98ID:IGrDi287
>>40
試したら確かにconstでも問題なかった。
C#とごっちゃになってた。済まない。
0042名前は開発中のものです。2011/04/07(木) 08:58:26.68ID:Q06cpueU
公式質問掲示板のスパムうぜえな
0043名前は開発中のものです。2011/04/07(木) 12:09:47.44ID:/k8r31Ri
今DXライブラリの通信機能を利用して、クラスを渡して受信側のクラスにコピーするプログラムを組んでいるのですが
どうやらクラスにstringやコンテナがあるとクラスをシリアライズしないといけないらしく、
boostのシリアライズと組み合わせて何とかできないかとがんばっているのですがどうしてもうまくいかないのです・・・
どなたか同じようなことをやっている人はいらっしゃいませんか?

送信側
Clarss A
std::ostringstream test;
boost::archive::binary_oarchive sou(test);
sou << (const Class&) A
std::string aaaa =test.str();;
char* s = new char[aaaa.length() + 1 ];
strcpy( s, aaaa.c_str() );
NetWorkSend( NetHandle , &s, sizeof(&s) ) ;

受信側
〜(DXライブラリの通信サンプル)
if( DataLength != 0 ) break ;
}
Class B;
char a[255];
NetWorkRecv( NetHandle , a , DataLength ) ;
istringstream is(a);
boost::archive::binary_iarchive jyu(is); ←ここで領域外エラー
jyu >> B;
0044名前は開発中のものです。2011/04/08(金) 08:12:38.14ID:OZlsiZIx
DLLでの配布をいってたものですが。
LIBはvs2008、vs2010の差でも動かない。
ヘッダファイルで動的にDLLの関数を読み込めば、Windowsのほぼすべてのコンパイラで統一して動作する。
LIBとDLLを両方配布して、機能差に違いが無いようにしてほしいです。
0045名前は開発中のものです。2011/04/08(金) 09:12:48.77ID:1Q+gaT6K
ダイナミックリンクの必要性がよくわからない
いいことないぞ
0046名前は開発中のものです。2011/04/08(金) 10:04:05.98ID:ugdlzprS
むしろスタティックリンクの開発環境の限定がうざい
0047名前は開発中のものです。2011/04/08(金) 11:39:41.89ID:s8IM5VZ3
DXLIBって、初心者がC/C++でDXを使えるようにするライブラリじゃねーの?
だから、ビルド時にスタティックリンクして、完結するようにしてるんじゃないのか。
大体、なんで作者が興味ない環境までサポートしてやる必要があるんだよ。
単なる自分勝手な欲求を、多数の利益みたいに言ってるんじゃねえ。
0048名前は開発中のものです。2011/04/08(金) 12:25:54.70ID:Qp/vxYBH
DLLになってうれしいのはDelphiやD、BCCだろうけど
すでに廃れてるしな
VC以外でどんな環境で使うの?
0049名前は開発中のものです。2011/04/08(金) 12:55:29.12ID:lVB4evdp
>>43
boostってのをしらんが

> char* s = new char[aaaa.length() + 1 ];
> strcpy( s, aaaa.c_str() );
> NetWorkSend( NetHandle , &s, sizeof(?

&sの時点でまちがってね?

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