鉄道経営系ゲーム製作スレッド Ver.6
■ このスレッドは過去ログ倉庫に格納されています
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);
}
としてやればエラーは発生しなくなります。
が、これでは完全な対処とはならないのでご注意を。
■ このスレッドは過去ログ倉庫に格納されています