基于Java的Minecraft游戏后端自定义插件 02开发环境的配置与搭建(IDEA)

内容简介

安装IDEA
学习IDEA使用
JDK环境配置
创建gradle项目
gradle介绍
如何寻找添加依赖包

安装IDEA

官方版本:
https://www.cnblogs.com/cekaigongchengshi/p/12924725.html

在这里插入图片描述

学习IDEA

IDEA常用快捷键
https://www.cnblogs.com/unidentified/p/9182655.html

自动创建构造器
tostring
hashcode
equals
getset方法

gradle工具介绍

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。
它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的XML。
Gradle就是工程的管理,帮我们做了依赖、打包、部署、发布、各种渠道的差异管理等工作。
Gradle优势:
一款最新的,功能最强大的构建工具,用它逼格更高
使用程序代替传统的XML配置,项目构建更灵活
丰富的第三方插件,让你随心所欲使用
Maven、Ant能做的,Gradle都能做,但是Gradle能做的,Maven、Ant不一定能做。

gradle使用

具体配置:https://www.spigotmc.org/wiki/spigot-gradle/

仓库:https://mvnrepository.com/
在这里插入图片描述

课后任务

1.玩家小明设置了一片菜园,这个菜园对角线坐标为
点A:(195,103,-43)
点B(193,75,-65)
玩家小芳想破坏菜园破坏点为任意坐标:
要求函数能够输入 X Y Z坐标,判断X Y Z坐标是否在AB点内,
在这里插入图片描述

package Entity;


public class Point {

    double x;
    double y;
    double z;

    public double getX() {
        return x;
    }

    public void setX(double x) {
        this.x = x;
    }

    public double getY() {
        return y;
    }

    public void setY(double y) {
        this.y = y;
    }

    public double getZ() {
        return z;
    }

    public void setZ(double z) {
        this.z = z;
    }

    public Point(double x,double y,double z){
        super();
        this.x = x;
        this.y = y;
        this.z = z;
    }

    public void getPosition(Point p)
    {
        System.out.println(p+"点的坐标为:("+x+","+y+","+z+")");
    }
}
import Entity.Point;

import java.util.*;


public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入A点坐标(x、y、z):");
        double x1 = sc.nextDouble();
        double y1 = sc.nextDouble();
        double z1 = sc.nextDouble();

        System.out.println("请输入B点坐标(x、y、z):");
        double x2 = sc.nextDouble();
        double y2 = sc.nextDouble();
        double z2 = sc.nextDouble();

        System.out.println("请输入C点坐标(x、y、z):");
        double x3 = sc.nextDouble();
        double y3 = sc.nextDouble();
        double z3 = sc.nextDouble();

        Point a = new Point(x1, y1, z1);
        Point b = new Point(x2, y2, z2);
        Point c = new Point(x3, y3, z3);

        a.getPosition(a);
        b.getPosition(b);
        c.getPosition(c);
        if (x1 > x2) {
            if (x1 >= x3 && x3 >= x2 && y1 >= y3 && y3 >= y2 && z1 >= z3 && z3 >= z2)
                System.out.println("C点在A、B点内");
            else
                System.out.println("C点在A、B点外");
        }
        else
        {
            if (x1 <= x3 && x3 <= x2 && y1 <=  y3 && y3 <= y2 && z1 <= z3 && z3 <= z2)
                System.out.println("C点在A、B点内");
            else
                System.out.println("C点在A、B点外");
        }
    }
}

2.三围空间中有两点坐标A坐标为
点A:(195,103,-43)
点B(193,75,-65)
A点向B点发射光束
且轨迹坐标稀疏度为m
求计算光束轨迹稀疏度为m的坐标
m属于(0,正无穷)
打印光束轨迹坐标
在这里插入图片描述

import Entity.Point;

import java.util.*;


public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("请轨迹坐标稀疏度(m>0):");
        double m = sc.nextDouble(); //点的总数

        System.out.println("请输入A点坐标(x、y、z):");
        double x1 = sc.nextDouble();
        double y1 = sc.nextDouble();
        double z1 = sc.nextDouble();

        System.out.println("请输入B点坐标(x、y、z):");
        double x2 = sc.nextDouble();
        double y2 = sc.nextDouble();
        double z2 = sc.nextDouble();

        double x3;
        double y3;
        double z3;

        Point a = new Point(x1, y1, z1);
        Point b = new Point(x2, y2, z2);

        a.getPosition(a);
        b.getPosition(b);


        for( int i = 1;i <=m;i+=1 ){
            if(x1>x2){
                x3 = x2+i/(m+1)*(x1-x2);
                y3 = y2+i/(m+1)*(y1-y2);
                z3 = z2+i/(m+1)*(z1-z2);
            }
            else{
                x3 = x1+i/(m+1)*(x2-x1);
                y3 = y1+i/(m+1)*(y2-y1);
                z3 = z1+i/(m+1)*(z2-z1);
            }
            System.out.println("光束轨迹坐标"+i+":("+x3+","+y3+","+z3+")");
        }
    }
}

3.一个玩家在空间中
坐标为O
坐标值是x:6,y:-7
半径为1,
1.计算出该玩家360度每一个坐标点
2.写一个工具类可以计算玩家任意坐标
任意半径的坐标

提示:
P(cos(30°), sin(30°)),
弧度制: P(cos(PI/6), sin(PI/6))
角度转弧度
通过弧度计算每个角度
所对应的cos值和sin值
分别为x和y坐标
在这里插入图片描述

import Entity.Point;
import java.math.*;
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        double radian;
        double angle = 0;

        System.out.print("请输入玩家坐标(x,y):");
        double x = sc.nextDouble();
        double y = sc.nextDouble();
        Point O = new Point(x,y);
        O.getPosition(O);

        double initialx = x;
        double initialy = y;

        System.out.println("请输入距离半径radius:");
        double radius = sc.nextDouble();

        for(angle = 0; angle <=360; angle += 1){
            radian = Math.PI*angle/180;
            x = initialx + radius*Math.cos(radian);
            y = initialy + radius*Math.sin(radian);

            System.out.println(angle+"°的坐标为:("+x+","+y+")");
        }

    }
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值