鉄道経営系ゲーム製作スレッド Ver.6
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001名前は開発中のものです。
2009/04/06(月) 22:12:16ID:5LmTI8rQ情報交換スレッドです。(sage推奨)
[前スレ]
鉄道経営系ゲーム製作スレッド Ver.5
http://pc11.2ch.net/test/read.cgi/gamedev/1219757767/
[このスレッドで主に話題となるゲーム]
FreeTrain
http://www.kohsuke.org/freetrain/
FreeTrainヘルプ
http://www.kohsuke.org/freetrain/wiki/pukiwiki.php (IDとPASSはダイアログよく読んだら分かる)
FreeTrainのAnother version wiki
http://www19.atwiki.jp/freetrain-exav/
Tera Train
http://teratrain.la.coocan.jp/wiki/?FrontPage
[関連サイト]
アートディンク
http://www.artdink.co.jp/
0807名前は開発中のものです。
2010/03/18(木) 22:47:32ID:OHFvp6Gqvc++/vc# directx windows sdk等の開発環境が入っている
このため一般的な環境では存在しないライブラリ等が読み込まれているかもしれない
なので普通の環境を持っている方に試してもらいたい
またUACがON状態なので通常のUser権限で動いています(制限ユーザでも起動を確認しました)
0808名前は開発中のものです。
2010/03/18(木) 23:03:07ID:nfTYv0dAあれ、制限ユーザで動くのか...
ほえー
じゃあ何がひっかかったのかな。<仕事場のBuisinness Standard
ほかにもVista/7試してくれる人が増えるとうれしいな
>>806
まぁさすがにそれはあれだけど。
UACにはひっかからざるをえんね。現状。
インスコフォルダに直接.ini置くし。
あとセーブデータの書き出しとかもどうしよう。
0809名前は開発中のものです。
2010/03/19(金) 00:04:34ID:6JIce7D2起動は出来ますが、何かを設置すると、以下のエラーが発生します。
保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。
場所 bltAlphaFast(IDirectDrawSurface7* , IDirectDrawSurface7* , Int32 , Int32 , Int32 , Int32 , Int32 , Int32 , UInt32 )
場所 freetrain.DirectXWrapper.Surface.bltAlpha(Point dstPos, Surface source, Point srcPos, Size sz) 場所 c:\ftsrc\trunk\lib\directxwraper\directdraw.cpp:行 334
場所 freetrain.framework.graphics.SimpleSprite.drawAlpha(Surface surface, Point pt) 場所 C:\FTsrc\trunk\core\framework\graphics\SimpleSprite.cs:行 59
場所 freetrain.controllers.rail.RailRoadController.drawVoxel(QuarterViewDrawer view, DrawContextEx canvas, Location loc, Point pt) 場所 C:\FTsrc\trunk\core\controllers\rail\RailRoadController.cs:行 276
場所 freetrain.views.QuarterViewDrawer.draw(Rectangle rectAB, MapOverlay overlay) 場所 C:\FTsrc\trunk\core\views\QuarterViewDrawer.cs:行 418
0810riorio ◆rio2xMQlrQ
2010/03/19(金) 00:27:36ID:2M7IEOHJえとね。それ。
AlphaBlendのためのメモリがないために起こってる、と思う。(自信なし)
lib/DirectXWrapper/DirectXWrapper.hのなかで
AlphaBlenderというクラスを定義してやって(どう定義したらいいか分からなくて困ってるが)
lib/DirectXWrapper/DirectDraw.cppのなかで
158行目あたりに、
AlphaBlender alpha = new( AlphaBlender );
とメモリ確保してやって、
331行目からの
bltAlphaFast( surface, source->surface,
dst.left, dst.top,
src.left, src.top, src.right, src.bottom,
static_cast<DWORD>(source->colorKey) );
を
alpha.bltAlphaFast( surface, source->surface,
にしたら?と思うのだが。
>>799で教えてもらったところは、C++で書いてるAlphaBlenderをC#なSurface.csで
使えるようにするように宣言してあるみたいで全部C++化された今回はそのままじゃ
ダメっていうか、不要で、そのもとになってるCAlphaBlenderをそのまま使うにして
あれ???ってわからんなってるところ。
0811名前は開発中のものです。
2010/03/19(金) 00:48:04ID:+Pu+HIXs文章もなんか支離滅裂だし...
0812名前は開発中のものです。
2010/03/19(金) 08:31:04ID:q2wCx0mLそんな精神状態だろ。そうじゃなけりゃプログラムなんか書けるか・・・俺だけ?
で、その状態でドキュメント書くとすんばらしい文章になってるので、あとから見ると
わけわかめ、前の会社のみんな、ごめん。まあ会社内の空気としてどうせドキュメント
なんてデタラメ書いているだろうと最初から信用してなかったから被害は少ないか。
0813名前は開発中のものです。
2010/03/19(金) 09:45:04ID:40xlIubO0814名前は開発中のものです。
2010/03/19(金) 13:59:33ID:6+8L9+0T激しく同意していいか?w
納期前日、徹夜3日目の夜、妖精見た事あるんだぜ。小人もいたよ。フフフ
0815名前は開発中のものです。
2010/03/19(金) 16:21:26ID:kuBPdC3E0816名前は開発中のものです。
2010/03/20(土) 23:42:51ID:19vl28wFあれー、ちみたち書けるのか?
ちょっと今から独力でC++/CLI勉強してーーとか言ってるとどうにもなりそうにないんで。
助けてほしいわい。
とりあえず565さんの書いたDirectDraw.cppのバグとりができたら、あとはなんとかって
かんじなんだけど。
川口さん時代のAlphaBlendが変数渡ししてたところを、なぜ565さんはハンドル渡しに
してあるのかとかも全然理解できなくて。
そのあたりに動かない原因が隠れてそうに思うんだけども。
565さん自身にここはこうでって解説してもらたら一番いいんだろうけど、565さん
まだこのスレ見てるのかねぇ……
0817814
2010/03/21(日) 00:19:30ID:rZJRYGKIう〜ん。手伝えるものなら手伝いたいけど。
当方Cのみ20年なので++の作法は学習しないと。
そりゃ言語は手段と言うけどやはり汚いコーディングはしたくないしね。<後の迷惑を考えると。
実はむしろこのソースからLINUX移植を検討したい位だよ。
Ubuntuのお陰でだいぶ可能性出てきたしね。
でもそれもこれもWin版が一定のOUTPUTを出してからだよね。う〜ん。。。
で、エスパーを1つ。(ソフト屋の勘なんて良いものではないが。
変数私をハンドル(ポインターか?)に変えたなら可能性は多分「戻り値」の関係だろ。
一般に++とかオブジェクト指向言語は「戻り値は関数の正常/異常」として、
正常ならばハンドルのどっかが計算された結果に書き換わっているはずだ。
(異常の場合書き換えるという処理もあるかもしれんけどね)
エスパーなんで外れても堪忍してね。
0818名前は開発中のものです。
2010/03/21(日) 00:38:31ID:PSZ0VC/RCのみですかー
となると、今回問題のラッパーはC++/CLIで書かれてますけど(ハンドルっていうのも
C++/CLIの流儀みたいです)、本体はC#でラッパーを実際に使ってるのはC#だし、
C++/CLIとC#の両方分からないと、かなぁ。
Linux移植とかおもしろそうですけど。
まさに今問題になってるDirectXWrapper.cppだけ移植できたら、もうそれで
Linuxで動きそうな気もしますよ。
FreeTrainがDirectX叩いて絵を描いたり音ならしたりしてる部分は全部ここに
集約されてるはずなので。
0819名前は開発中のものです。
2010/03/21(日) 00:59:31ID:I3Qq2dje0820名前は開発中のものです。
2010/03/21(日) 04:10:40ID:aViYKpOiとりあえず、何故かコメントアウトされている以下の4行を稼動させれば
bltAlphaFastは一応動くと思いますよ。
AlphaBlender.cpp - bltAlphaFast
--------------------------
137: memset( &ddsdTarget, 0, sizeof ddsdTarget );
138: ddsdTarget.dwSize = sizeof ddsdTarget;
144: memset( &ddsdSource, 0, sizeof ddsdSource );
145: ddsdSource.dwSize = sizeof ddsdSource;
--------------------------
このコードがないと構造体が初期化されず、正しい値を返してくれません。
Lockの返り値を見るとおそらく失敗しているはずです。
(Lockの返り値でエラーチェックされていないので、見逃してしまったのでしょう)
メモリの読み取りエラーも、偶然のメモリ配置により偶然成功し、Lock範囲を超えて
書き込んでしまったせいだと思います。
ちなみに、0.9.0でgetDisplayModeが失敗するのも同じ原因です。
DDSURFACEDESC2構造体が初期化されていなかったため、
GetSurfaceDescがDDERR_INVALIDPARAMSを返して失敗しています。
0.9.0.1ではコメントアウトしているようですが、Fixed riorio 2010.03.16の部分を復活させると
正しく動作すると思います。
それでは、お邪魔しました。
0821名前は開発中のものです。
2010/03/21(日) 06:01:44ID:PSZ0VC/Rこの修正でレール敷設はできるようになりました。
http://www.hiyohiyo.info/~riorio/freetrain/FTEXAvALPHA0902.zip
まだ土地の上下ができません。
ホーム設置もできません。
メモリ破壊エラーになります。
0822名前は開発中のものです。
2010/03/21(日) 07:24:57ID:PSZ0VC/Rhttp://www.hiyohiyo.info/~riorio/freetrain/FTEXAvALPHA0903.zip
◎既知の不具合
・色相変換をしている建物の描画がおかしい
・山肌の色がおかしい。またヘイトカット時に山肌部分の表示がおかしい。
・BGMの再生を行うと再生開始直後に「応答しなく」なる
・数十秒の時間進行で走行音が再生されなくなる
・駅の発車ベルも一駅につき数回鳴ると再生されなくなる
あと色変換してる車両なんかもうまくいかないかもしれません。
山肌の色をどこで決めてるのか分からない。
たぶんDirectDraw.cpp内の、Surface.csからって部分にあるとおもうんだけど……
0823名前は開発中のものです。
2010/03/21(日) 09:00:07ID:PSZ0VC/Rセーブデータをロードしたときに
オブジェクト参照がオブジェクト インスタンスに設定されていません。
場所 freetrain.DirectXWrapper.DirectDraw.!DirectDraw()
というエラーが出ますね。
直します。
0824名前は開発中のものです。
2010/03/21(日) 11:07:41ID:PSZ0VC/Rhttp://www.hiyohiyo.info/~riorio/freetrain/FTEXAvALPHA0904.zip
◎既知の不具合
・BGMの再生を行うと再生開始直後に「応答しなく」なる
・数十秒の時間進行で走行音が再生されなくなる
・駅の発車ベルも一駅につき数回鳴ると再生されなくなる
・ある程度発展済みのマップをロードした際に「ブレークポイントで停止しました」となる
(そのようなブレークポイントはVisual Studioに設定していないのに)
その他あれば開発スレでご報告ください。
アルファ版の間は、バイナリとソースを同梱のみの配布とします。
◎β0.8.1からの変更点
・DirectX関係をVer.6スレ>>565さん作ラッパーに置き換えた
・上記ラッパーのうちC++ 2008 Express Editionでビルドできない部分を変更した
・WindowsVista/Windows7に含まれていないDLLの使用をやめた
・DirectDraw.AlphaBrend.dllの使用をやめた
・ビデオレコーダの同梱をやめた
0825名前は開発中のものです。
2010/03/21(日) 11:23:24ID:aViYKpOi>>821
ホーム設置は、多くのSystem.IndexOutOfRangeExceptionが発生しますが、一応作成できるようです。
この例外は、REACH_RANGEの3乗(10x10x10)分の空間をチェックし、
範囲外のときに発生するようプログラムされているので、作成者の意図としては正常な例外です。
ただ、ほとんどが範囲外なため、非常に多くの例外が発生してしまいます。
正直、この部分は修正したほうがいいと思います。
例外をキャッチすることが前提のコードはあまり推奨できません。
>>824
BGMの再生についてですが、DirectAudio.cppのBGMクラス、notify()がおかしいです。
ここも同じように例外キャッチ前提で、COMExceptionをキャッチしないと終了しないようになっています。
下記のように変更してみてください。音楽再生でフリーズすることはなくなると思います。
void notify() {
long code;
LONG_PTR param1, param2;
while(SUCCEEDED(mediaEvent->GetEvent(&code, ¶m1, ¶m2, 0))) {
mediaEvent->FreeEventParams(code, param1, param2);
if (code == EC_COMPLETE) {
Debug::WriteLine("BGM: rewinded");
// rewind to the start
mediaPos->put_CurrentPosition(0);
}
}
}
0826名前は開発中のものです。
2010/03/21(日) 12:16:51ID:PSZ0VC/Rありがとうございます
確認の上、0.9.0.5を出したいと思います。
全然話かわるんですが、Windows既定のwebブラウザがIEだと、メニューのオンラインヘルプ
がちゃんとURLまで開くのですが。
Google Chromeだとブラウザは開くけどURLをもらってくれません。
core/util/UrlInvoker.csの書き方の問題だと思うんですけど。
んーー、どうしたらいいのかな。
0827名前は開発中のものです。
2010/03/21(日) 12:42:08ID:aViYKpOiすみません、出張してきただけなのに意見が過ぎてしまいました。
お邪魔しましたー
0828名前は開発中のものです。
2010/03/21(日) 13:40:58ID:PSZ0VC/Rhttp://www.hiyohiyo.info/~riorio/freetrain/FTEXAvALPHA0905.zip
BGM修正。
効果音が鳴らなくなるのは対策できず。不具合として残ってます。
「ブレークポイントで停止」もちょくちょく出る。
が、pluginsを全部入れたら過去のAv開発マップもロード出来ることはできる。
これで、プレーンなVista/7で動けばばんばんざい。
>>827
よかったらこれからも1日1回ぐらい来て下さい。^^
0829名前は開発中のものです。
2010/03/21(日) 13:43:23ID:PSZ0VC/RAv wikiに向かうようにしてあります。
0830名前は開発中のものです。
2010/03/21(日) 16:37:33ID:aViYKpOiすみません、C#スレにまたいらっしゃったようなので。
またお邪魔させていただきます。
効果音が鳴らなくなるのは、おそらくDirectAudio.cpp の SegmentStateクラス、
isPlaying の戻り値HRESULTをそのまま判定していることが原因です。
if (performance->handle->IsPlaying(nullptr, state))
ではなく
if (performance->handle->IsPlaying(nullptr, state) == S_OK)
であるはずです。
試してみてください。
ただ、本体含めこのコードだと僅かに無音が入ると思うのですが、
それでいいのでしょうか?
0831名前は開発中のものです。
2010/03/21(日) 17:01:05ID:PSZ0VC/Rできたぁぁぁぁ
こんなクッソ簡単なif文の判定いっこでこれかい!
これは教えてもらわなかったら何十日かかっても分からなかった。
ありがとうーーーーー
わずかな無音は気にする人はこれまでいなかったので大丈夫だと思います。
Debug::Printのかわりにテキストファイルにずらずらログ書き出す処理を書いて
leadTimeとか見てんーーーとかうなってましたw
あと残ってる、判明してるバグは、発展させた街をスクロールすると、そんなもの
指定してないのに
「FreeTrainはブレークポイントになりました」
が起こって落ちることかな。
これって発展済みの街データごと渡さないと検証してもらいようがないので……
街データ見たい!って方がいたら拙作の街をpluginごとアーカイブして置きますが。
0832名前は開発中のものです。
2010/03/21(日) 17:21:01ID:PSZ0VC/Rアルファ0.9.0.6
http://www.hiyohiyo.info/~riorio/freetrain/FTEXAvALPHA0906.zip
残る、明らかなバグは、ある程度発展した街を表示させようとしたとき
「ブレークポイントになりました」
が起こること。
もしほかにもバグ見つけた方いたらどしどしご報告を。
ところで、そのブレークポイントが起こる街データ、見せてーって人います?
0833名前は開発中のものです。
2010/03/21(日) 17:45:21ID:p7Y8PgsZ0834名前は開発中のものです。
2010/03/21(日) 18:05:01ID:Jtr1OPhkバグが見たいだけなんだから、勘違いしないでよね!」
0835名前は開発中のものです。
2010/03/21(日) 19:06:49ID:mbfpo0SN半ば諦めて、こまめに別名保存で対応してる。
0836名前は開発中のものです。
2010/03/21(日) 19:12:47ID:I3Qq2dje0837名前は開発中のものです。
2010/03/21(日) 20:31:37ID:PSZ0VC/R今回のDirectXWrapperに入れ替えただけでブレークポイント100%になってしまったから
「なにかある」気はしてるのだが。
というか、もうそれだとあの街続けられないし。ロードして開発中の地域にスクロールした
だけで落ちるから。
で、それとはべつにわたしのお遊び。
アルファ0.9.0.7
http://www.hiyohiyo.info/~riorio/freetrain/FTEXAvALPHA0907.zip
Wrapper見たらBGMの音量調節できるっぽいじゃん、じゃあやろうやろう、とメニュー
作ったはいいけど、適用しようとすると「フィルタ グラフには、オーディオ レンダラ
フィルタは含まれていない。」エラーになって調節できない。
なんでじゃーーー、というところ。
0838名前は開発中のものです。
2010/03/21(日) 23:09:15ID:aViYKpOiリンクが切れているようです。
あと街データ上げて貰えれば私も見てみます。
0839名前は開発中のものです。
2010/03/21(日) 23:15:48ID:pxEuIs1Kバージョンは0.9.0.6
Vista Sp2 32bit だと FreeTrain driverが起動時落ちるんだが
問題のレポート見ると System.NullReferenceException とかでてるし
ちゃんとVistaもしくはWin7環境で作らんとあかんのではないだろうか
0840名前は開発中のものです。
2010/03/21(日) 23:40:31ID:PSZ0VC/R失礼しました
拡張子がZIPになっちゃってました。
.zipになおしたのをあげなおしましたので。
どうもいろいろDirectSoundまわりの使い方をぐぐって調べてみたところ、
現Wrapperが不完全な形のラップになってて、FTで使ってなかった機能は
グラフマネージャを作ってなかったりしていそうです。
そのあたり、グラフマネージャ作ってといじくってみようとしてるところです。
>>839
EXの話題もここでいいですけど。
バージョンが0.9.0.6なのはEX【Av】でまさに私が配布してるものではないかとw
Avの0.9.*のVista動作報告があがるのはありがたいです。
Vista以降のDirectX10では、9.0cまでで使われているランタイムライブラリ
すべて上位互換ではなく入らないものがあるとも聞きますので。
9.0cランタイムがきっちり入ってるかどうか再確認お願いします。
といっても、dxdiagだと10アリマスになっちゃうし、どうしたものかな。
4月ぐらいにはウチも7環境作ろうと思ってますが。
0841名前は開発中のものです。
2010/03/21(日) 23:52:04ID:PSZ0VC/R街データですが、pluginごしゃごしゃ使いまくってるので、このpluginsを展開してから
JUNKplugins.zip
こっちの街データから好きなほうを。
rioriosav2.zip
チョココロネのほうが、発展してる島北東へスクロールしただけでブレークポイント起きます。
いろいろ由来があって、ほとんど同じモノが2つの名前で入ってたりややこしいので普段使い
とは別フォルダに放りこむの推奨です>JUNKplugins
0842名前は開発中のものです。
2010/03/22(月) 00:02:15ID:OY2uPiiP>>839は>>832を試した結果です
dx7vb.dllは入れていません
グラボは HD5750 Catalyst 10.2 グラフィックメモリ1G
CPU Core2duo E6850
メモリ 4GB
OS Windows Vista SP2
DirectX 9.0c DirextX 11 runtimeが入ってます(10はプレインスト)
バージョンはDirectX End-User Runtimes (February 2010)のものです
0843名前は開発中のものです。
2010/03/22(月) 01:26:09ID:NRHTgvKrコンパイラからもはじかれるけどこれ貼って寝る
DirectAudio1007.zip
0844名前は開発中のものです。
2010/03/22(月) 01:27:10ID:fGfZj2ad0.9.0.7を少し見てみました。
音量調整ですが、今のラッパーでも正しく動作しますね。
BGMオブジェクトを自分でConfigダイアログで作していますが、そうではなく
Core.bgmManagerのものを使わなければなりません。
つまり、BGMManagerクラスにVolumeプロパティを新たに持たせ、
そこで bgm.volume に音量を入れるようにし、そのVolumeプロパティに
ConfigダイアログからGlobalOptionsを通して設定する必要があります。
(おそらくGlobalOptionsが個人設定になるんですよね。多分)
また、BGMが「なし」の場合には、音が鳴っていないので put_Volume がE_NOTIMPLを返します。
BGMが鳴っていない場合の対処も必要です。
最後にケアレスミスが1つ。
DirectAudio.cppのBGM.volume.get()でエラーチェックをしていますが、最後がelse になっているので、
成功してもエラーになってしまいます。ご注意を。
うーん、なんだか指摘ばかりになってしまいましたが、ご容赦を。
お邪魔いたしました。
0845名前は開発中のものです。
2010/03/22(月) 01:41:28ID:NRHTgvKr>>844
ほむほむ
いまみっつほど、DirectX、というよりかはCOMの流儀がわかってないかんじです。
とりあえずひと眠りしてから修正とりかかります。
あ、>843は消しました。
0846名前は開発中のものです。
2010/03/22(月) 08:40:05ID:NRHTgvKrどこからが別物かというと難しいですけど。
見た目とかはほとんど一緒です<EXとEX Av
EXが.NET1.0で2005年秋に開発終了。
それをひきついで.NET2.0で動くようにして機能追加中なのがAvという感じでしょうか。
9割がたのpluginはまったくいじることなく共有できますしね。
セーブデータに互換性はありません。
EXまでの旧FTではFTがバージョンアップするとセーブデータが使えなくなっていたのですが、
Avになって互換性がとれるようになってAvになって以降はFTがバージョンアップしてもセーブ
データの互換性はとれています。
将来への上位互換を保証するものではありませんが。
0847名前は開発中のものです。
2010/03/22(月) 10:47:42ID:fGfZj2adいただいた街を使ってデバッグしてみました。
Debug Assertion Failedによるブレークポイントは、通常ASSERTに失敗したときに発生します。
今回は、大きさが 0 のvectorにアクセスしたときに発生しています。
具体的に言うと、DirectDraw.cpp、bltColorTransformで起こっています。
ただ、これはラッパーが悪いわけではなく、そもそも本体から渡す値が既に0となっていて、
またエラーチェックをしていないことが原因です。
なお、この値が 0 になってしまう原因は、プラグインです。
jp.co.hotmail.kitapoppoya.Tobu などのプラグインは、colorMappedが設定されていません。
このcolorMappedの数が"0"として読み込まれ、この"0"がvectorにそのまま渡され、
大きさが0のvectorにアクセスした場合にDebug Assertion Faildが発生するという仕組みです。
ですので、本体でプラグインを読み込むときに colorMapped が設定されていない場合の対処を
組み込むことが必要です。
とりあえずは、ColorMappedSprite.cs の draw メソッドで
if (srcColors[idx].Length > 0 && dstColors[idx].Length > 0)
{
surface.bltColorTransform(pt, picture.surface, origin, size,
srcColors[idx], dstColors[idx], false);
}
としてやればエラーは発生しなくなります。
が、これでは完全な対処とはならないのでご注意を。
0848名前は開発中のものです。
2010/03/22(月) 11:04:28ID:OY2uPiiPDirectX Audio? がvistaで使えない?あたりが関係してるんだろうか
0849名前は開発中のものです。
2010/03/22(月) 11:11:39ID:fGfZj2ad補足です。
jp.co.hotmail.kitapoppoya.Tobu のTB10030先頭でcolorMappedがあるのに内容が無いことが原因でした。
他にも、jp.co.tripod.chiname.structure.factory2のspriteTypeタグなどで起こっているようです。
0850riorio ◆rio2xMQlrQ
2010/03/22(月) 12:39:33ID:NRHTgvKrを適用してみたら、ブレークポイントは起こらなくなったのですが、
特定建物pluginが描画エラー起こしてるの発見しました。
これが正常なもの(0.8.1で描画)
http://dl5.getuploader.com/g/4%7Cfreetrain/36/FT0909VisualErrorNON.PNG
これが異常なもの(0.9.0.9で描画)
http://dl8.getuploader.com/g/4%7Cfreetrain/35/FT0909VisualError.PNG
私が作ったボクセル端橋脚のpluginで、
info.hiyohiyo.riorio.freetrain.structure.finito-web.bridgepier
になります。
0.9.0.6でどうなってたか見ようとしたのですが、0.9.0.6ではこの橋脚を建ててる
ところまでスクロールする間にブレークポイントになってしまって見れません(爆)
0851名前は開発中のものです。
2010/03/22(月) 12:49:41ID:NRHTgvKrちょっと思い出してきた。
> colorMappedがあるのに内容が無いことが原因でした。
というのは、たとえば私の問題になってる橋脚などでは
<!ENTITY hc06 '
<spriteType name="colorMapped">
<map from="19,136,255" to="255,136,19"/>
<map from="0,90,174" to="174,90,0"/>
<map from="0,80,154" to="154,80,0"/>
<map from="0,95,184" to="184,95,0"/>
<map from="0,64,124" to="124,64,0"/>
<map from="0,104,200" to="200,104,0"/>
</spriteType>
'>
<!ENTITY hc07 '
<spriteType name="colorMapped">
</spriteType>
'>
のhc07みたいなのですね。
これ、描画をスキップされるとまずいです。
pluginの元BMPの色そのままで表示したいときに、こう宣言してあるので。
というか旧FT(EX)がこの宣言でエラーを起こさず描画できてたので。
なので>>847も適用できなければ、DirectXWrapperも改善の必要アリです。
0.9.0.6では建築で土木の橋脚をあけた瞬間に落ちましたw
0852名前は開発中のものです。
2010/03/22(月) 13:15:18ID:NRHTgvKr::bltAlphaFast( surface, source->surface,
dst.left, dst.top,
src.left, src.top, src.right, src.bottom,
static_cast<DWORD>(source->colorKey) );
}
else {
std::vector<int> srcColors(_srcColors->Length);
std::vector<int> dstColors(_srcColors->Length);
for( int i=_srcColors->Length-1; i>=0; i-- ) {
srcColors[i] = static_cast<int>(colorToFill(_srcColors[i]));
dstColors[i] = static_cast<int>(colorToFill(_dstColors[i]));
}
::bltColorTransform(
surface, source->surface,
dst.left, dst.top,
src.left, src.top, src.right, src.bottom,
&srcColors[0],
&dstColors[0],
srcColors.size(),
source->colorKey,
vflip?-1:0 );
}
0853名前は開発中のものです。
2010/03/22(月) 13:16:02ID:NRHTgvKrDirectDraw.cppをこうしてみたらどうだろう。
まだビルド・動作させてないので、これからビルドしてみますw
0854名前は開発中のものです。
2010/03/22(月) 13:42:14ID:NRHTgvKrそこも含め直したものができましたので、これからアーカイブにまとめます。
0855名前は開発中のものです。
2010/03/22(月) 13:54:58ID:fGfZj2adもう修正してしまったようですが、一応。
元のDirectDraw.netを尊重すると
std::vector<int> srcColors(_srcColors->Length);
std::vector<int> dstColors(_srcColors->Length);
を
int *srcColors = (int*)malloc(sizeof(int) * _srcColors->Length);
int *dstColors = (int*)malloc(sizeof(int) * _dstColors->Length);
にして、::bltColorTransform を下のように変更するといいです。
::bltColorTransform(
surface, source->surface,
dst.left, dst.top,
src.left, src.top, src.right, src.bottom,
srcColors,
dstColors,
srcColors->Length,
source->colorKey,
vflip?-1:0 );
vectorでエラーが起こっているので、vectorを使わなければ問題なく動くようになります。
ご参考までに。
0856名前は開発中のものです。
2010/03/22(月) 14:46:42ID:NRHTgvKrうーーん、mallocはコード的に美しくないですなぁー
ということで私版
いやまぁこっちが美しいかというとそれはどうかわかりませんが。
アルファ0.9.0.9
http://www.hiyohiyo.info/~riorio/freetrain/FTEXAvALPHA0909.zip
そろそろβ名乗ってもいいかしら。
ちなみにBGMボリュームもあきらめたわけじゃないんですが、どうしたら
いいんだろうってコーディングが思いつかず頭かかえる状況なので……
0857名前は開発中のものです。
2010/03/22(月) 16:49:34ID:NRHTgvKr>856ベースでVista/7対応ができて大きなバグもとれたら、
それをFreeTrainEX Av 1.0とします。
もしそれまでに盛り込みたいことがあれば、今のうちにあげて
おいてください。
1.0リリースとともに、2.0を目指すアルファ版の公開にうつります。
2.0では時間進行のリアル化を第一目標にします。
このときnanashiさん実装の速度制限などにも手をいれることになります。
今は1ボクセルの進行速度を1/2/3/4分固定ですが、これを変数化します。
いろいろいじくることになると思いますので、アルファ版公開時にバグ取り
監修よろしくお願いします。
0858名前は開発中のものです。
2010/03/22(月) 18:17:43ID:BzpM8Jie完全に忘れてたけどvista以降でmidiは"そのままの状態"ではうまく鳴らないはず
0859839
2010/03/22(月) 18:26:39ID:OY2uPiiPもしかして>>856以外になにか必要なのものあるのかな
そうでなければDirectXSDK必須とか?
0860839
2010/03/22(月) 18:30:07ID:OY2uPiiPrekisaの .NetFrameWork2.0版動くしなぁ
DirectX9.0cは最新だしDirectX9.0入れないと動かないネトゲ動くし
おかしいですねぇ
0861名前は開発中のものです。
2010/03/22(月) 19:33:51ID:NRHTgvKrそれはなんかPC環境がおかしいね
でもウチもサブPC(XP同じ)で動かしてみようとしたら、.NETが1.1/2.0SP2/3.5SP1と
ずらっと入ってるくせにFreeTrainEX Av 0.9.0.9動かない(起動すらしねー)となった
ので人の事はいえん。
で、そのサブPCでベータ0.8.1は動くので、0.8.1にはなくて0.9.0.*にはある、「何か」
があるようだ。いったいなんだろう。
ビルドするにはWindowsSDKを入れる必要があるけど、動作には必要ないはず。
あ、あとDirectMusicのヘッダファイルを取り込むのにDirectX SDKのAugust 2007
以前をビルドには要求するのですが、まさか動作にも必要って事ないよね?
0862名前は開発中のものです。
2010/03/22(月) 19:50:44ID:uG2M7vDw0863名前は開発中のものです。
2010/03/22(月) 19:55:24ID:NRHTgvKrhttp://dl6.getuploader.com/g/4%7Cfreetrain/34/FT.jpg
ローダでいきなしコケるから手がかりが全く無い。
動かないって言ってる人、まずこれでしょ。
うちは動かなかったXPマシンにSDK入れてみるかどうするか思案してるところ。
SDKで汚染させずにプレーンな状態で残しておいた方がいい気もするし。
0865名前は開発中のものです。
2010/03/22(月) 21:01:44ID:BzpM8Jiedirectxwrapperの動作に必要なdllが足りない(vc++2008runtimeとか
0866riorio ◆rio2xMQlrQ
2010/03/22(月) 21:12:41ID:NRHTgvKrSO-RE-DA!!
と思ってクラッシュするサブPCにVC++のランタイム入れてみたけど、
やっぱり一瞬でクラッシュすることにかわりなし。
ちと昨日から、2chの連投規制にひっかかりぎみでして。
新しいバイナリとかできたらここに書けない時blogに告知するんで、
しばらく私の書き込みが無かったらblogチェックしてみてくださいませ。
http://riorio.asablo.jp/blog/
0867名前は開発中のものです。
2010/03/22(月) 21:26:38ID:BzpM8Jieそれでダメならすいません
0868名前は開発中のものです。
2010/03/22(月) 21:32:21ID:fGfZj2ad最初からずっと気にはなっていたのですが・・・。
DirectXWrapperは、DirectX7が必要ですよ。
具体的には、dx7vb.dllです。
DirectXそのものを実装すれば不要ですが、そんなことはできませんよね^^;
以前(V0.8)はCOMのDxVBLibを使っていたようですが、これはどうやってもVista以降では動かないようです。
なので、DirectXWrapperを作っていたと私は思っていました。
dx7vb.dll は DirectX10からは同梱されなくなったため、XPでも新しいPCではDirectX7が入っていないものもあります。
逆に、dx7vb.dll が入っていれば、VistaだろうがWin7だろうが動きます(多分)。
dxdiag で dx7vb.dll が入っているかどうか、確認してみるといいと思いますよ。
0869名前は開発中のものです。
2010/03/22(月) 21:50:21ID:NRHTgvKr私が作ったものじゃないものを私が断言するのは気がひけるのですが、
不要にするために作ってもらったと認識しています。
>DirectXそのものを実装すれば不要ですが
dx7vb.dllを使わないようなDirectX呼び出しをすればいい話かと思うのですが。
で、それを実現するために書かれたのがDirectXWrapperかと。
実際、世の中の市販ゲームソフトの多くはdx7vb.dll不要ですよね?
>以前(V0.8)はCOMのDxVBLibを使っていたようですが、これはどうやってもVista以降では動かないようです。
これも自分自身がやってないことを断言するのは気がひけるのですが、0.8以前でも
dx7vb.dllを登録してVistaで遊べてますという報告は複数寄せられています。
まぁそのせいもあって、Vistaネイティブ対応しなくっても、頑張る人はなんとかするから
いっかーとか気長になっちゃってためんはあるのですけど。
>XPでも新しいPCではDirectX7が入っていないものもあります。
いや、そんなのは聞いたことがない。
中身がほとんどServerになってたx64ですら入ってた。
>dxdiag で dx7vb.dll が入っているかどうか、確認してみるといいと思いますよ。
確認して入ってるXP HomeのPCで動きません。
その環境下で0.8.1までは動きます。
0870名前は開発中のものです。
2010/03/22(月) 21:54:15ID:OWtpJSK3Windows XP SP3です。
一瞬だけ起動して、そのままエラーも出ずに即終了です。
原因不明。
0871名前は開発中のものです。
2010/03/22(月) 22:43:01ID:OWtpJSK3すると>>870で起動しないといってたのが起動しました。
これって、つまりVC# 2008 Expressでインスコされる何かを参照しているということでしょうか?
0872名前は開発中のものです。
2010/03/22(月) 23:35:54ID:NRHTgvKrとりあえずウチのサブ機環境を入れたり出したりしてテストしながらビルドオプションの
再確認をして、もし動的リンクになってたら静的リンクに指定し直してビルドしたものを
再配布します。
もうしばらくお待ちください。
0873839
2010/03/22(月) 23:44:19ID:OY2uPiiPvc++2008再配布可能パッケージのセキュリティ更新のパッチがWindowsUpdateの履歴に乗ってるし
0874名前は開発中のものです。
2010/03/22(月) 23:44:22ID:fGfZj2adなるほど確かに私もDirectXWrapperの依存状況を見ていませんでした。
ざっと見ると、確かに dx7vb.dll には依存していないようです。
私の早とちりでした。
あとやはり部外者が首を突っ込み過ぎてしまったようなので、これにて完全にスレを去りたいと思います。
混乱させて申し訳ありませんでした。
それでは。
0875名前は開発中のものです。
2010/03/23(火) 00:59:34ID:WK7UoYnmなんかこのスレの住人はこのフレーズ好きだよね。
なんでだろ?
0876riorio
2010/03/23(火) 01:09:46ID:Ty8DZbGt結局XP HomeなサブPCではどうやっても動作させることができず、
>>871をたよりにC# Express Editionを入れてみたところ……
やっぱり動きませんでした!!!(爆)
ソースも持ち込んでビルドしてみたら、自分で動かせないexeを吐きおるわ、VC#EEwww
ただこのおかげで、動かない環境で「デバッグ」ランさせることはできて、エラー
はいてるのが
Core.installationDirectory =
Directory.GetParent(Application.ExecutablePath).FullName;
ということを突き止めました。
とりあえずウチ環境では、ですけど。
しかしApplication.ExecutablePathたって、
c:\FreeTrainEXAv9.0test\trunk\bin
とかなんですけど……
0877名前は開発中のものです。
2010/03/23(火) 01:22:00ID:Ty8DZbGtVisual C++ 2008 Express Edition入れたら動きました。
インストールしただけで起動もしてないのに……
リンクライブラリかなにかが不足してる可能性がありますね。
ということはDirectXWrapper.dllがらみ。
確認とれたところで、いったんVC++EEアンインストールしてサブ機をまたプレーンな
環境に戻してから、メイン機のほうでビルドしなおしなりしてみますわー
なんかもうイヤんなって、BGMに石川智晶ながしながら作業してるわw
0878名前は開発中のものです。
2010/03/23(火) 04:09:41ID:Ty8DZbGtまだまだいろいろ教わりたいことあったのですが、残念です。
今回のC++ないと動かんぞ問題もなにか私の見落としてる部分があるのでは
ないかと思ったりするのですが。
よかったら、これも縁ということでFreeTrainも遊んでやってください。
また困ったことあったらあちらにご相談にうかがいますので、
そのときに相手していただけたら幸いです。
あとはこっそりひっそり(謎)
0879名前は開発中のものです。
2010/03/23(火) 13:29:50ID:3DmOsrAL引き止められる事を期待してるか、そうでなくても惜しまれながら去る感を出したいから。
その後は良くてROM専、一般的には何食わぬ顔で復活。
0880名前は開発中のものです。
2010/03/23(火) 13:56:16ID:GqTzm0A6ていうか、その人は頼まれて出張してきただけで、
元々住人じゃないだろ
くだらない皮肉で、恩を仇で返すような真似するなよカスが。
0881名前は開発中のものです。
2010/03/23(火) 15:21:53ID:3DmOsrAL0882名前は開発中のものです。
2010/03/23(火) 15:35:15ID:GqTzm0A6口の悪いカスは噛みつかれるリスクぐらい受容すべきです。
0883名前は開発中のものです。
2010/03/23(火) 17:16:38ID:AxH8qfE00884名前は開発中のものです。
2010/03/23(火) 17:22:00ID:jsnYJvGr0885名前は開発中のものです。
2010/03/23(火) 20:12:14ID:Ty8DZbGthttp://www.nicovideo.jp/watch/sm10128113
http://www.nicovideo.jp/watch/sm10130820
0886名前は開発中のものです。
2010/03/23(火) 21:08:29ID:8kehcNOIこれも例のカス野郎のせいか。
開発者も変わったのだから、以前の恨みは忘れてriorio氏に協力して欲しいねぇ。
0887名前は開発中のものです。
2010/03/23(火) 21:16:45ID:3DmOsrALそうですね。結構な御覚悟ですが、私は噛みませんので安心して下さい。
0888名前は開発中のものです。
2010/03/23(火) 21:25:59ID:8kehcNOI既に甘噛みだぞ、おまえw
0889名前は開発中のものです。
2010/03/23(火) 21:36:29ID:yZRebS0j乙
最近あんまやってなかったけどまた弄ってみようかなあ
0890名前は開発中のものです。
2010/03/23(火) 21:46:08ID:ZjMq6i5L最近はプラグインも作ってないなぁ。
末期色とかE5系とかつくりたいな
0891名前は開発中のものです。
2010/03/23(火) 23:21:34ID:eEZYKn/vのですが、作れる方いませんか?
具体的には、今いっこいっこぽんぽんと置いていってる鉄道アクセサリを、北西から南東へ
「ここから
ここまで」
とマウスでびしっと矩形選択するとその範囲のボクセルすべてに、まるで地表
pluginのようにその鉄道アクセサリを敷き詰めてくれる、というのが欲しいんです。
動画にもしたような、複々線とか8複線とかの高架を作ってると、どうにも1ボクセルずつ配置
していくのがかったるくてしょうがなくて。
地表pluginのコードが参考になるかもしれないかと思ってみてみたけこど、なんか想像してた
のと全然違う中身で(GenericLandContribution.csの)、c477さんとこの掲示板でいちおう質問
してみたのですが…… こっちのほうが早いかもと。
どこそこのhoge.csを参考にしたらいいよっていうのでもいいです。
うまくひきうつせたら自力でplugin作ってみますので。
0892名前は開発中のものです。
2010/03/23(火) 23:56:27ID:eEZYKn/v実際のコードを見てみて自力で追加出来るか考える。
では、地表の本体はどこか。
ずばりcore/contributions/land/にあります。
LandBuilderContribution.csがベースクラス
大概の地表プラグインはStaticLandBuilder.csを使ってます。
ただし、「四角形を地表ボクセルでおおいつくす」みたいなコードは、
core/controllers/RectSelectorController.csと
それを継承したcore/contributions/land/DefaultControllerImpl.cs
にあります。
0893名前は開発中のものです。
2010/03/24(水) 00:00:57ID:ozU7YICvそういう設定も導入するって言ってたんじゃなかったっけ?
0894riorio ◆rio2xMQlrQ
2010/03/24(水) 20:56:40ID:dI30iifWちょっとDirectXWrapperを利用したALPHA0.9系列が不安定なままで。
一方、Vista/7では単独では動かないけど0.8.1は非常に安定しているので。
「バージョン1.0正式版」として公開するのは0.8.1がいいのではないかと
考え始めました。
XP以前向け、最初の、安定決定版としての1.0 == 現0.8.1。
そしてDirectXWrapperを利用したものは「バージョン2系列」として開発
して公開したらどうかと。
いかがでしょうか?
もし異論がなければ日が変わる頃に0.8.1を1.0として公開します。
0.8.1のバグ追求なども行っておいてください。
もし大きなバグがあったということがあれば、0.8系列でβとしてバグとって
から1.0に上げたいと思いますし。
報告がないからバグもないと思うんですけど(汗
0895名前は開発中のものです。
2010/03/24(水) 21:03:30ID:GFnU/BXdお前の妄言が本流になる訳でもないし
0896名前は開発中のものです。
2010/03/24(水) 21:20:52ID:eqD7xz7Kなんでもええがな
0897名前は開発中のものです。
2010/03/24(水) 21:39:28ID:V41PpRlY0898名前は開発中のものです。
2010/03/24(水) 22:05:36ID:IPrRYTnxOKだと思う
0899riorio ◆rio2xMQlrQ
2010/03/25(木) 01:20:26ID:6G8G5HnFhttp://sourceforge.jp/projects/freetrain-exav/
内容的にはβ0.8.1から変更ありません。
発車ベルの音量をちょこっと調整してあるので、1.0を上書きすると
音量が揃って幸せになるかも。
ソースのほうも1.0のものをコミットしてあります。
なお、ソースコードを持っていかれる方は、最新βのソースが欲しい方はtrunkから、
Release1.0のソースが欲しい方はRelease1.0から、としてください。
これからDirecxtXWrapperを反映したβ2.0.1.0のソースをコミットしますので。
また、β2.0.1.0のバイナリも登録します。
数十分待ってください。
では。
0900名前は開発中のものです。
2010/03/25(木) 01:38:18ID:PFdi3QmQ0901名前は開発中のものです。
2010/03/25(木) 02:23:50ID:6G8G5HnFソースもあります。
で、一作日からばたばたしてるとおり、このβ2.0.1.0単独動作できません。
なぜかVisual C++が、無料のExpress Editionでいいけどインストールされていないと
起動しません。
原因は今だ不明です。
この原因について解明できる方、おられませんでしょうか。
0902名前は開発中のものです。
2010/03/25(木) 02:27:45ID:KnU1j7uY0903名前は開発中のものです。
2010/03/25(木) 02:36:16ID:6G8G5HnFそれは困った。
手元では2008入れたら動いたのだが。
ひょっとして2005では動かなかったとか??
2008が入ってるのに動かないというのは、さらに問題がふくれるなぁ。とほほ。
とりあえずOS/DirectXバージョン/.NETバージョンもろもろ条件書いていただけますか。
0904名前は開発中のものです。
2010/03/25(木) 02:43:27ID:KnU1j7uY開発環境はVisual Studio 2008 Profeessionalが入っている
プラグインロードエラーが原因で起動しない
0905名前は開発中のものです。
2010/03/25(木) 02:53:01ID:6G8G5HnFAvより古いpluginを読み込ませようとしてたりしませんかね。
追加のplugin入れない、2.0.1.0のみの実行環境で起動してみてください。
あとは、エラーメッセージにpluginのIDが記載されているはずなので、それをもとに
どのpluginがエラー起こしてるのか突き止めて排除してみるとか。
0906名前は開発中のものです。
2010/03/25(木) 11:13:10ID:6G8G5HnFhttp://sourceforge.jp/projects/freetrain-exav/
C++不要になってると思います。
レス数が900を超えています。1000を超えると表示できなくなるよ。