3D魔方游戏制作lua迷你世界

news2024/9/9 0:36:06

 

bbae52973b9f4aa3a8947649f85ce676.jpg

--3D魔方
--星空露珠工作室
--核心脚本来自负负

--1:xy 2:yx 3:xz 4:zx 5:yz 6:zy
--4000,0-3 3995-0,3
local trn={
{{5,2},{3,1},{1,2},{1,3},{4,0},{2,2}},
{{3,0},{5,3},{1,3},{1,2},{2,3},{4,1}},
{{4,2},{2,1},{1,1},{1,0},{3,3},{5,1}},
{{2,0},{4,3},{1,0},{1,1},{5,0},{3,2}},
{{6,0},{1,3},{2,2},{2,3},{5,2},{3,0}},
{{1,2},{6,1},{2,3},{2,2},{3,1},{5,3}},
{{5,1},{3,2},{2,1},{2,0},{1,0},{6,2}},
{{3,3},{5,0},{2,0},{2,1},{6,3},{1,1}},
{{6,2},{1,1},{3,2},{3,3},{2,0},{4,2}},
{{1,0},{6,3},{3,3},{3,2},{4,3},{2,1}},
{{2,2},{4,1},{3,1},{3,0},{1,3},{6,1}},
{{4,0},{2,3},{3,0},{3,1},{6,0},{1,2}},
{{5,0},{3,3},{4,2},{4,3},{6,2},{1,0}},
{{3,2},{5,1},{4,3},{4,2},{1,1},{6,3}},
{{6,1},{1,2},{4,1},{4,0},{3,0},{5,2}},
{{1,3},{6,0},{4,0},{4,1},{5,3},{3,1}},
{{2,3},{4,0},{5,2},{5,3},{6,1},{1,3}},
{{4,1},{2,2},{5,3},{5,2},{1,2},{6,0}},
{{6,3},{1,0},{5,1},{5,0},{4,2},{2,0}},
{{1,1},{6,2},{5,0},{5,1},{2,1},{4,3}},
{{4,3},{2,0},{6,2},{6,3},{5,1},{3,3}},
{{2,1},{4,2},{6,3},{6,2},{3,2},{5,0}},
{{5,3},{3,0},{6,1},{6,0},{2,2},{4,0}},
{{3,1},{5,2},{6,0},{6,1},{4,1},{2,3}}}

352410693eaf4f6f9f8d13685db6b0de.png

1.上面-黄

2.左面-绿

3.后面-红

4.右面-蓝

5.前面-橙

6.下面-白

模型快速制作,请阅读下一篇

local ids={4000,3999,3998,3997,3996,3995} 
local x0,y0,z0=0,9,0--起点坐标

--黄,绿,红,蓝,橙,白

 

--魔方数据
local cft={{
{{1,0},{1,0},{1,0}},
{{1,0},{1,0},{1,0}},
{{1,0},{1,0},{1,0}}}
,{
{{1,0},{1,0},{1,0}},
{{1,0},{1,0},{1,0}},
{{1,0},{1,0},{1,0}}}
,{
{{1,0},{1,0},{1,0}},
{{1,0},{1,0},{1,0}},
{{1,0},{1,0},{1,0}}}}

local x,y,z=0,0,0
--游戏开始,生成魔方
local function Go(e)
    for x=0,2 do
        for y=0,2 do
            for z=0,2 do
     Block:destroyBlock(Px0+x,y0+y,z0+z,false)
      Block:setBlockAll(x0+x,y0+y,z0+z,ids[1],0)
            end
        end
    end
end
ScriptSupportEvent:registerEvent([=[Game.Start]=],Go)

--刷新魔方
local function Re()
local str=''
    for x=1,3 do
  str=str..'\n'
        for y=1,3 do  
       str=str..'\n'
            for z=1,3 do
     str=str..'('..cft[x][4-y][z][1]..','.. cft[x][4-y][z][2]..'),'
    Block:setBlockAll(x0+z-1,y0+x-1,z0+y-1,ids[cft[x][4-y][z][1]],cft[x][4-y][z][2])
            end
        end
    end
print("打印\n"..str)
end
--旋转
local rc={1,0}
local function Ton(a,e,b)
        rc[1]=cft[a[1]][a[2]][a[3]][1]
        rc[2]=cft[a[1]][a[2]][a[3]][2]
        cft[a[1]][a[2]][a[3]][1]=trn[cft[a[4]][a[5]][a[6]][1]*4+cft[a[4]][a[5]][a[6]][2]-3][b][1]
        cft[a[1]][a[2]][a[3]][2]=trn[cft[a[4]][a[5]][a[6]][1]*4+cft[a[4]][a[5]][a[6]][2]-3][b][2]
        cft[a[4]][a[5]][a[6]][1]=trn[cft[a[7]][a[8]][a[9]][1]*4+cft[a[7]][a[8]][a[9]][2]-3][b][1]
        cft[a[4]][a[5]][a[6]][2]=trn[cft[a[7]][a[8]][a[9]][1]*4+cft[a[7]][a[8]][a[9]][2]-3][b][2]
        cft[a[7]][a[8]][a[9]][1]=trn[cft[a[10]][a[11]][a[12]][1]*4+cft[a[10]][a[11]][a[12]][2]-3][b][1]
        cft[a[7]][a[8]][a[9]][2]=trn[cft[a[10]][a[11]][a[12]][1]*4+cft[a[10]][a[11]][a[12]][2]-3][b][2]
        cft[a[10]][a[11]][a[12]][1]=trn[rc[1]*4+rc[2]-3][b][1]
        cft[a[10]][a[11]][a[12]][2]=trn[rc[1]*4+rc[2]-3][b][2]
        ------
        rc[1]=cft[e[1]][e[2]][e[3]][1]
        rc[2]=cft[e[1]][e[2]][e[3]][2]
        cft[e[1]][e[2]][e[3]][1]=trn[cft[e[4]][e[5]][e[6]][1]*4+cft[e[4]][e[5]][e[6]][2]-3][b][1]
        cft[e[1]][e[2]][e[3]][2]=trn[cft[e[4]][e[5]][e[6]][1]*4+cft[e[4]][e[5]][e[6]][2]-3][b][2]
        cft[e[4]][e[5]][e[6]][1]=trn[cft[e[7]][e[8]][e[9]][1]*4+cft[e[7]][e[8]][e[9]][2]-3][b][1]
        cft[e[4]][e[5]][e[6]][2]=trn[cft[e[7]][e[8]][e[9]][1]*4+cft[e[7]][e[8]][e[9]][2]-3][b][2]
        cft[e[7]][e[8]][e[9]][1]=trn[cft[e[10]][e[11]][e[12]][1]*4+cft[e[10]][e[11]][e[12]][2]-3][b][1]
        cft[e[7]][e[8]][e[9]][2]=trn[cft[e[10]][e[11]][e[12]][1]*4+cft[e[10]][e[11]][e[12]][2]-3][b][2]
        cft[e[10]][e[11]][e[12]][1]=trn[rc[1]*4+rc[2]-3][b][1]
        cft[e[10]][e[11]][e[12]][2]=trn[rc[1]*4+rc[2]-3][b][2]
end
--d m: 0左中右 1上中下 2前中后
--m: 0顺时针 1逆时针 从左后下方
local function Re0(d,i,m)
    if (d==0)and(m==0) then
        Ton({1,3,1+i,3,3,1+i,3,1,1+i,1,1,1+i},{1,2,1+i,2,3,1+i,3,2,1+i,2,1,1+i},6)
    elseif (d==0)and(m==1) then
        Ton({1,1,1+i,3,1,1+i,3,3,1+i,1,3,1+i},{2,1,1+i,3,2,1+i,2,3,1+i,1,2,1+i},5)
    elseif (d==1)and(m==0) then
        Ton({3-i,3,1,3-i,3,3,3-i,1,3,3-i,1,1},{3-i,2,1,3-i,3,2,3-i,2,3,3-i,1,2},4)
    elseif (d==1)and(m==1) then
        Ton({3-i,1,1,3-i,1,3,3-i,3,3,3-i,3,1},{3-i,1,2,3-i,2,3,3-i,3,2,3-i,2,1},3)
    elseif (d==2)and(m==0) then
        Ton({1,3-i,1,1,3-i,3,3,3-i,3,3,3-i,1},{1,3-i,2,2,3-i,3,3,3-i,2,2,3-i,1},2)
    else
        Ton({3,3-i,1,3,3-i,3,1,3-i,3,1,3-i,1},{2,3-i,1,3,3-i,2,2,3-i,3,1,3-i,2},1)
    end
    Re()
end
--d m: 0左中右 1上中下 2前中后
--m: 0顺时针 1逆时针 从左后下方
local function input(e)
if e.content=="0" then Go(e) --复原
elseif e.content=="1" then Re0(1,0,0) --上
elseif e.content=="2" then Re0(1,2,0) --下
elseif e.content=="3" then Re0(0,0,0) --前
elseif e.content=="4" then Re0(0,2,0) --后
elseif e.content=="5" then Re0(2,2,0) --左
elseif e.content=="6" then Re0(2,0,0) --右

elseif e.content=="7" then Re0(1,0,1) --上
elseif e.content=="8" then Re0(1,2,1) --下
elseif e.content=="9" then Re0(0,0,1) --前
elseif e.content=="10" then Re0(0,2,1) --后
elseif e.content=="11" then Re0(2,2,1)--左
elseif e.content=="12" then Re0(2,0,1) --右

elseif e.content=="13" then Re0(0,1,0)   --中_前后
elseif e.content=="14" then Re0(1,1,0) --中_上下
elseif e.content=="15" then Re0(2,1,0) --中_左右

elseif e.content=="16" then Re0(0,1,1) --中_前后
elseif e.content=="17" then Re0(1,1,1) --中_上下
elseif e.content=="18" then Re0(2,1,1) --中_左右
end
end
ScriptSupportEvent:registerEvent([=[Player.InputContent]=], input)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1958562.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Web3.js 4.x版本事件监听详解:从HTTP到WebSocket的迁移

项目场景 在一个使用以太坊区块链技术的项目中,需要监听智能合约的事件,以便在事件触发时能够及时响应。项目中使用了web3.js库的4.x版本,节点使用Geth启动,并通过HTTP与节点进行通信。 问题描述 合约DataStorage.sol文件已经定…

华为项目管理工具集

华为项目管理10大模板是一套被广泛认可和使用的项目管理工具集,它包含了在项目管理过程中常用的各种表格和文档模板。这些模板旨在帮助项目经理更有效地规划、执行和监控项目,确保项目的成功交付。 虽然具体的模板内容可能会有所不同,但根据…

51 单片机的Keil5软件

1. KEIL C51 软件获取 博主网盘下载:链接:https://pan.baidu.com/s/1YBfrRh2L7SIehS5xLQkAow?pwd4211 提取码:4211 也可以在 KEIL 的官网上下载:http:// https://www.keil.com/download/product/ 打开界面如下图所示&#xff1…

机器学习(二十三):决策树和决策树学习过程

一、决策树 下面是数据集,输入特征是耳朵形状、脸形状、是否有胡子,输出结果是是否为猫 下图是决策树,根据耳朵形状、脸形状、是否有胡子这几个特征,建立决策树,从根节点一步步预测结果。 上图中,每一个椭…

[硬件]—电感传感器

电感传感器 1.概述 工作基础:电磁感应,即利用线圈自感或互感的改变来实现非电量测量。工作原理: 被测物理量(非电量:位移、振动、流量);线圈自感系数L/互感系数M;电压或电流&#…

QT常用的控件(二)

QT的常用控件 一.按钮类控件1.1 Push Button代码示例: 带有图标的按钮代码示例: 带有快捷键的按钮代码示例: 按钮的重复触发 1.2 Radio Button代码示例: 选择性别代码示例: click, press, release, toggled 的区别代码示例: 单选框分组 1.3 Check Box代码示例: 获取复选按钮的取…

邮件攻击案例系列四:某金融企业遭遇撒网式钓鱼邮件攻击

案例描述 2023 年 3 月末,某知名投资公司业务经理李先生先后收到两封看似是来自邮件服务商和公司网络安全部门发出的邮件,标题是“紧急:邮箱安全备案更新通知”。邮件内容称,由于最近公司内部系统升级,所有员工必须重…

【微信小程序实战教程】之微信小程序的配置文件详解

小程序的配置文件 对于有过服务端开发的程序员来说,肯定对“约定优于配置”并不陌生,这是一种按约定编程的软件设计范式,目的在于减少软件开发者做决定的数量。而微信小程序正好与这种软件设计范式的理念相反,小程序是一种“配置…

java将map转json字符串或者再将json字符串转回map,java将对象转json字符串或者互想转换,对象集合和json字符串互转

1.导入hutool工具依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.16</version></dependency>2.直接复制一下代码运行 import cn.hutool.json.JSONUtil;import java.util.Ar…

【C语言报错已解决】Format String Vulnerability

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引言 在日常开发中&#xff0c;我们经常会遇到各种各样的bug&#xff0c;其中格式化字符串漏洞报错可能是最让人头疼的一种。这…

谷歌(google)又出新功能了,快来学

谷歌开发客户这个算是每个外贸业务必备的几个基础技能之一了&#xff0c;大家对谷歌这块的用法多少都有些了解。最近谷歌更新了一个功能&#xff0c;类似于商机推荐的功能&#xff0c;我带大家来了解一下。 我们搜索公司之后&#xff0c;他会展示其他用户搜索过的一些信息。大家…

高职院校大数据人才培养成果导向系统构建、实施要点与评量方法

一、引言 在当今信息化快速发展的背景下&#xff0c;大数据已成为推动社会进步和产业升级的重要力量。为满足社会对大数据人才的需求&#xff0c;高职院校纷纷开设大数据相关专业&#xff0c;并致力于探索科学有效的人才培养模式。本文立足于我国信息化与智能化发展趋势&#…

彻底解决WPS右键没有新建文件的问题

1、综合解决 这个教程能解决大部分的问题彻底解决WPS右键没有新建文件的问题 2、作者补充 作者的教程没有那么麻烦

【java】 力扣 最后一个单词的长度

目录 题目链接题目描述代码 题目链接 58.最后一个单词的长度 题目描述 代码 public int lengthOfLastWord(String s) {int n s.length();int count 0;if(s null ||s.length() 0){return 0;}for(int i n-1;i>0;i--){if(s.charAt(i) ){if(count 0) continue;break;}count…

在pytroch中使用CIFAR10完成完整的模型训练套路

模型训练套路&#xff1a; 1.准备数据集2.加载数据集3.搭建神经网络4创建损失函数5.优化器6.设置训练网络的一些参数7.添加tensorboard&#xff08;方便观察&#xff09;8.开始训练.测试9.保存神经网络 准备数据 #准备数据集 dataset_traintorchvision.datasets.CIFAR10("…

外星人入侵_外星人

项目_外星人入侵_外星人 1创建第一个外星人1.1创建Alien类1.2创建Alien实例1.3让外星人出现在屏幕上 2创建一群外星人2.1确定一行可以容纳多少外星人2.2 创建多行外星人2.3创建外星人群2.4重构create_fleet()2.5添加行 3让外星人群移动3.1向右移动外星人3.2创建表示外星人移动方…

迷你世界魔方模型快速制作

做六个不一样颜色的顶部 --黄&#xff0c;绿&#xff0c;红&#xff0c;蓝&#xff0c;橙&#xff0c;白 --local ids{4000,3999, 3998,3997,3996,3995} 游戏脚本运行上一期文章 local x0,y0,z0-39,7,10--起点坐标 --框架、底面、侧面1-4、顶面 local id{682,671,681,680,66…

消息队列rabbitmq的使用

前提条件&#xff1a;环境安装amqp和安装rabbitmq sudo apt-get update sudo apt-get install rabbitmq-amqp-dev 1、创建CMakeLists.txt文件 # Copyright (c) Huawei Technologies Co., Ltd. 2019. All rights reserved.# CMake lowest version requirement cmake_minimum_…

tof系统标定流程之lens标定

1、lens标定详解 为什么在标定tof时需要进行lens的标定,可以说lens标定是一个必不可少的步骤,tof模组也是有镜头的,镜头的畸变会导致进入的光线出现偏差,最终照射到tof芯片表面导致深度图的分布出现畸变,通常是枕形畸变。例外一个用途在于,在计算fppn误差环节需要知道镜头…

机器学习算法与Python实战 | 两行代码即可应用 40 个机器学习模型--lazypredict 库!

本文来源公众号“机器学习算法与Python实战”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;两行代码即可应用 40 个机器学习模型 今天和大家一起学习使用 lazypredict 库&#xff0c;我们可以用一行代码在我们的数据集上实现许多…