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

devtools/2024/10/22 12:31:33/

 

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.ppmy.cn/devtools/87642.html

相关文章

Java对象头

Java对象头 对象头结构对象头和JVM的思考 对象头结构 Java对象的对象头主要由两部分组成: Mark Word:用于存储对象的运行时数据,包括哈希码、GC年龄、锁状态等。Class Metadata Address:指向对象的类元数据的指针,JV…

[护网杯 2018]easy_tornado1

打开题目 看到三个txt文件,分别打开这三个文件 flag在flllllllag里面 这里给出了一个加密方式,结合url中的filehash,可知要获取flag需要先获取cookie_secret,并将其与/fllllllllllllag组合加密输入到filehash中。猜测是tornado模…

springboot民办高校科研项目管理系统-计算机毕业设计源码54009

摘 要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存…

C++重载递增运算符

#include<iostream> using namespace std;class MyInteger {friend ostream& operator<<(ostream& out, MyInteger myint); public:MyInteger(){m_Num 0;}//前置 MyInteger& operator(){m_Num;return *this;}//后置 MyInteger operator(int)//占位参…

个性化你的生产力工具:待办事项App定制指南

国内外主流的10款待办事项软件对比&#xff1a;PingCode、Worktile、滴答清单、番茄ToDo、Teambition、Todoist、Microsoft To Do、TickTick、Any.do、Trello。 在寻找合适的待办事项软件时&#xff0c;你是否感到选择众多、难以决断&#xff1f;一个好的待办事项工具可以大大提…

Python笔试面试题AI答之面向对象(3)

文章目录 12.Python中OOPS是什么&#xff1f;1. 类&#xff08;Class&#xff09;2. 对象&#xff08;Object&#xff09;3. 面向对象编程的主要特性4. 面向对象编程的优点 13.解释一下Python中的继承&#xff1f;继承的基本语法继承的特性继承的类型 14. 什么是封装&#xff1…

Hive3:库操作常用语句

1、创建库 create database if not exists myhive;2、选择库 use myhive;3、查看当前选择的库 SELECT current_database();4、查看库详细信息 desc database myhive;可以查看数据文件在hdfs集群中的存储位置 5、创建库时制定hdfs的存储位置 create database myhive2 …

TI音频功放TAS6511(一)

一、简要描述 TAS6511-Q1是一款单声道数字输入D类音频放大器&#xff0c;支持2 MHz开关频率&#xff0c;可实现成本和尺寸优化的单声道解决方案。该芯片的工作电压范围为4.5V至18V&#xff0c;可提供高达30W&#xff08;14.4V&#xff0c;4Ω&#xff0c;10%失真率&#xff09…