記錄乙個libgdx event奇怪問題

2021-09-01 21:55:12 字數 1017 閱讀 6800

inputevent e = new inputevent();

e.settype(type.touchdown);

play.fire(e);

e.settype(type.touchup);

play.fire(e);

通過fire方法模擬clicked事件,但是遇到了乙個奇怪額問題.

在a screen 的 a stage的初始化方法裡面使用fire 方式進去另外乙個 b screen 的 b stage,然後b stage 無法接收滑鼠事件.能不能接收鍵盤事件 沒去查.

但是 如果在進入 b stage之後,在構造方法裡面 繼續使用 fire方式 進入到c screen 的c stage ,在c stage 裡面能正常的接收到事件.

我以為是切換到另外乙個screen 照成clicked後續方法沒有被呼叫之類的問題,但是試了下 沒有效果.

然後我比較 a stage 和 b stage的區別在哪. 也看不出來有什麼不一樣的地方.

於是我繼續調整**,試著讓2個 stage 呼叫 fire方法完全一致.

2個screen內容也一致

stage = new astage();

inputmultiplexer inputmultiplexer = new inputmultiplexer();

inputmultiplexer.addprocessor(stage);

gdx.input.setinputprocessor(inputmultiplexer);

都是這個**.

我試著把a stage fire方法 放在 gdx.input.setinputprocessor(inputmultiplexer); 後面執行.

然後b stage 的事件成功接收.一切正常了.而2個screen 2個stage 都是差不多**.

我想這個和

inputprocessor 和 初始化先後順序 有關係.到底什麼關係 沒有去了解.先記錄下來.

記錄乙個statck overflow

工作中遇到一次這樣的問題 棧上的空間不夠用了,導致stack overflow,程式crash,並且coredump被寫亂了。這裡用小例子,記錄這樣的問題。include include include include define stack buffer size 10240 void thre...

記錄乙個BUG

vm版本 kali版本 centos 8 版本 vmtool版本 新裝的centos8 因為無法拖拽檔案到虛擬機器中,就重新裝了一下vmtool,安裝之後還是不行,開啟kali發現原本裝好的vmtool,現在也不能拖拽檔案了,就又在kali重灌了一次,還是不能拖拽,上網查了一下,在執行.vmware...

記錄乙個 lll lock wait

乙個dba同事昨天在執行乙個命令列工具的時候發現程式hang住,問題挺有意思,值得記錄下。首先用pstack看了下程式的呼叫棧,這是個多執行緒程式,pstack結果看到幾乎所有的執行緒都等在write呼叫上。如下是pt pmp的輸出結果 tue may 27 18 30 06 cst 2014 55...