iT邦幫忙

2022 iThome 鐵人賽

DAY 23
0
Modern Web

遊戲製作新手救星---Phaser3網頁遊戲教學與實作系列 第 23

Day22 用滑鼠移動物件吧┏ (゜ω゜)=?---Phaser3 滑鼠拖移(1)

  • 分享至 

  • xImage
  •  

加入滑鼠拖移,移動物件吧(∩^o^)⊃━☆

滑鼠拖移

讓物件可以與滑鼠互動,可以拖拉移動,移動到想要的位置,增加不同的玩法!!
因為內容較多所以分成三篇進行教學(^._.^)ノ

簡單講一下滑鼠拖移的教學步驟:

  1. 物件互動設定
  2. 拖移變數設定
  3. 拖移設定

教學開始囉q(≧▽≦q)


物件互動設定

在預移動的物件中寫入互動程式,表示該物件可以與滑鼠進行互動

互動設定程式:

.setInteractive(); 

直接加在物件後面即可,我們就來加在"角色"中吧(. ❛ ᴗ ❛.)
https://ithelp.ithome.com.tw/upload/images/20221008/20152515OQcqbGtzlQ.png

程式碼:

this.player=new Player(this,400,165).setInteractive();

✧✧ 額外補充 ✧✧

既然有加入互動的程式,那也會有不能被互動的程式啦~

不互動設定程式:

.disableInteractive(); 

加入方式與互動設定相同,
寫入程式之後物件就不能用滑鼠拖移囉~

拖移變數設定

將可以互動的物件寫入,使其可以能夠拖移

拖移變數程式:

this.input.setDraggable(變數);

this.input.setDraggable([變數,變數]);

"this.input.setDraggable(變數);": 使單物件可拖移。
"this.input.setDraggable([變數,變數]);" : 使多物件可拖移。
則一寫入即可~

來實作吧~(o゚v゚)ノ
https://ithelp.ithome.com.tw/upload/images/20221008/201525152JyuS90Y0n.png

程式碼:
(將角色變數加入)

this.input.setDraggable(this.player);

拖移設定

接下來就是將拖移程式寫入了,將程式寫入場景設定拖移的方式

拖移設定程式:

this.input.on('drag',function(pointer,gameObj,dragX,dragY){
            gameObj.x=dragX;
            gameObj.y=dragY;
        })

'drag': 指的就是拖移指令。
pointer: 滑鼠。
gameObj: 被拖移的物件。
dragX: 滑鼠拖移時的X座標。
dragY: 滑鼠拖移時的Y座標。
"gameObj.x=dragX;": 設定被拖移物件的X座標=滑鼠的X座標。
"gameObj.y=dragY;": 設定被拖移物件的Y座標=滑鼠的Y座標。

那就來寫入程式吧~直接寫入就可以了~
https://ithelp.ithome.com.tw/upload/images/20221008/201525154DGepxVD2q.png

上述步驟都執行後,就能進行滑鼠拖移了~
☆☆小小補充,加上拖移後物件的物理狀態仍然存在喔,例如角色被滑鼠點擊拖移時仍然會受重力影響而掉下。
設定完畢的遊戲畫面如下:


這樣就可以用滑鼠移動物件了!!(/≧▽≦)/
不過因為角色有重力的影響,所以不太好拖移.....

明天就來將圖片加入滑鼠拖移設定吧( •̀ .̫ •́ )✧
敬請期待~~


上一篇
Day21 拿到物件後得分吧*(੭*ˊᵕˋ)੭*ଘ---Phaser3 遊戲分數計算
下一篇
Day23 用滑鼠移動物件吧┏ (゜ω゜)=?---Phaser3 滑鼠拖移(2)
系列文
遊戲製作新手救星---Phaser3網頁遊戲教學與實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言