直しすぎたのかorz
なんかパネルがどうも変になってる原因っぽかったので、さっくり消して動くようにしたのだけど
それがまずかった???
あははw
もっかい別フォルダででも昼にはったのリビルドしてみて、動作とソースくらべてみてください。
私はまだそこまで調査できてないです orz
バージョン管理が煩雑になっちゃって……
手元でちょっとでもイジったもの全部ちくいちSourceForgeにあげてたら楽なんだろうけど
さすがにそうもいかんだろうということでプロトタイプ3はローカル管理してるもんで。
>>950の内容だと、パネルでツールバーをスクロールしないようにしてたの?
>>954 私自身がコーディングしたわけじゃないのであいまいなことしか言えないのですが
そのはず。
個人的には列車のステータスを表示するウィンドウがすでにあるので、それに
トラッキング機能を追加することで昨日はったののツールストリップを廃止できると
いいのかもしれないけど。
ただ列車のステータスウィンドウは今複数開けるようになってて、ただそれが1つの
マップビューにしか連動しないのよね。
マップビューを複数あけたときに2つめ以降は無視される。
で、ステータスウインドウを複数あけててもそのすべてが1つのマップビューを
追いかけてしまう。
ここをなんとか、マップビュー6つとステータスウィンドウ6つを個別管理できたらと
思って、そこまでやれてない。
ソース読めないんでわかんないんだけど
時間加算のタイミングってどういう感じになってんだろうか
いろいろ見てたけど、やっぱりパネルが悪さというか、完全にパネルに対応できてない気がする。
元々フォームに描画してたのを無理矢理?パネルに変えてるみたいで、その中途半端な改造が
原因かなぁ。
ネットでいろいろ調べたけど、どうもToolstripはスクロールする仕様っぽいので、やはりパネルを置いて
パネル内でスクロールさせるのが定番らしい。
なので中途半端になってるパネルをちゃんと使えるようにすればいけるのかも。
ところでマップビュー6つって多すぎない?www
いや、多いと思うけどw
ステータスウィンドウがたしか6つまで出せると思うので、対にすっかな
程度であんま6という数字に深い意味ないです。
列車追跡で、なんとなく思いついたことを列記。
実現可能かどうかは未検証。
現在も列車情報を表示する
TrainTrackingWindow.cs
というのがある。frameworkの子クラスかな。マップビューとは独立したウィンドウ。
いくつでも表示を増やせる。
「移動」ボタンを押すと、アクティブなマップビューのみがその列車に移動。
これを中身全くいじらず
TrainInfomationWindow.cs
と名前変更。列車情報の表示機能はこちらに移す。
あらたに、追跡用の「新」TrainTrackingWindow.csを用意。
ベースは現TrainTrackingWindow.csだが、MapViewの子クラスにする。
MapViewが1つにつき、「新」TrainTrackingWindowは1つのみしか作れない。
ヘイトカットウインドウを同じ考え方。
で、ここに「追跡」ボタンを装備。
どうでしょう、うまくいきそうでしょうか?
>>947 まず、言葉の定義で、「最小時間単位」ですが、これは内部的な時間単位の最小で
「これ以上細かな時間は絶対扱えませんよ」というものです。
ver2までのFTでは、これが1分でした。
列車の進行速度は、1分で1/2/3/4ボクセルでしたね。
ただ駅のダイヤ設定などは10分単位でした。
この最小時間単位をプロトタイプ3では1秒にしています。
なお駅のダイヤ設定は1分単位にしています。
画面右下の時刻表示も1分単位です。
やろうと思えば5秒単位ダイヤとかもできなかないですけど、そこまでいります?
1分で組めれば十分だと思うので今はやってないです。煩雑になりすぎるし。
もし分割併合運転するために必要となればしてもいいです。
それで、最小時間単位が1秒だと列車の移動速度も1秒1ボクセルとなるわけでは
ありません。これは勘違いしないで欲しい。
ループで待つことはいくらでもできるので、3.0.0.4の1ボクセル1/2/3/4秒のほか、
3.0.0.3時点でやっていた2/4/6/8秒にすることももちろん可能ですし、もっと遅く
4/8/12/16秒にすることだってもちろん可能です。
これはちょちょいと変数の初期代入値をいじって変更可能に再設計してあります。
もっと言えばオプション画面で選択可能にすることもできます。
できますが、これが実用的かというと疑問なので実装していません。
ゲーム途中で値を変更するとダイヤは全部狂ってしまいますし、最悪2→3のとき
のようにタイマーイベントが全部爆発してしまうこともないとは言えません。
「このセーブデータはどの値で作ってセーブしたんだっけ」ということを失念すると
ロードできないセーブデータを持ってしまうことになって、プレイヤーとして悲しい
ことになると思うんです。なので、値の開放はしないほうがいいんじゃね?というのが
今の考えです。
現実のダイヤは10秒区切りのとこもありますが
よほど使わないでしょう
一般の時刻表見る限り1分単位ですから
自分はダイヤが1分ごとにいじれて中速でもうまく走れりゃいいっていう人間です
でもその適正な速度が自分にはワケワカメなので皆様にお任せします
列車の追跡、2.0.1.4ベースでいろいろいじってみたけど、あと一歩でうまくいかねーw
http://www.hiyohiyo.info/~riorio/freetrain/tracking2014.zip TrainTrackingWindow.csとMapView.csで、変数trackingTrainModeが共有できれば
終わりだと思うんだがー
static変数使っちゃうと全部のマップビューに影響するからダメ……
うーん。
なんか考え方がおかしいかな。
というか、一部MapView.csに移したところがあるんだけど(moveToとか)、追跡じゃなくて
「移動」であれば、TrainTrackingWindow.csでマップビュー窓ごとに違う列車を追いかけ
させることはさっきできてたんだけど。
それを追跡となると、むーーん。
まてよ……
>「移動」であれば、TrainTrackingWindow.csでマップビュー窓ごとに違う列車を追いかけ
>させることはさっきできてたん
で、
一定微小時間ごとにMapVewがTrainTrackingWindowを呼び出してくれれば全部解決
じゃね?
でそれってどうすりゃいいんじゃろ。
なんかFTみたいなそういうのの固まりをいじくってるわりにそのへんが理解できてない。
一定時間毎に処理するんならtimerがあるけど
それよりdelegateやeventを使って登録者全てに変更を通知する形の方が良くないかな
ごめん
963はあまりにあまりな内容だったので、とりあえずビルドできたの置き直した。
うお、途中で書き込んじゃった。
名前いっしょ
http://www.hiyohiyo.info/~riorio/freetrain/tracking2014.zip まだ追跡できてないけどビルドはできて、複数のマップビューで異なる列車を
持つところまでは実装してある。
で、MapView.csの194行目で、
// TrainTrackingWindow.trackingtoTrain();
とコメントアウトしてるけど、これをコメントアウトせずに実行できたら完成ーーと
思いきや、
「オブジェクト参照が必要です」
って言われてビルドできないんで。
コメントアウトしてあるわけで。
なんでかな。trackingtoTrainはちゃんとpublicにしてあるんだけど。
なんかすんげー初歩的なところで引っかかってそうで恥ずかしいんだけど。
どういう流れで動いているのか良く分からないけど定義を見るに
×TrainTrackingWindow.trackingtoTrain();
○trainTrackingWindow.trackingtoTrain();
じゃないかな
テストもしてないので正しく動くかは不明
>>968 うーん、惜しい、のかな?
ビルドは通った。
実行すると該当部分で「オブジェクトのインスタンスが存在しません」エラーになる。
あっれー??
ますますなにが悪いのか分からなくなってきました。
あと、TrainTracking.csの中で、もとからある「移動」ボタンはEnabled属性をいじって
列車がちゃんと選択されて線路上にある時だけボタンが有効になるようになってて
カッコイイんだけど。
それを「追跡」ボタンでも真似ようとしたけどうまくいかない……
Enabled=falseにしたらずっとグレーアウトしたままだし。
util/commandのなかにあるcommandって独自クラスを利用してるくさいが追求不足。
プロトタイプ3での時間進行のはなし
>>945 ふむふむ
私も、自分の好みで言えば200キロ/hをスケールする気はさらさらありません。
ただそういう声があがっても不思議ではないなということと、もしやれと言われれば
技術的に不可能ではないからやれなくはないぞというだけの話。
ただ超高速が1ボクセル5秒は私は遅すぎると思います。
箱庭にはいいかもしれませんけど、ダイヤ命派・実在路線再現派には納得できない
んじゃないかな。
ためしに私がプロトタイプ3で再現しよーとしてるのが山手線なんですが。
http://www.nicovideo.jp/watch/sm10189258 プロトタイプ3.0.0.4の中速=1ボクセル3秒で、東京→品川ノンストップ17分です。
これは結構いい感じだと思う。
プロトタイプ3.0.0.3の中速=1ボクセル6秒では35分かかって、かかりすぎぃ遅すぎぃ
と感じました。
>>956 時間加算のタイミング、か。どう説明したらいいんだろう。
最小時間単位をまず決めるんだけど。
初代FreeTrain〜EX〜Av ver2は、これが1分なわけ。
1年1月1日0時0分を0として、現在時刻はそこから現在までの累積分数を
long型整数currentTime変数にぶちこんでる。
currentTimeは、core/world/Clocl.csの最後にあるtick()というメソッドに内で
+1 される。これがFT世界の時間の進みそのもの。
プロトタイプ3では、これを1秒にしてみただけ。
currentTimeには1年1月1日0時0分からの累積秒数が入ってる。
tick()が呼ばれるのは、core/framework/MainWindowの1330行目あたりにある
timerHandler()から。
ゲームの進行速度が最高速とか通常とかゆっくりとかっていうのはウェイトループ
させてタイミングとってて。そのウェイトの数があるのが
core/framework/MainWindowの1375行目あたりからのclockMenuUpdater()とか
menuItem_ClockGo1_Clickあたり。変数名はtimer.Interval
で、このウェイトが……あれ、どこで待ってるんだろ。
それっぽい変数名があったからこれ幸いといじったものの、ウェイト実際に入れてる
のが分からん (をひ
まぁこんな感じなんだけど。説明へただよね。どこが分からない?
コードだせばいいじゃん
つうか、独り言ばっかり...またネタもないからいいか。
もろもろファイルの配布元があっちこっちしてると新規に始めようとした人が混乱
するかと思ったので。
Additional Plugin Set 20050904版をFreeTrainEX AvのSourceForge.jpダウンロード
コーナーでも配布するようにしました。
収録内容はEXのコーナーで配布されていた20050904版ほぼそのままです。
ただし綾瀬ヒロさんの橋脚が、現在のAv本体収録バージョンと逆転してしまって
いてセーブデータの不整合を起しかねない状態だったので、そこのみAv本体収録
バージョンに入れ替えてあります。
列車追跡機能、実装できました。
Beta2.0.1.4とプロトタイプ3.0.0.5に収録してSourceForge.jpに置いてあります。
SourceForge.jpには2.0.1.4の最新ソースもコミットしてありますので、ソース
欲しい方はどうぞ。
これを入れるときは、plugins\system\plugin.xmlも忘れず上書きコピーしてください。
配布パッケージすべて上書きすればOKですが。
>>976 nanashiさん以外でも、これDLLにビルドできるかたおられましたら。
ビルドしてみて、修正点を含めたソースをまた返してもらえるとありがたいです。
ver2.0系列のDirectXWrapper利用になっております。
>>970 >ただ超高速が1ボクセル5秒は私は遅すぎると思います。
>箱庭にはいいかもしれませんけど、ダイヤ命派・実在路線再現派には納得できない
>んじゃないかな。
確かに「中速、15両編成の通勤列車を3分間隔で運行」なんて芸当は
最小時間単位5秒では明らかに無理ですね。これが出来ないのは確かにつまらない。
かと言って1秒ではあまりにも速過ぎる。ダイヤ設定を60秒ごとにすると
今のFTの感覚で言うと「1時間単位でしかダイヤを設定できない」というお寒い状況になってしまいます。
間をとって、最小時間3秒とか?
その辺は、様々なゲーム性、プログラムの組みやすさを考慮して考えなければいけないと思います。
1分でいいじゃん
>>981 >1. 時間速度は数種類から選択制にする
実験的に取り入れるのならいいとは思いますが
この機能を恒久化するのは危険ではないでしょうか。
他人と様々なデータを共有できるというAvの最大の利点が死んでしまいます。
>2. ダイヤは15秒単位
奇数だと画面表示と整合性が取れなくなります。
10、20、30秒あたりで良いのではないでしょうか。
もちろんセーブファイルの方に記録するんだろうし何言ってんだ?
>>978 さんくす、
と思ったけど、ほどいたものをVisual C# 2008 Express Editionでリビルドかけたら
やっぱり失敗するお (´;ω;`)
さらに同梱DLLをPrototype3.0.0.5のpluginsにつっこんだらエラーになるお?
>>982 時間速度の設定値をSerialize対象にしておけば、セーブした時の時間速度が
ロード時に復元されて大丈夫だと思われる。
やってみないと分からないけど。
>奇数だと画面表示と整合性が取れなくなります。
なんか奇数がまずい画面上の問題ありましたっけ。ないと思うんだけど。
3.0.0.5でも秒数は時計で表示してないしね。
>10、20、30秒あたりで良いのではないでしょうか。
とりあえず日本の鉄道は15秒単位なんですよーー
電車でかぶりつく機会があったら、運転士用の時刻表見てみるといいです。
>>984 >時間速度の設定値をSerialize対象にしておけば、セーブした時の時間速度が
>ロード時に復元されて大丈夫だと思われる。
確か前の人がそんなこと言ってた気がする
できる算段があったんじゃないかな。
ダイヤ設定の最小単位は1秒単位でもいいと思うけど、ネックは電車の速度が
1ボクセル動くのに何分かかるかになってることなんでしょ?
今と同じように1ボクセル1分なら、1分経過したら移動すればいいのでは?
>>979の内容が理解できないボンクラ頭乙orz
>>985 プロトタイプ3.0.0.5やってみそー
画面右下の時計に注意してな
あと同じことをβ2.0以前でやってみて、ヒマならプロトタイプ3.0.0.3も試してみれ
言葉じゃ説明できないの?
そんなにややこしいことなの?
だったら、話に入ってもしょうがないので遠慮するわ。
続けてどうぞ。
なんで「やってみれば分かる」と言われたら、やることを拒否するんだろう。
10分もあればできることなのに。
説明できないのかってのは単なる逆ギレじゃん?
キレるまえにやってみようぜ。
今、プロトタイプ3.0.0.6作ってるところなんだけど。
いやーー、3.0.0.3〜5の駅の詳細ダイヤ、バグってるね(汗)
たぶん時・分の設定が壊れてたと思う。
クレームついてないってことは誰も試した人いなかったのかな。
3.0.0.6で直しますね。
3.0.0.6はとりあえず時間軸変更はナシで、駅詳細ダイヤ設定のみの変更にします。
>>984 実際の鉄道が15秒単位なのは知っているけれど、必ずしもそれを再現する必要はないと思う。
FTの画面は2分ごとに描写。だから新幹線は1度に2ボクセル進んでいるように見える。
これが1秒単位になると、画面は2秒ごとに描写する事になると思う。
プログラムの内部で、奇数秒に電車が動くような構成になっていると、画面の動きと実際の電車の動きがズレてしまう。
画面合わせでダイヤ設定する上で、このタイムラグは非常に厄介なので止めて欲しい。
特に「10分停車」に当たるであろう「15秒停車」の扱いが非常に難しく、ダイヤ作成時に不必要にイライラするだけなので。
>FTの画面は2分ごとに描写。だから新幹線は1度に2ボクセル進んでいるように見える。
あ、やっぱそうだったのね。
メインループでtick()が一度に2回連続して呼ばれてるから、あれー?なんだろ、
おっかしーなーーと思ってたんだわ。昨日。ここに時計の進みの解説文書いてて。
tick()を1回しか呼ばないことでなにか不具合が生じるのであれば、また考えなきゃ
いけないけど。
特にそういうことがないのであれば、メインループでtick()を2回続けて呼んでるところ
1回だけ呼ぶように変えるだけで問題なくなるとおもう。
>>992 >ポイントの切り替えは、同じポイントに1時間以内に2回通過することはまずなかろう
路線の距離によっては十分に有り得るかと。
今のFTでいう60時間=2日半ですよ。
毎分がちょうどいいですね。
このように、最小時間単位1秒だと色々と不都合が出るので、もう少し長い方が良いと強く思います。
>>993 通過することはあっても、異なる進路をとらせたくなるわけではなく
同じ進路をとっていいのなら困らないかと思ったのですが。
はっはっは、やっぱ手抜きはダメですかw
じゃあまたこんどポイントを分単位実装します。
そんなに手間かからないと思う。
もとの川口さんの設計が綺麗だから。
あ、それで。
ほかのことやってて途中になってしまってますが。
>>984 >>978が未解決です (´;ω;`)
978さんが(ビルド環境不明ですが)どうやって解消したのかも
ソースの違いから発見しようと思ってたけどもうねみゅい……
補足できるかたおられたらヨロです
>>995 すみません、DLpassはspeedです
そうそう古い話だけど。
実は0.1〜0.8のFreeTrainEX Av同梱Readmeには、対応OSとしてバッチリVistaが
書かれていた。
嫁嫁と書いてる本人が一番読んでないっていう恥ずかしい事例でしたってヤツだね。
755 名前:名前は開発中のものです。 投稿日:2010/02/24(水) 23:36:05 442060O7
だからFreeTrainはVistaに対応してないって。
Readmeぐらい嫁よ。
うpロダに一応Vista対応してみたというテスト版があるから、それ試してみれば。
人柱だけど。
759 名前:名前は開発中のものです。 投稿日:2010/02/25(木) 23:43:18 +j2qcvqG
だから、VISTAに対応してるとどこに書いてるのと言ってんだよ。
おまえのとこで動くから、みんな動くとか勝手なこと言ってんじゃねーよ。
761 名前:名前は開発中のものです。 投稿日:2010/02/26(金) 00:20:07 Dd72mMBD
Readmeに対応OSは2000とXPってあるだろうが。
どこにVISTAは対応してますと書いてんだよ。
VISTAで動く動くと言うのはいいが、それを見て動かないと言ってきた奴には全部
おまえが対応しろよ。
全部おまえが対応しろよ。
は酷かったな。小学生かってね。
>>975 列車追跡機能に感動した乙!
A7だと一つしか表示できなかったんだよなあ。
一応要望として下記2点。難しくなければ検討してみてください。
・列車の追跡に使用するマップウィンドウを複数並べて表示することを考えた場合、
どのマップウィンドウを使用するかを列車の追跡ウィンドウから指定したい
・列車追跡中のマップウィンドウはスクロールバーを消去したい
ああ失礼
任意のマップウィンドウをアクティブにしてから
列車追跡ウィンドウを呼び出せば指定できるのか
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。