iT邦幫忙

2023 iThome 鐵人賽

DAY 26
0
Software Development

成為童年的英雄,Minecraft Java 模組製作系列 第 26

Minecraft Mod 模組製作 [DAY26] 法杖還是仙女棒

  • 分享至 

  • xImage
  •  

又來搞些奇奇怪怪的東西

今天我們試試看透過右鍵偵測來製作出一把可以招喚火焰特效(粒子效果)的法杖(木棍)
首先我回到之前那個右鍵偵測的程式。
我們可以找到這段程式碼

if (!event.getLevel().isClientSide)

這是一開始我們為了在伺服器端執行程式而不是客戶端而做的判斷式,但是當我們需要做出例子特效的時候就行不通了,應為我們的粒子特效需要在客戶端執行才能做出遊戲特效,因為特效在玩家電腦裡渲染。
我們改成

if (event.getLevel().isClientSide)

接下來我們的程式碼有些變數需要重新設定

Player player = event.getEntity();
ItemStack HeldItem = player.getItemInHand(InteractionHand.MAIN_HAND);
    if (!HeldItem.isEmpty() && HeldItem.getItem() == Items.STICK) {
   Component rightClickMessage = Component.literal("Stick Click");
   player.sendSystemMessage(rightClickMessage);
   double Px = player.getX()+player.getLookAngle().x;
   double Py = player.getY()+player.getEyeHeight()+player.getLookAngle().y;
   double Pz = player.getZ()+player.getLookAngle().z;
         for (int i = 0; i < 20; i++) {
                 player.level.addAlwaysVisibleParticle(ParticleTypes.FLAME, Px, Py, Pz,0,0,0);
              }
         }

這裡我們將玩家手持的物品設定成Stick也就是木棍,然後我們透過Px,Py,Pz取得玩家目前所在與面向的方向,方面我們設定粒子出現的方向,我們接下來要生成粒子,我們寫出一個for迴圈來不斷生成粒子,總計生成20個,我們已addAlwaysVisibleParticle來生成粒子,第一個參數是ParticleTypes,我們選擇Flame火焰,接下來是粒子生成方位,分別是Px,Py,Pz,接下來三個數我們可以設0。

影片

Yes
感覺火焰效果時間要延長,還要把火焰數量提高,不然像是我自己燒起來一樣


上一篇
Minecraft Mod 模組製作 [DAY25] 合成表 磚與錠的轉換
下一篇
Minecraft Mod 模組製作 [DAY27] 熔煉
系列文
成為童年的英雄,Minecraft Java 模組製作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言