java画球_我的世界java版指令画球教程

我的世界java版如何用指令画球?许多玩家可能还不太清楚吧,下面就为大家带来最新版本下指令画球的详细教程,供各位玩家们参考。

指令画球教程

第一丶 局部坐标

世界坐标被视作绝对坐标。很多命令可以使用波浪号(~)来指定相对坐标,使用插入符(^)来指定局部坐标(也称本地坐标)。在波浪号和插入符后可以跟一个数字,表示相对基准点的偏移量。(维基百科)

第二、利用局部坐标画球

效果如图:

ab625ea04d4ed849febbec27814dd617.png

教程:

球的定义无非是空间上到一个点距离相等的点的集合面。

在MC中,我们利用局部坐标,可以轻而一举的画出一个球。

从最简单的入手,

召唤一个自动旋转的盔甲架

608336ee3ac0ba57e57050dee9252132.png

execute as @e[type=minecraft:armor_stand] at @s run tp @s ~ ~ ~ ~10 ~

3883b5c9211e45dbcf931c4255dcd807.png

让旋转的盔甲架在前方10格放置石块,因为转速太快的关系,圆上的所有点并没有全部生成

6d6ff072ee4ee982903a4e46bce46172.png

可以看到,让盔甲假在水平面上转动,可以画出一个圆。如果让他同时也在垂直方向上转动,那就可以画出球了(大家先试验下)。

思路:

召唤一个垂直向下的盔甲架(nbt标签为Rotation:[0.0f,90.0f]),使其旋转(execute as

@e[type=armor_stand] tp @s ~ ~ ~ ~水平 ~垂直(向上的话,要用负数) ,并在一定位置前执行setblock指令

总结:

实验后的各位应该发现了,为了画出一个球,每tick的旋转速度都要调到很小,才能描绘出一个完整的球,所用的时间太长了,那如何加快找个速度,并且能画出个完好无缺的球。

所以,我们要用到函数。

并且,这个函数要不断调用自己,要实现这个功能,就得让函数调用自己的同时处于minecraft/tags/functions/tick.json文件里面.

Java实现一个模型、两个视图和两个控制器的功能软件,即采用MVC模式或者说是观察者模式,本程序通过输入体半径,显示体形状,面积体积等 Sphere.java package Model; import java.util.Observable; public class Sphere extends Observable { private double radius;//体半径 private double area;//体面积 private double volume;//体体积 public Sphere() { radius=100d; area=4*Math.PI*Math.pow(radius, 2); volume=4*Math.PI*Math.pow(radius, 3)/3; } public double getRadius() { return radius; } public double getArea() { return area; } public double getVolume() { return volume; } public void setRadius(double radius) { this.radius = radius; this.area = 4*Math.PI*Math.pow(radius, 2); this.volume=4*Math.PI*Math.pow(radius, 3)/3; this.setChanged(); this.notifyObservers(); } } textView.java package View; import java.util.Observer; import java.util.Observable; import java.text.NumberFormat; import javax.swing.*; import Controller.TextController; import Model.Sphere; import java.awt.*; import java.awt.event.*; public class TextView extends JPanel implements Observer { private JLabel radiusLab;//提示用户输入体半径 private JTextField radiusTextField;//接受用户输入体半径 //private JLabel radiusRang; private JLabel areaLab;//显示体面积 private JTextField areaTextField;//显示输入体半径对应的面积 private JLabel volumeLab;//显示体体积 private JTextField volumeTextField;//显示输入体半径对应的体积 public TextView() { try { Init(); } catch(Exception e) { e.printStackTrace(); } } private void Init() throws Exception { radiusLab=new JLabel("体半径"); radiusLab.setForeground(new Color(0,165,168)); //radiusRang=new JLabel("[0-200]"); radiusTextField = new JTextField(12); radiusTextField.setForeground(new Color(223,100,158)); radiusTextField.setBackground(new Color(210,204,230)); areaLab=new JLabel("体面积"); areaLab.setForeground(new Color(0,165,168)); areaTextField = new JTextField(12); areaTextField.setBackground(new Color(193,219,219)); areaTextField.setEditable(fal
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值