[戻る] 最新記事| 前後の記事|

- 以下は、記事NO. 9949 に関する 返信フォーム です -
急ぎの質問です 投稿者 : 大月(126.252.192.61.east.flets.alpha-net.ne.jp)
- 2006/06/17(Sat) 19:43 No.9949
 


Download:9949.zip 9949.zip おそらくtimestop()関連のエラーだと思うのですが
「0はオブジェクトではないため、メンバ変数aobjを参照できません」
という意味不明なエラーが急に出るようになってしまって困っています。
0が何を指すのか分かりませんし、aobjは自分で作っていないのでおそらくシステムが使っている変数だと思うのですが。

明日(18日)のイベントで発表する予定のプログラムで、かなり急いでいます。どなたかお助け下さい。

該当個所はおそらくcutinクラスの46行目、ts.releaseAll()付近ですが、なにが悪さをしているのかどうにも予想がつきませんので…。
よろしくお願いいたします。


Re: 急ぎの質問です 投稿者 : メリッサ(p098.net059086015.tnc.ne.jp)
- 2006/06/17(Sat) 20:59 No.9950
 
画像も添付してください!


Re: 急ぎの質問です 投稿者 : tava(187.107.113.221.ap.yournet.ne.jp)
- 2006/06/17(Sat) 22:34 No.9951
 
みてみましたけどヤッパリわかんなかったです。
でもタイムストップを変数で処理すればダウジョウブかなーと。
自分はタイムストップは変数でやってますよ。
タイムストップはそれを使ったオブジェクト以外全部とめるんでしたよね・・・?
変数でなら止めたいオブジェクトだけの指定もできますし・・・。
あてずっぽうみたいな答えでスイマセン。


Re: 急ぎの質問です 投稿者 : アカシン(210.230.239.64)
- 2006/06/17(Sat) 23:24 No.9952
 
私もいろいろ試してみましたが、原因の特定や解決には至っていません。
cutinクラスの呼び出し($cutin.go())をコメントアウトするとエラーが出なくなることから、
cutinクラスで問題が発生していることは確かなようですが。
因みに、現在試したことは以下の通りです。
・ts.release(); と ts.releaseAll(); の前にif(ts)という条件を入れ、
  ts.releaseAll();を実行した場合ts=nullを実行するようにした
・ts.release(obj);の前に、if(obj)という条件を入れた(objには適当な変数名が入る)
これらでは、問題は解決しませんでした。


Re: 急ぎの質問です 投稿者 : アカシン(210.230.239.64)
- 2006/06/17(Sat) 23:33 No.9953
 
できれば、cutinクラスの簡単な説明をもらえれば
と思います。


Re: 急ぎの質問です 投稿者 : アカシン(210.230.239.64)
- 2006/06/17(Sat) 23:47 No.9954
 
大月さん、まだ見ているでしょうか。
出来たかもしれません。
cutinクラスの19〜25行を以下のプログラムで置き換えてください。

//---------------------
    if(!$zanki.isDead())ts.release( $zanki );
    if(!$char_l.isDead())ts.release( $char_l );
    if(!$char_r.isDead())ts.release( $char_r );
    if(!$meswin.isDead())ts.release( $meswin );
    if(!$mask.isDead())ts.release( $mask );
    if(!$mask_1.isDead())ts.release( $mask_1 );
    if(!$gauge.isDead())ts.release( $gauge );
//---------------------
敵(らしきもの)に当たった時に、エラーが出なければOKですよね?


Re: 急ぎの質問です 投稿者 : 大月(114.255.192.61.east.flets.alpha-net.ne.jp)
- 2006/06/19(Mon) 20:55 No.9955
 
皆様どうもありがとうございます。
cutinクラスで使っていたtimestop系の関数をすべてコメントアウトして(苦笑)不完全な演出ではあるもののエラーだけは出さない状態にして、なんとか発表して参りました。
各インスタンスの存在判定を事前に行う方法を中心に、これからまた色々試してみます。

#hoge-ship様へ:リファレンスマニュアルの整備を進めていただきたく思います(TT


解決しました! 投稿者 : 大月(114.255.192.61.east.flets.alpha-net.ne.jp)
- 2006/06/20(Tue) 07:41 No.9956
 
方法はアカシンさんが最後に提示してくれたもの。release()する前にそのオブジェクトが存在するかどうかを判定しておく方法で解決しました。

自機のライフがゼロになったときに$char_l,$char_r,$meswinをdie()してしまったため、cutinクラスが動作するときにはすでにこの3つのインスタンスが存在していなかったのが根本の原因のようです。

release()時点ではエラーが出ませんがその後のreleaseAll()時、リリースするべきものとしてこの3つのインスタンスを参照しようとしてエラーが出てしまうように思います。予想ですが。
同じ問題に当たった方は参考にして下さいませ。


ではでは、みなさん本当にありがとうございました。

なお、先日発表したバージョン(timestopを抜いたもの)を以下に置いておきます。興味のある方は遊んでみて下さいませ。一応15禁くらいの内容ですんで、お子さんはご覧にならないようにお願いします(^^;
ttp://scalar.dfz.jp/tmp/mao0617.exe
ttp://scalar.dfz.jp/tmp/readme.txt


おなまえ
Eメール
タイトル
メッセージ
推薦記事
添付File
削除キー (自分の記事を削除時に使用。英数字で8文字以内)
文字色