鉄道経営系ゲーム製作スレッド Ver.6
■ このスレッドは過去ログ倉庫に格納されています
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/
0752名前は開発中のものです。
2010/02/16(火) 15:00:21ID:NzRq2GFE0753名前は開発中のものです。
2010/02/24(水) 22:36:26ID:RtF/9Bs1どなたかわかる方いらっしゃいましたらアドバイスをお願いします。
http://freetrain.sourceforge.net/forum/viewtopic.php?f=19&t=39
'org.kohsuke.directdraw.Surface' のタイプ初期化子が例外をスローしました。
場所 org.kohsuke.directdraw.Surface..ctor(DirectDrawSurface7 _handle)
(中略)
場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
CLSID {B6803A0F-671C-4730-A802-BB0C2C4BDAC4} を含むコンポーネントの COM クラス ファクトリを取得中に、次のエラーが発生しました: 80040154。
場所 org.kohsuke.directdraw.Surface..cctor() 場所 M:\FreeTrainDev2\FreeTrainEX-av0.7.1.2PassageWay\trunk\lib\DirectDraw.net\Surface.cs:行 27
0754名前は開発中のものです。
2010/02/24(水) 23:34:08ID:QtvYEeHN80040154はClass Not Registered,らしい
つまりDLLがレジストリに登録されてないんじゃないか?
リンク先のページの手順のどこかでミスしてない?
0755名前は開発中のものです。
2010/02/24(水) 23:36:05ID:442060O7Readmeぐらい嫁よ。
うpロダに一応Vista対応してみたというテスト版があるから、それ試してみれば。
人柱だけど。
0756名前は開発中のものです。
2010/02/25(木) 19:15:51ID:6cWD1bsH0757名前は開発中のものです。
2010/02/25(木) 20:49:54ID:+j2qcvqGじゃあ、あなた>>753のとこでなぜ動かないか説明すれば?
0758名前は開発中のものです。
2010/02/25(木) 22:50:26ID:6cWD1bsHそもそも>>754が丁寧に指摘してくれてんのが見えないのかい?
0759名前は開発中のものです。
2010/02/25(木) 23:43:18ID:+j2qcvqGおまえのとこで動くから、みんな動くとか勝手なこと言ってんじゃねーよ。
0760名前は開発中のものです。
2010/02/26(金) 00:03:01ID:kLsvEY5Pどこにある??
0761名前は開発中のものです。
2010/02/26(金) 00:20:07ID:Dd72mMBDどこにVISTAは対応してますと書いてんだよ。
VISTAで動く動くと言うのはいいが、それを見て動かないと言ってきた奴には全部
おまえが対応しろよ。
0762名前は開発中のものです。
2010/02/26(金) 01:31:38ID:xK9onrQ00763名前は開発中のものです。
2010/02/26(金) 02:13:01ID:CigVlCy30764名前は開発中のものです。
2010/02/26(金) 05:59:56ID:ail08I5A0765名前は開発中のものです。
2010/02/26(金) 13:54:24ID:GGuGBft+0766名前は開発中のものです。
2010/02/26(金) 14:22:15ID:u39oHgJwもらいました
225*300でやってます
0767名前は開発中のものです。
2010/02/26(金) 15:19:01ID:A6MQC38d0768名前は開発中のものです。
2010/03/02(火) 21:30:21ID:kVqn5CMl0769名前は開発中のものです。
2010/03/03(水) 20:35:35ID:wBx8bI2fFreeTrain系をVista以降で動かすには、
Vista以降に標準搭載されていないDLLをインストールする必要がある。
それには入手方法、ライセンスの問題など問題山積みのため、
現在FreeTrainではVista以降に対応していないと表明されている。
>>753が書いたエラーメッセージも、まさに
そのDLLを入れていない状態で起動しようとしたときに出るものである。
これでいい?
0770名前は開発中のものです。
2010/03/03(水) 22:05:33ID:Mn00E9kpそういう意味で言ってたけど、全く理解しないアホに噛み付かれて最悪だ。
もう、どうでもいいわ。
0771名前は開発中のものです。
2010/03/03(水) 22:33:30ID:YOzWxF9L0772名前は開発中のものです。
2010/03/03(水) 23:57:18ID:zahRviMeお前誰だよ
なりすましすんな
0773名前は開発中のものです。
2010/03/04(木) 00:02:07ID:1y5f5mdv分かってて噛み付いたんだよきっと。
久しぶりにSSうp
ダイ改前は家にいるより外に出る事の方が多いので、全然開発が進まない。
tp://ranobe.sakura.ne.jp/src/up50028.png
0774名前は開発中のものです。
2010/03/04(木) 02:03:42ID:7axQMIrmもう、黙っておくわw
0775名前は開発中のものです。
2010/03/04(木) 22:40:12ID:RibYwaiHすげえなあ〜
ちなみに、NODATAってのは何?
0776名前は開発中のものです。
2010/03/04(木) 23:30:22ID:1y5f5mdv国家機密かな。
0777名前は開発中のものです。
2010/03/04(木) 23:57:57ID:npK7P6pB俺が作るとどうしても7マスくらい先に駅があって、それでも次の駅まで1時間ぐらい
かかるわけだが、そこに5両編成がヘタすると30分おきに1本。
交互発着にすればもう少し増発出来そうだけど、東京の電車だってそこまで過密ダイヤ
じゃないよな…。
0778名前は開発中のものです。
2010/03/05(金) 00:09:08ID:8MSh6x4+でもそれくらいのタイムスケールで走らせるのが一番楽しいんだよね。
長大編成が走る路線では追い越しとかちょっと凝ったダイヤを作るのも面倒だ。
短編成多頻度運転の路線の方が色々な事が出来てダイヤの作り甲斐がある。
0779名前は開発中のものです。
2010/03/05(金) 00:47:45ID:w//pnlRl街づくりばかり気にして肝心の電車走らせるのがいつも後回しになるな
0780名前は開発中のものです。
2010/03/05(金) 06:31:25ID:o6sWEYY4プラグインを開発する暇もないけどな・・・
0781名前は開発中のものです。
2010/03/10(水) 10:30:24ID:AwdmI2j0アドオンってどこで集めればいいのでしょうか?
全てが入った一括ファイルとかあるのでしょうか?
1個ずつDLしないといけないのかな・・・。
0782名前は開発中のものです。
2010/03/10(水) 18:34:02ID:kI3PeGX50783名前は開発中のものです。
2010/03/10(水) 20:27:01ID:UFiD82OZAdditional plugin Set入れればほとんどことたりる。
そこに入ってないものだけ個別に拾ってきて入れればいい感じ。
0784riorio ◆rio2xMQlrQ
2010/03/15(月) 21:46:45ID:rvCLouy6C#できるSE至急募集ww
過去ログを読むと列車の進行速度と時間進行がソース内で直打ちされてるそうだから
まずそこを変数参照に書き換える作業をして、
しかるのちに変数で時間進行を変更可能にする、
という順序かな。
セーブデータの互換性を保つ必要があるので、オプションで現行A4方式とリアルタイム
方式と選択可能なようにしたいね。
週7日・月28〜31日・年365日は変えません。
0785名前は開発中のものです。
2010/03/15(月) 22:42:53ID:xta4+a9t変換を変えればいいだけ。
ただ値は固定になってるので言われてるとおり、変数にしないと駄目ですね。
time.csとかclock.cs辺りを見ればいいかな。
電車の速度も固定でabstracttraincontributionImpl.csにある。
電車の場合は1ボクセル進むのに何分(ゲーム内時間の単位で)かかるかという値を持っている
けどsuperbで1分となっているから、さらに高速化するには時間の単位を変えないと駄目でしょうね。
0786名前は開発中のものです。
2010/03/15(月) 23:55:30ID:Mdn/UR2h時間進むのも時間かかったりしちゃうのか
0787riorio ◆rio2xMQlrQ
2010/03/16(火) 06:58:53ID:J3bp9c8cビルドできん。
ビルドできたら寝ようと思ったたら徹夜しちまったw
これまでやったこと。
WindowsXP Home(32bit)クリーンインストール
Visual C# 2008 Express Edition インストール
Visual C++ 2008 Express Edition インストール
atlbase.hがないと怒られたので、
ttp://ysmt.blog21.fc2.com/blog-entry-244.html
参考にWindows Drivers Kitインストール、
C++のオプションのディレクトリにおいて、インクルードファイル・ライブラリファイルの
ディレクトリにWDK内を指定。
DirectDraw.AlphaBlend.2008.slnをビルド
↓
1>------ ビルド開始: プロジェクト: DirectDraw.AlphaBlend, 構成: Debug Win32 ------
1>コンパイルしています...
1>stdafx.cpp
1>c:\documents and settings\western\my documents\freetrainsource\trunk\lib\directdraw.alphablend\debug\dx7vb.tlh(9099) : error C2061: 構文エラー : 識別子 'RECT'
1>c:\documents and settings\western\my documents\freetrainsource\trunk\lib\directdraw.alphablend\debug\dx7vb.tlh(9115) : error C2061: 構文エラー : 識別子 'RECT'
1>c:\documents and settings\western\my documents\freetrainsource\trunk\lib\directdraw.alphablend\debug\dx7vb.tlh(9298) : error C2061: 構文エラー : 識別子 'RECT'
1>c:\documents and settings\western\my documents\freetrainsource\trunk\lib\directdraw.alphablend\debug\dx7vb.tlh(9315) : error C2061: 構文エラー : 識別子 'RECT'
1>c:\documents and settings\western\my documents\freetrainsource\trunk\lib\directdraw.alphablend\debug\dx7vb.tlh(14467) : error C2061: 構文エラー : 識別子 'RECT'
1>c:\documents and settings\western\my documents\freetrainsource\trunk\lib\directdraw.alphablend\debug\dx7vb.tlh(14472) : error C2061: 構文エラー : 識別子 'RECT'
1>DirectDraw.AlphaBlend - エラー 6、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
0788名前は開発中のものです。
2010/03/16(火) 09:01:29ID:0sP8zlfc0789名前は開発中のものです。
2010/03/16(火) 09:59:29ID:1nA0m+wpあーそれね。自分も嵌って結局解決できなかった。
なんか、言語仕様の変更なのかどうかよくわからんけど、
タイプライブラリのヘッダファイルにRECTっていう型があって、
関数テンプレートにもRECTっていう名前の引数があるとそういうエラーが出るみたい。
でもタイプライブラリって勝手に編集できるもんじゃないし、どうしていいか分からなかった。
なのでDirectDraw.AlphaBrendはプロジェクトを消して、Dllの参照だけ追加して凌いだよ。
0790riorio ◆rio2xMQlrQ
2010/03/16(火) 11:24:00ID:J3bp9c8cこれだけあれば動くハズ!pluginsに入れてね http://u4.getuploader.com/freetrain/download/31/Mountain2plugins.zip
ソースから自分でビルドしたいひとむけ http://u4.getuploader.com/freetrain/download/32/Mountain2src.zip
ソースは基本foobarbazerさんからいじってないんですが、プロジェクト作成しないと
ビルドできなかったのでプロジェクトファイル作ったのが違いです。
んでそのときにうっかりDLLの名前さわっちゃったので、plugion.xmlがちょこっと変わって
マス。
foobarbazさんに感謝。
第2うpろだのほうにゴミがありますが、そっちはあとで消すので入れないでください。
plugin名が非ユニークなものになり、上記のものと同時に入れるとコンフリクトします。
さて。このpluginをビルドすると、FreeTrainのコア部分のDLLなんかが全部pluginの下に
もういっこできちゃうのだが…… なにがおかしいのだろう。
プロジェクトのプロパティかなぁと思ってほかのpluginのプロジェクトプロパティとも見比べて
みたのだが、どこが違うかわからなかった。
まぁ消せばいいだけで害はないのでとりあえずうp
0791riorio ◆rio2xMQlrQ
2010/03/16(火) 11:48:51ID:J3bp9c8cXPなんでデフォでアルヨー
あと書き忘れてたけど、過去に自分がビルドした動作環境一式ではFT EX Avが
起動してたので、dx7vb.dllとかの問題ではないことは確認できてたのであった。
>>789
そうですか
ウチだけじゃないんですね
とりあえずイジるところじゃないから、過去のDLL資産への参照でしのぐっちゃしのげ
なくはないところですが。
なんかイヤンですね。
>>565さんのVista対応とりあえず版にAlphaBrendが取り込まれてるそうだから、
こっちをCPPでビルドして参照できるようなら乗り換えるのも手かなぁー
もうすぐ数字が1.0に近づいてくることでもあるし。
なんか1.0名乗りたくないんですがねw 0.9.1とか0.9.1.1とか末尾増やしますか?ww
むっかーーしはPC9801で生CいぢくってたこともあるのでC++もまったくの異次元語って
ことはないと思うんですが。DirectXとかはわかんないし、バグ取りはできんです。
そのあたりは565さんの近況を知りたくもあり。
できればC#に統合する方向で行きたかったけど。
C++使わざるをえないところはC++やむなしで両方使いで行くのかどうなのか。
議論もしていいかなと。私一人っじゃ決められない。
あ、あと今ウチにVistaも7もないので。
Vista/7のプレーンな実行環境(dx7vb.dllとか入ってない)がある方絶賛募集中です。
0792名前は開発中のものです。
2010/03/16(火) 13:45:42ID:h5ZjeFTi0793名前は開発中のものです。
2010/03/16(火) 14:44:23ID:J3bp9c8cAv beta 0.8.1としてリリースしました。
ソースのSubversionも0.8.1になっています。
0.8.0のソースが必要になった方はブランチ切ってますのでブランチから。
なにか不具合があったら言ってください。
自前のいぢくりまわったpluginが入ってる環境では試してないです(汗
更新追加部分を反映すべくプロジェクトファイルの更新があるので、個別ソースとって
きて混ぜるより0.8.1ソースをコミットしたほうが手間がかからないはずです。
--- --- ---
今後の方針ですが、>>565さんソース取り込んだものを0.9としたいと思います。
これはしばらく時間かかるでしょうー
とりあえず今、
> dmusici.hはDirectMusic関連のヘッダファイルですが、DirectX SDK August 2007を最後に
> 廃止されました。
> お手数ですがDirectX SDK August 2007以前をご利用ください。
のところでハマっとるw
今までDirectX SDKなんか捕って来てなかったから、August 2007以前ってMSサイトに
まだ転がっとるのかね???っていうところかrwww
0794名前は開発中のものです。
2010/03/16(火) 15:33:38ID:J3bp9c8cExpress EditionのVisual C++ 2008には、
『msclr/marshal.hがない』
のだ。
あ、あともちろん関連のmarshal_windows.hもない。
チョー便利な文字列マーシャライズが使えない。
使ってるソースはビルドできない!
えー
いまさらですが、FreeTrainEX Avは、「Free」を名乗るからにはビルドもフリー環境で
できることを目指したいと、今私がかってに決めましたので。
すでにあるものはどうしようもないですが、新規に本体に取り込むソースは基本的に
Express Editionでビルドできることとします。
一発ソリューションはできなくてもいいので。
C++でDLLビルドして置いておいてから、C#で参照かけたらビルドできました、でOK。
そのかわりExpress Editionで使えないヘッダファイルとかは使っちゃダメーー
これがルール。
いいでしょうか。
0795riorio ◆rio2xMQlrQ
2010/03/16(火) 18:23:11ID:J3bp9c8c本アーカイブは、FreeTrain EX A-versionのアルファ版です。
本アーカイブのバージョンはα0.9.0.0です。
リリース日 2010/03/16
◎既知の不具合
・BGMの再生を行うと即座に「応答しなく」なる
・数十秒の時間進行で走行音が再生されなくなる
・駅の発車ベルも一駅につき数回鳴ると再生されなくなる
・本来半透明で描画されるべき、線路や建物の建設後図がまったく描画されない
・夜間の列車描画がおかしくマゼンタ背景がそのまま描画される
・山肌斜面がまったく描画されない
その他あれば開発スレでご報告ください。
アルファ版の間は、バイナリとソースを同梱のみの配布とします。
◎β0.8.1からの変更点
・DirectX関係をVer.6スレ>>565さん作ラッパーに置き換えた
・上記ラッパーのうちC++ 2008 Express Editionでビルドできない部分を変更した
・WindowsVista/Windows7に含まれていないDLLの使用をやめた
・DirectDraw.AlphaBrend.dllの使用をやめた
http://www.hiyohiyo.info/~riorio/freetrain/FTEXAvALPHA0900.zip
0796riorio ◆rio2xMQlrQ
2010/03/17(水) 02:16:53ID:Vmgu4FK7本来32bit/24bit/16bitカラーのいずれで動いているか取得しないといけない箇所で
カラーモードを取得できていないことをつきとめました。
昼間の半透明がおかしいのはこのためでしょう。
ここを追求してみます。
なお、夜のスプライト表示は、そもそもいまだ>>565時点で実装されてないクサい
ので、ここは元ソース追いかけて私が実装しなきゃどうにもならないっぽいです。
あと、BGMは、一回流れ始めるところまではマシになりました。
ただ流れ始めてすぐ「応答しなく」なりますけど。
リターンすべきところで無限ループとかなってそう。
うーーーん、なんでかな。
描画に比べると重要度は低いと思うので、後回しにしますね。
気分転換にささっと直すかもしれませんが。
0797名前は開発中のものです。
2010/03/17(水) 03:20:44ID:uOg8CViD0798riorio ◆rio2xMQlrQ
2010/03/17(水) 07:11:58ID:Vmgu4FK7lib/DirectDraw.net/Sarface.cs の27行目でnew()してるところの
AlphaBlender
ってどこで宣言されてるクラスなのー?
ヘッダとかあさったけど、これっていうのが見当たらず。
このnew()を移植しないとダメだとにらんだのだが
こんどのlib/DirectXWrapper/DirectDraw.cppの中でどう書いてnew()したものやらで。
もちろんそれだけじゃダメで、331行目のbltAlphaFastをそのnewしたalpha.の配下に
しなきゃなんだけど。
うーーん。川口さんソースと見比べてるのだけど、
もとがSurface sourceと普通の引数とってるところを、なぜわざわざ書き換えて
Surface^ sourceとポインタ参照にしてあるのかが私には理解できない。
0799名前は開発中のものです。
2010/03/17(水) 07:44:38ID:Ua1urVDnいうクラスが定義されてます。
これをDirectDrawAlphaBlend.idlの最後で
coclass AlphaBlender
{
[default] interface IAlphaBlender;
};
と定義してます。
0800名前は開発中のものです。
2010/03/17(水) 08:39:49ID:Vmgu4FK7ありがとうございます。
見てみて研究してみます。
あと今朝の成果。
>>565時点で初期化せずにバグ持ってる半透明処理などを迂回してたところを
迂回しないようにしたらこんなかんじになりました。
ここから0.8.1相当まで持っていくのにどんぐらいかかるかですねー
http://www.hiyohiyo.info/~riorio/freetrain/FTEXAvALPHA0901.zip
0801名前は開発中のものです。
2010/03/17(水) 20:45:47ID:S4VsL/N/nanashi
0802riorio ◆rio2xMQlrQ
2010/03/18(木) 10:51:36ID:nfTYv0dA自分の自宅にVista/7環境がないので、ちと仕事場のノートPCで動くか休み時間に
ためしてみたのですが。
こんなのが出るだけで、何が足りないのかどうしたらいいのかさっぱり分かりませんでした。
http://dl6.getuploader.com/g/4%7Cfreetrain/34/FT.jpg
DirectXは10.0が入ってます。
最新ランタイムも入れました。
VistaのBuissiness Standardです。
Administratorではないユーザでしか実行できず、特権的な動作はオンにできません。
やっぱ自宅にVista環境ないとダメかなぁ〜
仕事用PCいじくりまわしてて壊しても困るし。そもそもAdministrator権限もらってないから
いじりようがないしね。
0803名前は開発中のものです。
2010/03/18(木) 14:40:54ID:OHFvp6Gqソースを解凍せず砂箱上という特殊な環境ですが
0804名前は開発中のものです。
2010/03/18(木) 20:14:58ID:nfTYv0dAありがとうございます。
ちゃんと(?)動いているんですね。
よかった。これで描画の改良(完全移植)などにもやる気がでます。
やはり自分でWindows7のテスト環境持ってないとダメなのかなぁ。
そのためだけに2万円のOS買うのってなんか微妙な気がするけど。
となると、やはりポイントは動くときのAdministrator権限かなぁー
仕事場ノートでAdministrator権限で動かないかあとあと調べてみます。
あぁ、そういえば.NETランタイム入れた記憶がないけど、Vistaだったら
.NET 2.0のランタイムは最初から入ってるんでしたっけ。
そこも後日調べるか。
0805名前は開発中のものです。
2010/03/18(木) 20:38:20ID:nfTYv0dAhttp://www19.atwiki.jp/freetrain-exav/pages/58.html
今回ビルドしてて、「あれ、これライブラリが足りない」とかってなったことを念頭において
います。
記述の正確さとか方針そのものへのご意見とか、いろいろあったらこちらスレのほうで
ご指摘ください。
Express Editionにないものを具体的に示した方がよい、ということがあればページを分けて
参考資料として示したいと思います。
0806名前は開発中のものです。
2010/03/18(木) 21:58:26ID:CYbX+by90807名前は開発中のものです。
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
■ このスレッドは過去ログ倉庫に格納されています