Re: [問題] 想請教有人會自創物品欄嗎

作者: sa072686 (小紅)   2013-03-11 03:37:49
→ ededisgood:另外不好意思 我想學的就是吃掉A B和C就會補位的技巧
這樣一來道具欄的每一格,都不一定會是什麼
不固定、可變,所以用變數儲存,用很多變數(看你物品欄多大)假設000~999
000存第一格道具ID,001存第二格道具ID,…,999存第一千格道具ID
這樣你就有個道具欄了,數量透過ID取得就行
多拿一個變數記你道具欄目前多大
顯示比較麻煩,新版不知道,以前版本不能顯示文字,所以每個道具要一張圖
可以弄一個事件,抓變數1000當X,變數1001當Y,變數1002當圖片ID
就做一件事,抓變數1002判斷用哪張圖,顯示在X=變數1000,Y=變數1001的地方
這樣就可以簡單地顯示一個道具,如果你要小圖示之類的從這基礎去改
要顯示哪些就,看你要用怎樣方式,有直接換一頁或是只跳下一項兩種方式
1. 遊標到底後再往下,就從顯示000到007,變成顯示001到008
2. 遊標到底後再往下,就從顯示000到007,變成顯示008到015
看到這裡就發現其實完全沒差,只差在「從哪開始顯示」這變數跳一次多大格
從變數「從第幾格道具開始顯示」和目前道具是畫面中第幾格,可以決定座標
這個自己決定,顯示數量部份參考上一篇文
使用的時候和自製選單一致,你從遊標座標和「從第幾格道具開始顯示」算得出格數
再去這格變數抓道具ID,再拿ID抓數量,好像XP開始不能用變數指定位置會比較麻煩
但弄個事件硬用分歧也不是不能指定
拿到新道具先看道具數量,如果是0,就放在道具欄最後一格,道具欄格數+1
使用或丟棄時看最後的道具數量,如果是0,就用迴圈找出它並刪掉
在那位置之後全部往前放一格,大概長這樣
變數1000-目標ID 代入 目標道具ID
變數1001-目前格數 代入 道具欄開始格數
變數1002-結束格數 代入 道具欄開始格數
變數1002-結束格數 增加 道具個數
反覆處理
註譯:如果底下這行不通,就搞個事件想辦法就是挖出目標值放在變數1003
變數1003-目前格ID 代入 變數編號[1001-目前格數]
條件分歧 如果 變數1003 等於 變數1000-目標ID
結束反覆
分歧結束
變數1001-目前格數 增加 1
反覆結束
變數1004-下一格 代入 變數1001-目前格數
變數1004-下一格 增加 1
反覆處理
條件分歧 如果 變數1001-目前格數 等於 變數1002-結束格數
結束反覆
分歧結束
變數1005-下一格ID 代入 變數編號[變數1004-下一格]
變數編號[變數1001-目前格數] 代入 變數1005-下一格ID
變數1001-目前格數 增加 1
變數1004-下一格 增加 1
反覆結束
變數2000-道具個數 減少 1
簡單地說就是,假如目前道具欄是000開頭,共10個道具,那你就問啊
000是不是我要找的啊
001是不是我要找的啊
002是不是我要找的啊
003是不是我要找的啊
004是不是我要找的啊
你在004找到用完的道具
004 代入 005 道具ID
005 代入 006 道具ID
006 代入 007 道具ID
007 代入 008 道具ID
008 代入 009 道具ID
009 代入 010 道具ID
009其實已經不在範圍中了,但上面的程式碼確實會讓009代入010內容
不過這不重要,你其它沒寫錯的話會因為009不在範圍中,所以它變成怎樣都無所謂
這樣刪除也OK了,其它應該和固定位置的沒什麼差別
有問題再來問,水球或私信比較保證能讓我知道

Links booklink

Contact Us: admin [ a t ] ucptt.com