- ベストアンサー
【RPG】アイテムウィンドウを効果的に設計する方法は?
- 一般的なコンピューターゲームのRPGでのアイテムウィンドウの設計方法について教えてください。【アイテムリスト】の表示制限やアイテムの追加・削除など、効果的な処理方法を知りたいです。
- アイテムデータを別のClassから呼び出して登録し、表示数の制限やアクションでの追加・削除を行いたいです。どのような方法があるでしょうか?
- アイテムウィンドウを表示する際には、RPG内の【アイテム】ボタンから【アイテムリスト】を表示させることが一般的です。表示数の制限やアイテムの追加・削除など、効果的な方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1で私が書いたASでmy_textは 変数名ではなくインスタンス名として設定しています。 >あとで何かしらのアクションで、 >アイテムを追加、削除もしたいです。 実際はアイテムをクリックしたときに削除ボタンを表示したりすると思いますが、 文章だけでは説明しにくいのでアイテムクリック時に削除する例です。 #1のASの後ろにでも追加してください。 //アイテムクリック時に削除 for (var i = 0; i<10; i++) { //どの(何番目の)item_mcがクリックされたか判別するため。 _root.list_mc["item"+i+"_mc"].num = i; //クリックイベント追加 _root.list_mc["item"+i+"_mc"].onRelease = ItemDelete; } function ItemDelete() { //配列削除 _root.item_array.splice(this.num, 1); //ダイナミックテキストクリア for (var i = 0; i<10; i++) { _root.list_mc["item"+i+"_mc"].my_text.text = ""; } //再表示 for (var i = 0; i<item_array.length; i++) { _root.list_mc["item"+i+"_mc"].my_text.text = item_array[i].ItemName; } }
その他の回答 (1)
- perse
- ベストアンサー率74% (113/152)
ダイナミックテキストが入った、 item_mc (ムービークリップ) └my_text (ダイナミックテキスト:インスタンス名my_text) のようなmcをつくってそれをアイテムリストのmcの上に10個配置。 ┌──────┐ | item0_mc |←このlist_mc.item0_mcの中にmy_textがある | item1_mc |←以下同 | item2_mc | | item3_mc | | item4_mc | | item5_mc | | item6_mc | | item7_mc | | item8_mc | | item9_mc | └──────┘ ↑この土台がlist_mc 必要な情報はArrayクラスに入れておいて var item_array = new Array(); item_array[0] = {ItemName:"アイテム0", Value:2000}; item_array[1] = {ItemName:"アイテム1", Value:3000}; item_array[2] = {ItemName:"アイテム2", Value:700}; for (var i = 0; i<item_array.length; i++) { _root.list_mc["item"+i+"_mc"].my_text.text = item_array[i].ItemName; } と表示。なんてどう?
補足
item_array[i]という変数にはそれぞれ値が 入っているのですが、 item0_mcなどの中には変数が無いのですが そういうものなんでしょうか?? スコープ確認したのですが 値が入らなかったので>< 【シーン 1】フレーム1 ↓ [Mc作成] インスタンス名[list_mc] ↓ list_mcの中に[list_mc.item0_mc作成] ↓ list_mc.item0_mcの中に [ダイナミックテキスト作成] 変数名[my_text]を作成しました。 どこが違うかご指摘のほどお願いします。
お礼
動作確認できました!! 色々いじって遊んで見ます。 ありがとうございました><
補足
すいません、インフルエンザでダウンしてました>< いまからソースコード参考にさせていただいて そのあとにポイント振ります! ご親切にありがとうございます。