Thanks Chafari for checking
I rewrote the routines for movements and now use fix object
and then get the global world angles of x y and z then unfix
them and rotate to the world angles received,
heres what i have so far it now has a shuffle and solve routine that reverses
the shuffles moves with animation
// Project: RubiksCube
// Created: 2018-12-08
// show all errors
SetErrorMode(2)
// set window properties
SetWindowTitle( "RubiksCube" )
SetWindowSize( 1024, 768, 0 )
SetWindowAllowResize( 1 ) // allow the user to resize the window
// set display properties
SetVirtualResolution( 1024, 768 ) // doesn't have to match the window
SetOrientationAllowed( 1, 1, 1, 1 ) // allow both portrait and landscape on mobile devices
SetSyncRate( 30, 0 ) // 30fps instead of 60 to save battery
SetScissor( 0,0,0,0 ) // use the maximum available screen space, no black borders
UseNewDefaultFonts( 1 ) // since version 2.0.22 we can use nicer default fonts
#constant KEY_SPACE 32
#constant KEY_LEFT 37
#constant KEY_UP 38
#constant KEY_RIGHT 39
#constant KEY_DOWN 40
#constant arrowLeft 1
#constant arrowRight 2
#constant arrowUp 3
#constant arrowDown 4
#constant solution 5
#constant arrowLeftSpr1 1
#constant arrowLeftSpr2 2
#constant arrowLeftSpr3 3
#constant arrowRightSpr1 4
#constant arrowRightSpr2 5
#constant arrowRightSpr3 6
#constant arrowUpSpr1 7
#constant arrowUpSpr2 8
#constant arrowUpSpr3 9
#constant arrowDownSpr1 10
#constant arrowDownSpr2 11
#constant arrowDownSpr3 12
#constant solutionSpr 13
#constant loadBtn 1
#constant saveBtn 2
#constant shuffleBtn 3
#constant solveBtn 4
type cubePiece
id as integer
num as integer
angleX as integer
angleY as integer
angleZ as integer
x as integer
y as integer
z as integer
startX as integer //used for checking if solved
startY as integer
startZ as integer
endtype
global rubiks as cubePiece[27]
global solve as integer[100]
AddVirtualButton(loadBtn,895,290,75)
SetVirtualButtonColor(loadBtn,0,0,255)
SetVirtualButtonText(loadBtn,"Load")
AddVirtualButton(saveBtn,895,390,75)
SetVirtualButtonColor(saveBtn,0,0,255)
SetVirtualButtonText(saveBtn,"Save")
AddVirtualButton(shuffleBtn,895,490,75)
SetVirtualButtonColor(shuffleBtn,0,0,255)
SetVirtualButtonText(shuffleBtn,"Shufffle")
AddVirtualButton(solveBtn,895,590,75)
SetVirtualButtonColor(solveBtn,0,0,255)
SetVirtualButtonText(solveBtn,"Solve")
//front face start locations
rubiks[0].num=1:rubiks[0].x=-1:rubiks[0].y=1:rubiks[0].z=-1
rubiks[1].num=2:rubiks[1].x=0:rubiks[1].y=1:rubiks[1].z=-1
rubiks[2].num=3:rubiks[2].x=1:rubiks[2].y=1:rubiks[2].z=-1
rubiks[3].num=4:rubiks[3].x=-1:rubiks[3].y=0:rubiks[3].z=-1
rubiks[4].num=5:rubiks[4].x=0:rubiks[4].y=0:rubiks[4].z=-1
rubiks[5].num=6:rubiks[5].x=1:rubiks[5].y=0:rubiks[5].z=-1
rubiks[6].num=7:rubiks[6].x=-1:rubiks[6].y=-1:rubiks[6].z=-1
rubiks[7].num=8:rubiks[7].x=0:rubiks[7].y=-1:rubiks[7].z=-1
rubiks[8].num=9:rubiks[8].x=1:rubiks[8].y=-1:rubiks[8].z=-1
//middle start locations
rubiks[9].num=10:rubiks[9].x=-1:rubiks[9].y=1:rubiks[9].z=0
rubiks[10].num=11:rubiks[10].x=0:rubiks[10].y=1:rubiks[10].z=0
rubiks[11].num=12:rubiks[11].x=1:rubiks[11].y=1:rubiks[11].z=0
rubiks[12].num=13:rubiks[12].x=-1:rubiks[12].y=0:rubiks[12].z=0
rubiks[13].num=14:rubiks[13].x=0:rubiks[13].y=0:rubiks[13].z=0
rubiks[14].num=15:rubiks[14].x=1:rubiks[14].y=0:rubiks[14].z=0
rubiks[15].num=16:rubiks[15].x=-1:rubiks[15].y=-1:rubiks[15].z=0
rubiks[16].num=17:rubiks[16].x=0:rubiks[16].y=-1:rubiks[16].z=0
rubiks[17].num=18:rubiks[17].x=1:rubiks[17].y=-1:rubiks[17].z=0
//back start locations
rubiks[18].num=19:rubiks[18].x=-1:rubiks[18].y=1:rubiks[18].z=1
rubiks[19].num=20:rubiks[19].x=0:rubiks[19].y=1:rubiks[19].z=1
rubiks[20].num=21:rubiks[20].x=1:rubiks[20].y=1:rubiks[20].z=1
rubiks[21].num=22:rubiks[21].x=-1:rubiks[21].y=0:rubiks[21].z=1
rubiks[22].num=23:rubiks[22].x=0:rubiks[22].y=0:rubiks[22].z=1
rubiks[23].num=24:rubiks[23].x=1:rubiks[23].y=0:rubiks[23].z=1
rubiks[24].num=25:rubiks[24].x=-1:rubiks[24].y=-1:rubiks[24].z=1
rubiks[25].num=26:rubiks[25].x=0:rubiks[25].y=-1:rubiks[25].z=1
rubiks[26].num=27:rubiks[26].x=1:rubiks[26].y=-1:rubiks[26].z=1
triangle=createTriangleImage()
CreateSprite(arrowLeftSpr1,triangle):SetSpriteSize(arrowLeftSpr1,100,100):SetSpriteAngle(arrowLeftSpr1,-90)
CreateSprite(arrowLeftSpr2,triangle):SetSpriteSize(arrowLeftSpr2,100,100):SetSpriteAngle(arrowLeftSpr2,-90)
CreateSprite(arrowLeftSpr3,triangle):SetSpriteSize(arrowLeftSpr3,100,100):SetSpriteAngle(arrowLeftSpr3,-90)
CreateSprite(arrowRightSpr1,triangle):SetSpriteSize(arrowRightSpr1,100,100):SetSpriteAngle(arrowRightSpr1,90)
CreateSprite(arrowRightSpr2,triangle):SetSpriteSize(arrowRightSpr2,100,100):SetSpriteAngle(arrowRightSpr2,90)
CreateSprite(arrowRightSpr3,triangle):SetSpriteSize(arrowRightSpr3,100,100):SetSpriteAngle(arrowRightSpr3,90)
CreateSprite(arrowUpSpr1,triangle):SetSpriteSize(arrowUpSpr1,100,100)
CreateSprite(arrowUpSpr2,triangle):SetSpriteSize(arrowUpSpr2,100,100)
CreateSprite(arrowUpSpr3,triangle):SetSpriteSize(arrowUpSpr3,100,100)
CreateSprite(arrowDownSpr1,triangle):SetSpriteSize(arrowDownSpr1,100,100):SetSpriteAngle(arrowDownSpr1,180)
CreateSprite(arrowDownSpr2,triangle):SetSpriteSize(arrowDownSpr2,100,100):SetSpriteAngle(arrowDownSpr2,180)
CreateSprite(arrowDownSpr3,triangle):SetSpriteSize(arrowDownSpr3,100,100):SetSpriteAngle(arrowDownSpr3,180)
SetSpritePosition(arrowLeftSpr1,180,245)
SetSpritePosition(arrowLeftSpr2,180,345)
SetSpritePosition(arrowLeftSpr3,180,445)
SetSpritePosition(arrowRightSpr1,720,245)
SetSpritePosition(arrowRightSpr2,720,345)
SetSpritePosition(arrowRightSpr3,720,445)
SetSpritePosition(arrowUpSpr1,360,10)
SetSpritePosition(arrowUpSpr2,460,10)
SetSpritePosition(arrowUpSpr3,560,10)
SetSpritePosition(arrowDownSpr1,360,580)
SetSpritePosition(arrowDownSpr2,460,580)
SetSpritePosition(arrowDownSpr3,560,580)
createCubeObject():global Obj
obj=loadObject("Cube.obj")
SetObjectRotation(obj,0,0,0)
img=createCubeTexture()
SetObjectImage(obj,img,0)
for num = 0 to 26
rubiks[num].id=CloneObject(obj)
SetObjectPosition(rubiks[num].id,rubiks[num].x,rubiks[num].y,rubiks[num].z)
SetObjectRotation(rubiks[num].id,0,0,0)
rubiks[num].startX=rubiks[num].x:rubiks[num].startY=rubiks[num].y:rubiks[num].startZ=rubiks[num].z
next
sync()
CreateSprite(solutionSpr,createSolvedImage())
SetSpriteSize(solutionSpr,418,446)
SetSpritePosition(solutionSpr,660,-150)
SetSpriteDepth(solutionSpr,11)
//shuffle()
SetCameraPosition(1,0,3,-7)
do
if ( GetPointerPressed ( ) = 1 )
hit = GetSpriteHit(GetPointerX ( ), GetPointerY ( ) )
endif
If hit=arrowLeftSpr1//GetRawKeyState(KEY_Q)=1
rotateTopRowAroundY(1) //:Sleep(250)
endif
If hit=arrowLeftSpr2 //GetRawKeyState(KEY_A)=1
rotateMiddleRowAroundY(1) //:Sleep(250)
endif
If hit=arrowLeftSpr3 //GetRawKeyState(KEY_Z)=1
rotateBottomRowAroundY(1) //:Sleep(250)
endif
If hit=arrowRightSpr1 //GetRawKeyState(KEY_W)=1
rotate2TopRowAroundY(1) //:Sleep(250)
endif
If hit=arrowRightSpr2 //GetRawKeyState(KEY_S)=1
rotate2MiddleRowAroundY(1) //:Sleep(250)
endif
If hit=arrowRightSpr3 //GetRawKeyState(KEY_X)=1
rotate2BottomRowAroundY(1) //:Sleep(250)
endif
If hit=arrowUpSpr1 //GetRawKeyState(KEY_E)=1
rotateLeftColumaroundX(1) //:Sleep(250)
endif
If hit=arrowUpSpr2 //GetRawKeyState(KEY_R)=1
rotateMiddleColumaroundX(1) //:Sleep(250)
endif
If hit=arrowUpSpr3 //GetRawKeyState(KEY_T)=1
rotateRightColumaroundX(1) //:Sleep(250)
endif
If hit=arrowDownSpr1 //GetRawKeyState(KEY_D)=1
rotate2LeftColumaroundX(1) //:Sleep(250)
endif
If hit=arrowDownSpr2 //GetRawKeyState(KEY_F)=1
rotate2MiddleColumaroundX(1) //:Sleep(250)
endif
If hit=arrowDownSpr3 //GetRawKeyState(KEY_G)=1
rotate2RightColumaroundX(1) //:Sleep(250)
endif
if GetVirtualButtonPressed(loadBtn)=1
if GetFileExists("rubik.json")=1
rubiks.load("rubik.json")
for num = 0 to 26
SetObjectPosition(rubiks[num].id,rubiks[num].x,rubiks[num].y,rubiks[num].z)
SetObjectRotation(rubiks[num].id,rubiks[num].angleX,rubiks[num].angleY,rubiks[num].angleZ)
next
endif
endif
if GetVirtualButtonPressed(saveBtn)=1
for num = 0 to 26
rubiks[num].angleX=GetObjectWorldAngleX(rubiks[num].id)
rubiks[num].angleY=GetObjectWorldAngleY(rubiks[num].id)
rubiks[num].angleZ=GetObjectWorldAngleZ(rubiks[num].id)
next
rubiks.save("rubik.json")
endif
if GetVirtualButtonPressed(solveBtn)=1
solve()
endif
if GetVirtualButtonPressed(shuffleBtn)=1
shuffle()
endif
hit=0
Print( "RUBIKS CUBE PUZZLE" )
Print( "Use the Arrow buttons" )
Print( "to rotate cube pieces" )
Print( "until it looks like ")
Print( "the cube top right.")
if isSolved() then Print("Solved")
Sync()
loop
function getIdByLocation(x as integer,y as integer,z as integer)
num=-1
repeat
inc num
until rubiks[num].x=x and rubiks[num].y=y and rubiks[num].z=z
endfunction rubiks[num].id
function setObjectNewlocation(id as integer,x as integer,y as integer,z as integer)
num=-1
repeat
inc num
until rubiks[num].id=id
rubiks[num].x=x:rubiks[num].y=y:rubiks[num].z=z
SetObjectPosition(rubiks[num].id,x,y,z)
endfunction
function isSolved()
num=-1:flag=1
repeat
inc num
if rubiks[num].startX<>rubiks[num].x then flag=0
if rubiks[num].startY<>rubiks[num].y then flag=0
if rubiks[num].startZ<>rubiks[num].z then flag=0
until num=26
endfunction flag
function shuffle()
for t = 1 to 20
ran=(random(1,6))
solve[t]=ran
select ran
case 1:
rotateTopRowAroundY(0)
endcase
case 2:
rotateMiddleRowAroundY(0)
endcase
case 3:
rotateBottomRowAroundY(0)
endcase
case 4:
rotateRightColumaroundX(0)
endcase
case 5:
rotateMiddleColumaroundX(0)
endcase
case 6:
rotateLeftColumaroundX(0)
endcase
endselect
next t
endfunction
function solve()
for t = 20 to 1 step -1
ran=solve[t]
select ran
case 1:
rotate2TopRowAroundY(1)
endcase
case 2:
rotate2MiddleRowAroundY(1)
endcase
case 3:
rotate2BottomRowAroundY(1)
endcase
case 4:
rotate2RightColumaroundX(1)
endcase
case 5:
rotate2MiddleColumaroundX(1)
endcase
case 6:
rotate2LeftColumaroundX(1)
endcase
endselect
sync():sleep(150)
next t
endfunction
function rotateTopRowAroundY(animate as integer)
id=getIdByLocation(0,0,0)
local id1AngX,id1AngY,id1AngZ as Float
local id2AngX,id2AngY,id2AngZ as Float
local id3AngX,id3AngY,id3AngZ as Float
local id4AngX,id4AngY,id4AngZ as Float
local id5AngX,id5AngY,id5AngZ as Float
local id6AngX,id6AngY,id6AngZ as Float
local id7AngX,id7AngY,id7AngZ as Float
local id8AngX,id8Ang24,id8AngZ as Float
local id9AngX,id3Ang9,id9AngZ as Float
id1=getIdByLocation(-1,1,-1)
id2=getIdByLocation(0,1,-1)
id3=getIdByLocation(1,1,-1)
id4=getIdByLocation(-1,1,0)
id5=getIdByLocation(0,1,0)
id6=getIdByLocation(1,1,0)
id7=getIdByLocation(-1,1,1)
id8=getIdByLocation(0,1,1)
id9=getIdByLocation(1,1,1)
SetObjectRotation(obj,0,0,0)
FixObjectToObject(id1,obj)
FixObjectToObject(id2,obj)
FixObjectToObject(id3,obj)
FixObjectToObject(id4,obj)
FixObjectToObject(id5,obj)
FixObjectToObject(id6,obj)
FixObjectToObject(id7,obj)
FixObjectToObject(id8,obj)
FixObjectToObject(id9,obj)
for t = 1 to 90
RotateObjectLocalY(obj,1)
if animate=1 then sync()
next t
id1AngX= (GetObjectWorldAngleX(id1)):id1AngY= (GetObjectWorldAngleY(id1)):id1AngZ= (GetObjectWorldAngleZ(id1))
id2AngX= (GetObjectWorldAngleX(id2)):id2AngY= (GetObjectWorldAngleY(id2)):id2AngZ= (GetObjectWorldAngleZ(id2))
id3AngX= (GetObjectWorldAngleX(id3)):id3AngY= (GetObjectWorldAngleY(id3)):id3AngZ= (GetObjectWorldAngleZ(id3))
id4AngX= (GetObjectWorldAngleX(id4)):id4AngY= (GetObjectWorldAngleY(id4)):id4AngZ= (GetObjectWorldAngleZ(id4))
id5AngX= (GetObjectWorldAngleX(id5)):id5AngY= (GetObjectWorldAngleY(id5)):id5AngZ= (GetObjectWorldAngleZ(id5))
id6AngX= (GetObjectWorldAngleX(id6)):id6AngY= (GetObjectWorldAngleY(id6)):id6AngZ= (GetObjectWorldAngleZ(id6))
id7AngX= (GetObjectWorldAngleX(id7)):id7AngY= (GetObjectWorldAngleY(id7)):id7AngZ= (GetObjectWorldAngleZ(id7))
id8AngX= (GetObjectWorldAngleX(id8)):id8AngY= (GetObjectWorldAngleY(id8)):id8AngZ= (GetObjectWorldAngleZ(id8))
id9AngX= (GetObjectWorldAngleX(id9)):id9AngY= (GetObjectWorldAngleY(id9)):id9AngZ= (GetObjectWorldAngleZ(id9))
RotateObjectLocalY(obj,-90)
FixObjectToObject(id1,0)
FixObjectToObject(id2,0)
FixObjectToObject(id3,0)
FixObjectToObject(id4,0)
FixObjectToObject(id5,0)
FixObjectToObject(id6,0)
FixObjectToObject(id7,0)
FixObjectToObject(id8,0)
FixObjectToObject(id9,0)
setObjectNewlocation(id1,-1,1,1)
setObjectNewlocation(id2,-1,1,0)
setObjectNewlocation(id3,-1,1,-1)
setObjectNewlocation(id4,0,1,1)
setObjectNewlocation(id5,0,1,0)
setObjectNewlocation(id6,0,1,-1)
setObjectNewlocation(id7,1,1,1)
setObjectNewlocation(id8,1,1,0)
setObjectNewlocation(id9,1,1,-1)
SetObjectRotation(id1,id1AngX,id1AngY,id1Angz)
SetObjectRotation(id2,id2AngX,id2AngY,id2Angz)
SetObjectRotation(id3,id3AngX,id3AngY,id3Angz)
SetObjectRotation(id4,id4AngX,id4AngY,id4Angz)
SetObjectRotation(id5,id5AngX,id5AngY,id5Angz)
SetObjectRotation(id6,id6AngX,id6AngY,id6Angz)
SetObjectRotation(id7,id7AngX,id7AngY,id7Angz)
SetObjectRotation(id8,id8AngX,id8AngY,id8Angz)
SetObjectRotation(id9,id9AngX,id9AngY,id9Angz)
endfunction
function rotate2TopRowAroundY(animate as integer)
id=getIdByLocation(0,0,0)
local id1AngX,id1AngY,id1AngZ as Float
local id2AngX,id2AngY,id2AngZ as Float
local id3AngX,id3AngY,id3AngZ as Float
local id4AngX,id4AngY,id4AngZ as Float
local id5AngX,id5AngY,id5AngZ as Float
local id6AngX,id6AngY,id6AngZ as Float
local id7AngX,id7AngY,id7AngZ as Float
local id8AngX,id8Ang24,id8AngZ as Float
local id9AngX,id3Ang9,id9AngZ as Float
id1=getIdByLocation(-1,1,-1)
id2=getIdByLocation(0,1,-1)
id3=getIdByLocation(1,1,-1)
id4=getIdByLocation(-1,1,0)
id5=getIdByLocation(0,1,0)
id6=getIdByLocation(1,1,0)
id7=getIdByLocation(-1,1,1)
id8=getIdByLocation(0,1,1)
id9=getIdByLocation(1,1,1)
SetObjectRotation(obj,0,0,0)
FixObjectToObject(id1,obj)
FixObjectToObject(id2,obj)
FixObjectToObject(id3,obj)
FixObjectToObject(id4,obj)
FixObjectToObject(id5,obj)
FixObjectToObject(id6,obj)
FixObjectToObject(id7,obj)
FixObjectToObject(id8,obj)
FixObjectToObject(id9,obj)
for t = 1 to 90
RotateObjectLocalY(obj,-1)
if animate=1 then sync()
next t
id1AngX= (GetObjectWorldAngleX(id1)):id1AngY= (GetObjectWorldAngleY(id1)):id1AngZ= (GetObjectWorldAngleZ(id1))
id2AngX= (GetObjectWorldAngleX(id2)):id2AngY= (GetObjectWorldAngleY(id2)):id2AngZ= (GetObjectWorldAngleZ(id2))
id3AngX= (GetObjectWorldAngleX(id3)):id3AngY= (GetObjectWorldAngleY(id3)):id3AngZ= (GetObjectWorldAngleZ(id3))
id4AngX= (GetObjectWorldAngleX(id4)):id4AngY= (GetObjectWorldAngleY(id4)):id4AngZ= (GetObjectWorldAngleZ(id4))
id5AngX= (GetObjectWorldAngleX(id5)):id5AngY= (GetObjectWorldAngleY(id5)):id5AngZ= (GetObjectWorldAngleZ(id5))
id6AngX= (GetObjectWorldAngleX(id6)):id6AngY= (GetObjectWorldAngleY(id6)):id6AngZ= (GetObjectWorldAngleZ(id6))
id7AngX= (GetObjectWorldAngleX(id7)):id7AngY= (GetObjectWorldAngleY(id7)):id7AngZ= (GetObjectWorldAngleZ(id7))
id8AngX= (GetObjectWorldAngleX(id8)):id8AngY= (GetObjectWorldAngleY(id8)):id8AngZ= (GetObjectWorldAngleZ(id8))
id9AngX= (GetObjectWorldAngleX(id9)):id9AngY= (GetObjectWorldAngleY(id9)):id9AngZ= (GetObjectWorldAngleZ(id9))
RotateObjectLocalY(obj,90)
FixObjectToObject(id1,0)
FixObjectToObject(id2,0)
FixObjectToObject(id3,0)
FixObjectToObject(id4,0)
FixObjectToObject(id5,0)
FixObjectToObject(id6,0)
FixObjectToObject(id7,0)
FixObjectToObject(id8,0)
FixObjectToObject(id9,0)
setObjectNewlocation(id1,1,1,-1)
setObjectNewlocation(id2,1,1,0)
setObjectNewlocation(id3,1,1,1)
setObjectNewlocation(id4,0,1,-1)
setObjectNewlocation(id5,0,1,0)
setObjectNewlocation(id6,0,1,1)
setObjectNewlocation(id7,-1,1,-1)
setObjectNewlocation(id8,-1,1,0)
setObjectNewlocation(id9,-1,1,1)
SetObjectRotation(id1,id1AngX,id1AngY,id1Angz)
SetObjectRotation(id2,id2AngX,id2AngY,id2Angz)
SetObjectRotation(id3,id3AngX,id3AngY,id3Angz)
SetObjectRotation(id4,id4AngX,id4AngY,id4Angz)
SetObjectRotation(id5,id5AngX,id5AngY,id5Angz)
SetObjectRotation(id6,id6AngX,id6AngY,id6Angz)
SetObjectRotation(id7,id7AngX,id7AngY,id7Angz)
SetObjectRotation(id8,id8AngX,id8AngY,id8Angz)
SetObjectRotation(id9,id9AngX,id9AngY,id9Angz)
endfunction
function rotateMiddleRowAroundY(animate as integer)
id=getIdByLocation(0,0,0)
local id1AngX,id1AngY,id1AngZ as Float
local id2AngX,id2AngY,id2AngZ as Float
local id3AngX,id3AngY,id3AngZ as Float
local id4AngX,id4AngY,id4AngZ as Float
local id5AngX,id5AngY,id5AngZ as Float
local id6AngX,id6AngY,id6AngZ as Float
local id7AngX,id7AngY,id7AngZ as Float
local id8AngX,id8Ang24,id8AngZ as Float
local id9AngX,id3Ang9,id9AngZ as Float
id1=getIdByLocation(-1,0,-1)
id2=getIdByLocation(0,0,-1)
id3=getIdByLocation(1,0,-1)
id4=getIdByLocation(-1,0,0)
id5=getIdByLocation(0,0,0)
id6=getIdByLocation(1,0,0)
id7=getIdByLocation(-1,0,1)
id8=getIdByLocation(0,0,1)
id9=getIdByLocation(1,0,1)
SetObjectRotation(obj,0,0,0)
FixObjectToObject(id1,obj)
FixObjectToObject(id2,obj)
FixObjectToObject(id3,obj)
FixObjectToObject(id4,obj)
FixObjectToObject(id5,obj)
FixObjectToObject(id6,obj)
FixObjectToObject(id7,obj)
FixObjectToObject(id8,obj)
FixObjectToObject(id9,obj)
for t = 1 to 90
RotateObjectLocalY(obj,1)
if animate=1 then sync()
next t
id1AngX= (GetObjectWorldAngleX(id1)):id1AngY= (GetObjectWorldAngleY(id1)):id1AngZ= (GetObjectWorldAngleZ(id1))
id2AngX= (GetObjectWorldAngleX(id2)):id2AngY= (GetObjectWorldAngleY(id2)):id2AngZ= (GetObjectWorldAngleZ(id2))
id3AngX= (GetObjectWorldAngleX(id3)):id3AngY= (GetObjectWorldAngleY(id3)):id3AngZ= (GetObjectWorldAngleZ(id3))
id4AngX= (GetObjectWorldAngleX(id4)):id4AngY= (GetObjectWorldAngleY(id4)):id4AngZ= (GetObjectWorldAngleZ(id4))
id5AngX= (GetObjectWorldAngleX(id5)):id5AngY= (GetObjectWorldAngleY(id5)):id5AngZ= (GetObjectWorldAngleZ(id5))
id6AngX= (GetObjectWorldAngleX(id6)):id6AngY= (GetObjectWorldAngleY(id6)):id6AngZ= (GetObjectWorldAngleZ(id6))
id7AngX= (GetObjectWorldAngleX(id7)):id7AngY= (GetObjectWorldAngleY(id7)):id7AngZ= (GetObjectWorldAngleZ(id7))
id8AngX= (GetObjectWorldAngleX(id8)):id8AngY= (GetObjectWorldAngleY(id8)):id8AngZ= (GetObjectWorldAngleZ(id8))
id9AngX= (GetObjectWorldAngleX(id9)):id9AngY= (GetObjectWorldAngleY(id9)):id9AngZ= (GetObjectWorldAngleZ(id9))
RotateObjectLocalY(obj,-90)
FixObjectToObject(id1,0)
FixObjectToObject(id2,0)
FixObjectToObject(id3,0)
FixObjectToObject(id4,0)
FixObjectToObject(id5,0)
FixObjectToObject(id6,0)
FixObjectToObject(id7,0)
FixObjectToObject(id8,0)
FixObjectToObject(id9,0)
setObjectNewlocation(id1,-1,0,1)
setObjectNewlocation(id2,-1,0,0)
setObjectNewlocation(id3,-1,0,-1)
setObjectNewlocation(id4,0,0,1)
setObjectNewlocation(id5,0,0,0)
setObjectNewlocation(id6,0,0,-1)
setObjectNewlocation(id7,1,0,1)
setObjectNewlocation(id8,1,0,0)
setObjectNewlocation(id9,1,0,-1)
SetObjectRotation(id1,id1AngX,id1AngY,id1Angz)
SetObjectRotation(id2,id2AngX,id2AngY,id2Angz)
SetObjectRotation(id3,id3AngX,id3AngY,id3Angz)
SetObjectRotation(id4,id4AngX,id4AngY,id4Angz)
SetObjectRotation(id5,id5AngX,id5AngY,id5Angz)
SetObjectRotation(id6,id6AngX,id6AngY,id6Angz)
SetObjectRotation(id7,id7AngX,id7AngY,id7Angz)
SetObjectRotation(id8,id8AngX,id8AngY,id8Angz)
SetObjectRotation(id9,id9AngX,id9AngY,id9Angz)
endfunction
function rotate2MiddleRowAroundY(animate as integer)
id=getIdByLocation(0,0,0)
local id1AngX,id1AngY,id1AngZ as Float
local id2AngX,id2AngY,id2AngZ as Float
local id3AngX,id3AngY,id3AngZ as Float
local id4AngX,id4AngY,id4AngZ as Float
local id5AngX,id5AngY,id5AngZ as Float
local id6AngX,id6AngY,id6AngZ as Float
local id7AngX,id7AngY,id7AngZ as Float
local id8AngX,id8Ang24,id8AngZ as Float
local id9AngX,id3Ang9,id9AngZ as Float
id1=getIdByLocation(-1,0,-1)
id2=getIdByLocation(0,0,-1)
id3=getIdByLocation(1,0,-1)
id4=getIdByLocation(-1,0,0)
id5=getIdByLocation(0,0,0)
id6=getIdByLocation(1,0,0)
id7=getIdByLocation(-1,0,1)
id8=getIdByLocation(0,0,1)
id9=getIdByLocation(1,0,1)
SetObjectRotation(obj,0,0,0)
FixObjectToObject(id1,obj)
FixObjectToObject(id2,obj)
FixObjectToObject(id3,obj)
FixObjectToObject(id4,obj)
FixObjectToObject(id5,obj)
FixObjectToObject(id6,obj)
FixObjectToObject(id7,obj)
FixObjectToObject(id8,obj)
FixObjectToObject(id9,obj)
for t = 1 to 90
RotateObjectLocalY(obj,-1)
if animate=1 then sync()
next t
id1AngX= (GetObjectWorldAngleX(id1)):id1AngY= (GetObjectWorldAngleY(id1)):id1AngZ= (GetObjectWorldAngleZ(id1))
id2AngX= (GetObjectWorldAngleX(id2)):id2AngY= (GetObjectWorldAngleY(id2)):id2AngZ= (GetObjectWorldAngleZ(id2))
id3AngX= (GetObjectWorldAngleX(id3)):id3AngY= (GetObjectWorldAngleY(id3)):id3AngZ= (GetObjectWorldAngleZ(id3))
id4AngX= (GetObjectWorldAngleX(id4)):id4AngY= (GetObjectWorldAngleY(id4)):id4AngZ= (GetObjectWorldAngleZ(id4))
id5AngX= (GetObjectWorldAngleX(id5)):id5AngY= (GetObjectWorldAngleY(id5)):id5AngZ= (GetObjectWorldAngleZ(id5))
id6AngX= (GetObjectWorldAngleX(id6)):id6AngY= (GetObjectWorldAngleY(id6)):id6AngZ= (GetObjectWorldAngleZ(id6))
id7AngX= (GetObjectWorldAngleX(id7)):id7AngY= (GetObjectWorldAngleY(id7)):id7AngZ= (GetObjectWorldAngleZ(id7))
id8AngX= (GetObjectWorldAngleX(id8)):id8AngY= (GetObjectWorldAngleY(id8)):id8AngZ= (GetObjectWorldAngleZ(id8))
id9AngX= (GetObjectWorldAngleX(id9)):id9AngY= (GetObjectWorldAngleY(id9)):id9AngZ= (GetObjectWorldAngleZ(id9))
RotateObjectLocalY(obj,90)
FixObjectToObject(id1,0)
FixObjectToObject(id2,0)
FixObjectToObject(id3,0)
FixObjectToObject(id4,0)
FixObjectToObject(id5,0)
FixObjectToObject(id6,0)
FixObjectToObject(id7,0)
FixObjectToObject(id8,0)
FixObjectToObject(id9,0)
setObjectNewlocation(id1,1,0,-1)
setObjectNewlocation(id2,1,0,0)
setObjectNewlocation(id3,1,0,1)
setObjectNewlocation(id4,0,0,-1)
setObjectNewlocation(id5,0,0,0)
setObjectNewlocation(id6,0,0,1)
setObjectNewlocation(id7,-1,0,-1)
setObjectNewlocation(id8,-1,0,0)
setObjectNewlocation(id9,-1,0,1)
SetObjectRotation(id1,id1AngX,id1AngY,id1Angz)
SetObjectRotation(id2,id2AngX,id2AngY,id2Angz)
SetObjectRotation(id3,id3AngX,id3AngY,id3Angz)
SetObjectRotation(id4,id4AngX,id4AngY,id4Angz)
SetObjectRotation(id5,id5AngX,id5AngY,id5Angz)
SetObjectRotation(id6,id6AngX,id6AngY,id6Angz)
SetObjectRotation(id7,id7AngX,id7AngY,id7Angz)
SetObjectRotation(id8,id8AngX,id8AngY,id8Angz)
SetObjectRotation(id9,id9AngX,id9AngY,id9Angz)
endfunction
function rotate2BottomRowAroundY(animate as integer)
id=getIdByLocation(0,0,0)
local id1AngX,id1AngY,id1AngZ as Float
local id2AngX,id2AngY,id2AngZ as Float
local id3AngX,id3AngY,id3AngZ as Float
local id4AngX,id4AngY,id4AngZ as Float
local id5AngX,id5AngY,id5AngZ as Float
local id6AngX,id6AngY,id6AngZ as Float
local id7AngX,id7AngY,id7AngZ as Float
local id8AngX,id8Ang24,id8AngZ as Float
local id9AngX,id3Ang9,id9AngZ as Float
id1=getIdByLocation(-1,-1,-1)
id2=getIdByLocation(0,-1,-1)
id3=getIdByLocation(1,-1,-1)
id4=getIdByLocation(-1,-1,0)
id5=getIdByLocation(0,-1,0)
id6=getIdByLocation(1,-1,0)
id7=getIdByLocation(-1,-1,1)
id8=getIdByLocation(0,-1,1)
id9=getIdByLocation(1,-1,1)
SetObjectRotation(obj,0,0,0)
FixObjectToObject(id1,obj)
FixObjectToObject(id2,obj)
FixObjectToObject(id3,obj)
FixObjectToObject(id4,obj)
FixObjectToObject(id5,obj)
FixObjectToObject(id6,obj)
FixObjectToObject(id7,obj)
FixObjectToObject(id8,obj)
FixObjectToObject(id9,obj)
for t = 1 to 90
RotateObjectLocalY(obj,-1)
if animate=1 then sync()
next t
id1AngX= (GetObjectWorldAngleX(id1)):id1AngY= (GetObjectWorldAngleY(id1)):id1AngZ= (GetObjectWorldAngleZ(id1))
id2AngX= (GetObjectWorldAngleX(id2)):id2AngY= (GetObjectWorldAngleY(id2)):id2AngZ= (GetObjectWorldAngleZ(id2))
id3AngX= (GetObjectWorldAngleX(id3)):id3AngY= (GetObjectWorldAngleY(id3)):id3AngZ= (GetObjectWorldAngleZ(id3))
id4AngX= (GetObjectWorldAngleX(id4)):id4AngY= (GetObjectWorldAngleY(id4)):id4AngZ= (GetObjectWorldAngleZ(id4))
id5AngX= (GetObjectWorldAngleX(id5)):id5AngY= (GetObjectWorldAngleY(id5)):id5AngZ= (GetObjectWorldAngleZ(id5))
id6AngX= (GetObjectWorldAngleX(id6)):id6AngY= (GetObjectWorldAngleY(id6)):id6AngZ= (GetObjectWorldAngleZ(id6))
id7AngX= (GetObjectWorldAngleX(id7)):id7AngY= (GetObjectWorldAngleY(id7)):id7AngZ= (GetObjectWorldAngleZ(id7))
id8AngX= (GetObjectWorldAngleX(id8)):id8AngY= (GetObjectWorldAngleY(id8)):id8AngZ= (GetObjectWorldAngleZ(id8))
id9AngX= (GetObjectWorldAngleX(id9)):id9AngY= (GetObjectWorldAngleY(id9)):id9AngZ= (GetObjectWorldAngleZ(id9))
RotateObjectLocalY(obj,90)
FixObjectToObject(id1,0)
FixObjectToObject(id2,0)
FixObjectToObject(id3,0)
FixObjectToObject(id4,0)
FixObjectToObject(id5,0)
FixObjectToObject(id6,0)
FixObjectToObject(id7,0)
FixObjectToObject(id8,0)
FixObjectToObject(id9,0)
setObjectNewlocation(id1,1,-1,-1)
setObjectNewlocation(id2,1,-1,0)
setObjectNewlocation(id3,1,-1,1)
setObjectNewlocation(id4,0,-1,-1)
setObjectNewlocation(id5,0,-1,0)
setObjectNewlocation(id6,0,-1,1)
setObjectNewlocation(id7,-1,-1,-1)
setObjectNewlocation(id8,-1,-1,0)
setObjectNewlocation(id9,-1,-1,1)
SetObjectRotation(id1,id1AngX,id1AngY,id1Angz)
SetObjectRotation(id2,id2AngX,id2AngY,id2Angz)
SetObjectRotation(id3,id3AngX,id3AngY,id3Angz)
SetObjectRotation(id4,id4AngX,id4AngY,id4Angz)
SetObjectRotation(id5,id5AngX,id5AngY,id5Angz)
SetObjectRotation(id6,id6AngX,id6AngY,id6Angz)
SetObjectRotation(id7,id7AngX,id7AngY,id7Angz)
SetObjectRotation(id8,id8AngX,id8AngY,id8Angz)
SetObjectRotation(id9,id9AngX,id9AngY,id9Angz)
endfunction
function rotateBottomRowAroundY(animate as integer)
id=getIdByLocation(0,0,0)
local id1AngX,id1AngY,id1AngZ as Float
local id2AngX,id2AngY,id2AngZ as Float
local id3AngX,id3AngY,id3AngZ as Float
local id4AngX,id4AngY,id4AngZ as Float
local id5AngX,id5AngY,id5AngZ as Float
local id6AngX,id6AngY,id6AngZ as Float
local id7AngX,id7AngY,id7AngZ as Float
local id8AngX,id8Ang24,id8AngZ as Float
local id9AngX,id3Ang9,id9AngZ as Float
id1=getIdByLocation(-1,-1,-1)
id2=getIdByLocation(0,-1,-1)
id3=getIdByLocation(1,-1,-1)
id4=getIdByLocation(-1,-1,0)
id5=getIdByLocation(0,-1,0)
id6=getIdByLocation(1,-1,0)
id7=getIdByLocation(-1,-1,1)
id8=getIdByLocation(0,-1,1)
id9=getIdByLocation(1,-1,1)
SetObjectRotation(obj,0,0,0)
FixObjectToObject(id1,obj)
FixObjectToObject(id2,obj)
FixObjectToObject(id3,obj)
FixObjectToObject(id4,obj)
FixObjectToObject(id5,obj)
FixObjectToObject(id6,obj)
FixObjectToObject(id7,obj)
FixObjectToObject(id8,obj)
FixObjectToObject(id9,obj)
for t = 1 to 90
RotateObjectLocalY(obj,1)
if animate=1 then sync()
next t
id1AngX= (GetObjectWorldAngleX(id1)):id1AngY= (GetObjectWorldAngleY(id1)):id1AngZ= (GetObjectWorldAngleZ(id1))
id2AngX= (GetObjectWorldAngleX(id2)):id2AngY= (GetObjectWorldAngleY(id2)):id2AngZ= (GetObjectWorldAngleZ(id2))
id3AngX= (GetObjectWorldAngleX(id3)):id3AngY= (GetObjectWorldAngleY(id3)):id3AngZ= (GetObjectWorldAngleZ(id3))
id4AngX= (GetObjectWorldAngleX(id4)):id4AngY= (GetObjectWorldAngleY(id4)):id4AngZ= (GetObjectWorldAngleZ(id4))
id5AngX= (GetObjectWorldAngleX(id5)):id5AngY= (GetObjectWorldAngleY(id5)):id5AngZ= (GetObjectWorldAngleZ(id5))
id6AngX= (GetObjectWorldAngleX(id6)):id6AngY= (GetObjectWorldAngleY(id6)):id6AngZ= (GetObjectWorldAngleZ(id6))
id7AngX= (GetObjectWorldAngleX(id7)):id7AngY= (GetObjectWorldAngleY(id7)):id7AngZ= (GetObjectWorldAngleZ(id7))
id8AngX= (GetObjectWorldAngleX(id8)):id8AngY= (GetObjectWorldAngleY(id8)):id8AngZ= (GetObjectWorldAngleZ(id8))
id9AngX= (GetObjectWorldAngleX(id9)):id9AngY= (GetObjectWorldAngleY(id9)):id9AngZ= (GetObjectWorldAngleZ(id9))
RotateObjectLocalY(obj,-90)
FixObjectToObject(id1,0)
FixObjectToObject(id2,0)
FixObjectToObject(id3,0)
FixObjectToObject(id4,0)
FixObjectToObject(id5,0)
FixObjectToObject(id6,0)
FixObjectToObject(id7,0)
FixObjectToObject(id8,0)
FixObjectToObject(id9,0)
setObjectNewlocation(id1,-1,-1,1)
setObjectNewlocation(id2,-1,-1,0)
setObjectNewlocation(id3,-1,-1,-1)
setObjectNewlocation(id4,0,-1,1)
setObjectNewlocation(id5,0,-1,0)
setObjectNewlocation(id6,0,-1,-1)
setObjectNewlocation(id7,1,-1,1)
setObjectNewlocation(id8,1,-1,0)
setObjectNewlocation(id9,1,-1,-1)
SetObjectRotation(id1,id1AngX,id1AngY,id1Angz)
SetObjectRotation(id2,id2AngX,id2AngY,id2Angz)
SetObjectRotation(id3,id3AngX,id3AngY,id3Angz)
SetObjectRotation(id4,id4AngX,id4AngY,id4Angz)
SetObjectRotation(id5,id5AngX,id5AngY,id5Angz)
SetObjectRotation(id6,id6AngX,id6AngY,id6Angz)
SetObjectRotation(id7,id7AngX,id7AngY,id7Angz)
SetObjectRotation(id8,id8AngX,id8AngY,id8Angz)
SetObjectRotation(id9,id9AngX,id9AngY,id9Angz)
endfunction
function rotateRightColumaroundX(animate as integer)
id=getIdByLocation(0,0,0)
local id3AngX,id3AngY,id3AngZ as Float
local id6AngX,id6AngY,id6AngZ as Float
local id9AngX,id9AngY,id9AngZ as Float
local id12AngX,id12AngY,id12AngZ as Float
local id15AngX,id15AngY,id15AngZ as Float
local id18AngX,id18AngY,id18AngZ as Float
local id21AngX,id21AngY,id21AngZ as Float
local id24AngX,id3Ang24,id24AngZ as Float
local id27AngX,id3Ang27,id27AngZ as Float
id3=getIdByLocation(1,1,-1)
id6=getIdByLocation(1,0,-1)
id9=getIdByLocation(1,-1,-1)
id12=getIdByLocation(1,1,0)
id15=getIdByLocation(1,0,0)
id18=getIdByLocation(1,-1,0)
id21=getIdByLocation(1,1,1)
id24=getIdByLocation(1,0,1)
id27=getIdByLocation(1,-1,1)
SetObjectRotation(obj,0,0,0)
FixObjectToObject(id3,obj)
FixObjectToObject(id6,obj)
FixObjectToObject(id9,obj)
FixObjectToObject(id12,obj)
FixObjectToObject(id15,obj)
FixObjectToObject(id18,obj)
FixObjectToObject(id21,obj)
FixObjectToObject(id24,obj)
FixObjectToObject(id27,obj)
for t = 1 to 90
RotateObjectLocalX(obj,1)
if animate=1 then sync()
next t
id3AngX= (GetObjectWorldAngleX(id3)):id3AngY= (GetObjectWorldAngleY(id3)):id3AngZ= (GetObjectWorldAngleZ(id3))
id6AngX= (GetObjectWorldAngleX(id6)):id6AngY= (GetObjectWorldAngleY(id6)):id6AngZ= (GetObjectWorldAngleZ(id6))
id9AngX= (GetObjectWorldAngleX(id9)):id9AngY= (GetObjectWorldAngleY(id9)):id9AngZ= (GetObjectWorldAngleZ(id9))
id12AngX= (GetObjectWorldAngleX(id12)):id12AngY= (GetObjectWorldAngleY(id12)):id12AngZ= (GetObjectWorldAngleZ(id12))
id15AngX= (GetObjectWorldAngleX(id15)):id15AngY= (GetObjectWorldAngleY(id15)):id15AngZ= (GetObjectWorldAngleZ(id15))
id18AngX= (GetObjectWorldAngleX(id18)):id18AngY= (GetObjectWorldAngleY(id18)):id18AngZ= (GetObjectWorldAngleZ(id18))
id21AngX= (GetObjectWorldAngleX(id21)):id21AngY= (GetObjectWorldAngleY(id21)):id21AngZ= (GetObjectWorldAngleZ(id21))
id24AngX= (GetObjectWorldAngleX(id24)):id24AngY= (GetObjectWorldAngleY(id24)):id24AngZ= (GetObjectWorldAngleZ(id24))
id27AngX= (GetObjectWorldAngleX(id27)):id27AngY= (GetObjectWorldAngleY(id27)):id27AngZ= (GetObjectWorldAngleZ(id27))
RotateObjectLocalX(obj,-90)
FixObjectToObject(id3,0)
FixObjectToObject(id6,0)
FixObjectToObject(id9,0)
FixObjectToObject(id12,0)
FixObjectToObject(id15,0)
FixObjectToObject(id18,0)
FixObjectToObject(id21,0)
FixObjectToObject(id24,0)
FixObjectToObject(id27,0)
setObjectNewlocation(id3,1,1,1)
setObjectNewlocation(id6,1,1,0)
setObjectNewlocation(id9,1,1,-1)
setObjectNewlocation(id12,1,0,1)
setObjectNewlocation(id15,1,0,0)
setObjectNewlocation(id18,1,0,-1)
setObjectNewlocation(id21,1,-1,1)
setObjectNewlocation(id24,1,-1,0)
setObjectNewlocation(id27,1,-1,-1)
SetObjectRotation(id3,id3AngX,id3AngY,id3Angz)
SetObjectRotation(id6,id6AngX,id6AngY,id6Angz)
SetObjectRotation(id9,id9AngX,id9AngY,id9Angz)
SetObjectRotation(id12,id12AngX,id12AngY,id12Angz)
SetObjectRotation(id15,id15AngX,id15AngY,id15Angz)
SetObjectRotation(id18,id18AngX,id18AngY,id18Angz)
SetObjectRotation(id21,id21AngX,id21AngY,id21Angz)
SetObjectRotation(id24,id24AngX,id24AngY,id24Angz)
SetObjectRotation(id27,id27AngX,id27AngY,id27Angz)
endfunction
function rotate2RightColumaroundX(animate as integer)
id=getIdByLocation(0,0,0)
local id3AngX,id3AngY,id3AngZ as Float
local id6AngX,id6AngY,id6AngZ as Float
local id9AngX,id9AngY,id9AngZ as Float
local id12AngX,id12AngY,id12AngZ as Float
local id15AngX,id15AngY,id15AngZ as Float
local id18AngX,id18AngY,id18AngZ as Float
local id21AngX,id21AngY,id21AngZ as Float
local id24AngX,id3Ang24,id24AngZ as Float
local id27AngX,id3Ang27,id27AngZ as Float
id3=getIdByLocation(1,1,-1)
id6=getIdByLocation(1,0,-1)
id9=getIdByLocation(1,-1,-1)
id12=getIdByLocation(1,1,0)
id15=getIdByLocation(1,0,0)
id18=getIdByLocation(1,-1,0)
id21=getIdByLocation(1,1,1)
id24=getIdByLocation(1,0,1)
id27=getIdByLocation(1,-1,1)
SetObjectRotation(obj,0,0,0)
FixObjectToObject(id3,obj)
FixObjectToObject(id6,obj)
FixObjectToObject(id9,obj)
FixObjectToObject(id12,obj)
FixObjectToObject(id15,obj)
FixObjectToObject(id18,obj)
FixObjectToObject(id21,obj)
FixObjectToObject(id24,obj)
FixObjectToObject(id27,obj)
for t = 1 to 90
RotateObjectLocalX(obj,-1)
if animate=1 then sync()
next t
id3AngX= (GetObjectWorldAngleX(id3)):id3AngY= (GetObjectWorldAngleY(id3)):id3AngZ= (GetObjectWorldAngleZ(id3))
id6AngX= (GetObjectWorldAngleX(id6)):id6AngY= (GetObjectWorldAngleY(id6)):id6AngZ= (GetObjectWorldAngleZ(id6))
id9AngX= (GetObjectWorldAngleX(id9)):id9AngY= (GetObjectWorldAngleY(id9)):id9AngZ= (GetObjectWorldAngleZ(id9))
id12AngX= (GetObjectWorldAngleX(id12)):id12AngY= (GetObjectWorldAngleY(id12)):id12AngZ= (GetObjectWorldAngleZ(id12))
id15AngX= (GetObjectWorldAngleX(id15)):id15AngY= (GetObjectWorldAngleY(id15)):id15AngZ= (GetObjectWorldAngleZ(id15))
id18AngX= (GetObjectWorldAngleX(id18)):id18AngY= (GetObjectWorldAngleY(id18)):id18AngZ= (GetObjectWorldAngleZ(id18))
id21AngX= (GetObjectWorldAngleX(id21)):id21AngY= (GetObjectWorldAngleY(id21)):id21AngZ= (GetObjectWorldAngleZ(id21))
id24AngX= (GetObjectWorldAngleX(id24)):id24AngY= (GetObjectWorldAngleY(id24)):id24AngZ= (GetObjectWorldAngleZ(id24))
id27AngX= (GetObjectWorldAngleX(id27)):id27AngY= (GetObjectWorldAngleY(id27)):id27AngZ= (GetObjectWorldAngleZ(id27))
RotateObjectLocalX(obj,90)
FixObjectToObject(id3,0)
FixObjectToObject(id6,0)
FixObjectToObject(id9,0)
FixObjectToObject(id12,0)
FixObjectToObject(id15,0)
FixObjectToObject(id18,0)
FixObjectToObject(id21,0)
FixObjectToObject(id24,0)
FixObjectToObject(id27,0)
setObjectNewlocation(id3,1,-1,-1)
setObjectNewlocation(id6,1,-1,0)
setObjectNewlocation(id9,1,-1,1)
setObjectNewlocation(id12,1,0,-1)
setObjectNewlocation(id15,1,0,0)
setObjectNewlocation(id18,1,0,1)
setObjectNewlocation(id21,1,1,-1)
setObjectNewlocation(id24,1,1,0)
setObjectNewlocation(id27,1,1,1)
SetObjectRotation(id3,id3AngX,id3AngY,id3Angz)
SetObjectRotation(id6,id6AngX,id6AngY,id6Angz)
SetObjectRotation(id9,id9AngX,id9AngY,id9Angz)
SetObjectRotation(id12,id12AngX,id12AngY,id12Angz)
SetObjectRotation(id15,id15AngX,id15AngY,id15Angz)
SetObjectRotation(id18,id18AngX,id18AngY,id18Angz)
SetObjectRotation(id21,id21AngX,id21AngY,id21Angz)
SetObjectRotation(id24,id24AngX,id24AngY,id24Angz)
SetObjectRotation(id27,id27AngX,id27AngY,id27Angz)
endfunction
function rotateMiddleColumaroundX(animate as integer)
id=getIdByLocation(0,0,0)
local id3AngX,id3AngY,id3AngZ as Float
local id6AngX,id6AngY,id6AngZ as Float
local id9AngX,id9AngY,id9AngZ as Float
local id12AngX,id12AngY,id12AngZ as Float
local id15AngX,id15AngY,id15AngZ as Float
local id18AngX,id18AngY,id18AngZ as Float
local id21AngX,id21AngY,id21AngZ as Float
local id24AngX,id3Ang24,id24AngZ as Float
local id27AngX,id3Ang27,id27AngZ as Float
id3=getIdByLocation(0,1,-1)
id6=getIdByLocation(0,0,-1)
id9=getIdByLocation(0,-1,-1)
id12=getIdByLocation(0,1,0)
id15=getIdByLocation(0,0,0)
id18=getIdByLocation(0,-1,0)
id21=getIdByLocation(0,1,1)
id24=getIdByLocation(0,0,1)
id27=getIdByLocation(0,-1,1)
SetObjectRotation(obj,0,0,0)
FixObjectToObject(id3,obj)
FixObjectToObject(id6,obj)
FixObjectToObject(id9,obj)
FixObjectToObject(id12,obj)
FixObjectToObject(id15,obj)
FixObjectToObject(id18,obj)
FixObjectToObject(id21,obj)
FixObjectToObject(id24,obj)
FixObjectToObject(id27,obj)
for t = 1 to 90
RotateObjectLocalX(obj,1)
if animate=1 then sync()
next t
id3AngX= (GetObjectWorldAngleX(id3)):id3AngY= (GetObjectWorldAngleY(id3)):id3AngZ= (GetObjectWorldAngleZ(id3))
id6AngX= (GetObjectWorldAngleX(id6)):id6AngY= (GetObjectWorldAngleY(id6)):id6AngZ= (GetObjectWorldAngleZ(id6))
id9AngX= (GetObjectWorldAngleX(id9)):id9AngY= (GetObjectWorldAngleY(id9)):id9AngZ= (GetObjectWorldAngleZ(id9))
id12AngX= (GetObjectWorldAngleX(id12)):id12AngY= (GetObjectWorldAngleY(id12)):id12AngZ= (GetObjectWorldAngleZ(id12))
id15AngX= (GetObjectWorldAngleX(id15)):id15AngY= (GetObjectWorldAngleY(id15)):id15AngZ= (GetObjectWorldAngleZ(id15))
id18AngX= (GetObjectWorldAngleX(id18)):id18AngY= (GetObjectWorldAngleY(id18)):id18AngZ= (GetObjectWorldAngleZ(id18))
id21AngX= (GetObjectWorldAngleX(id21)):id21AngY= (GetObjectWorldAngleY(id21)):id21AngZ= (GetObjectWorldAngleZ(id21))
id24AngX= (GetObjectWorldAngleX(id24)):id24AngY= (GetObjectWorldAngleY(id24)):id24AngZ= (GetObjectWorldAngleZ(id24))
id27AngX= (GetObjectWorldAngleX(id27)):id27AngY= (GetObjectWorldAngleY(id27)):id27AngZ= (GetObjectWorldAngleZ(id27))
RotateObjectLocalX(obj,-90)
FixObjectToObject(id3,0)
FixObjectToObject(id6,0)
FixObjectToObject(id9,0)
FixObjectToObject(id12,0)
FixObjectToObject(id15,0)
FixObjectToObject(id18,0)
FixObjectToObject(id21,0)
FixObjectToObject(id24,0)
FixObjectToObject(id27,0)
setObjectNewlocation(id3,0,1,1)
setObjectNewlocation(id6,0,1,0)
setObjectNewlocation(id9,0,1,-1)
setObjectNewlocation(id12,0,0,1)
setObjectNewlocation(id15,0,0,0)
setObjectNewlocation(id18,0,0,-1)
setObjectNewlocation(id21,0,-1,1)
setObjectNewlocation(id24,0,-1,0)
setObjectNewlocation(id27,0,-1,-1)
SetObjectRotation(id3,id3AngX,id3AngY,id3Angz)
SetObjectRotation(id6,id6AngX,id6AngY,id6Angz)
SetObjectRotation(id9,id9AngX,id9AngY,id9Angz)
SetObjectRotation(id12,id12AngX,id12AngY,id12Angz)
SetObjectRotation(id15,id15AngX,id15AngY,id15Angz)
SetObjectRotation(id18,id18AngX,id18AngY,id18Angz)
SetObjectRotation(id21,id21AngX,id21AngY,id21Angz)
SetObjectRotation(id24,id24AngX,id24AngY,id24Angz)
SetObjectRotation(id27,id27AngX,id27AngY,id27Angz)
endfunction
function rotate2MiddleColumaroundX(animate as integer)
id=getIdByLocation(0,0,0)
local id3AngX,id3AngY,id3AngZ as Float
local id6AngX,id6AngY,id6AngZ as Float
local id9AngX,id9AngY,id9AngZ as Float
local id12AngX,id12AngY,id12AngZ as Float
local id15AngX,id15AngY,id15AngZ as Float
local id18AngX,id18AngY,id18AngZ as Float
local id21AngX,id21AngY,id21AngZ as Float
local id24AngX,id3Ang24,id24AngZ as Float
local id27AngX,id3Ang27,id27AngZ as Float
id3=getIdByLocation(0,1,-1)
id6=getIdByLocation(0,0,-1)
id9=getIdByLocation(0,-1,-1)
id12=getIdByLocation(0,1,0)
id15=getIdByLocation(0,0,0)
id18=getIdByLocation(0,-1,0)
id21=getIdByLocation(0,1,1)
id24=getIdByLocation(0,0,1)
id27=getIdByLocation(0,-1,1)
SetObjectRotation(obj,0,0,0)
FixObjectToObject(id3,obj)
FixObjectToObject(id6,obj)
FixObjectToObject(id9,obj)
FixObjectToObject(id12,obj)
FixObjectToObject(id15,obj)
FixObjectToObject(id18,obj)
FixObjectToObject(id21,obj)
FixObjectToObject(id24,obj)
FixObjectToObject(id27,obj)
for t = 1 to 90
RotateObjectLocalX(obj,-1)
if animate=1 then sync()
next t
id3AngX= (GetObjectWorldAngleX(id3)):id3AngY= (GetObjectWorldAngleY(id3)):id3AngZ= (GetObjectWorldAngleZ(id3))
id6AngX= (GetObjectWorldAngleX(id6)):id6AngY= (GetObjectWorldAngleY(id6)):id6AngZ= (GetObjectWorldAngleZ(id6))
id9AngX= (GetObjectWorldAngleX(id9)):id9AngY= (GetObjectWorldAngleY(id9)):id9AngZ= (GetObjectWorldAngleZ(id9))
id12AngX= (GetObjectWorldAngleX(id12)):id12AngY= (GetObjectWorldAngleY(id12)):id12AngZ= (GetObjectWorldAngleZ(id12))
id15AngX= (GetObjectWorldAngleX(id15)):id15AngY= (GetObjectWorldAngleY(id15)):id15AngZ= (GetObjectWorldAngleZ(id15))
id18AngX= (GetObjectWorldAngleX(id18)):id18AngY= (GetObjectWorldAngleY(id18)):id18AngZ= (GetObjectWorldAngleZ(id18))
id21AngX= (GetObjectWorldAngleX(id21)):id21AngY= (GetObjectWorldAngleY(id21)):id21AngZ= (GetObjectWorldAngleZ(id21))
id24AngX= (GetObjectWorldAngleX(id24)):id24AngY= (GetObjectWorldAngleY(id24)):id24AngZ= (GetObjectWorldAngleZ(id24))
id27AngX= (GetObjectWorldAngleX(id27)):id27AngY= (GetObjectWorldAngleY(id27)):id27AngZ= (GetObjectWorldAngleZ(id27))
RotateObjectLocalX(obj,90)
FixObjectToObject(id3,0)
FixObjectToObject(id6,0)
FixObjectToObject(id9,0)
FixObjectToObject(id12,0)
FixObjectToObject(id15,0)
FixObjectToObject(id18,0)
FixObjectToObject(id21,0)
FixObjectToObject(id24,0)
FixObjectToObject(id27,0)
setObjectNewlocation(id3,0,-1,-1)
setObjectNewlocation(id6,0,-1,0)
setObjectNewlocation(id9,0,-1,1)
setObjectNewlocation(id12,0,0,-1)
setObjectNewlocation(id15,0,0,0)
setObjectNewlocation(id18,0,0,1)
setObjectNewlocation(id21,0,1,-1)
setObjectNewlocation(id24,0,1,0)
setObjectNewlocation(id27,0,1,1)
SetObjectRotation(id3,id3AngX,id3AngY,id3Angz)
SetObjectRotation(id6,id6AngX,id6AngY,id6Angz)
SetObjectRotation(id9,id9AngX,id9AngY,id9Angz)
SetObjectRotation(id12,id12AngX,id12AngY,id12Angz)
SetObjectRotation(id15,id15AngX,id15AngY,id15Angz)
SetObjectRotation(id18,id18AngX,id18AngY,id18Angz)
SetObjectRotation(id21,id21AngX,id21AngY,id21Angz)
SetObjectRotation(id24,id24AngX,id24AngY,id24Angz)
SetObjectRotation(id27,id27AngX,id27AngY,id27Angz)
endfunction
function rotateLeftColumaroundX(animate as integer)
id=getIdByLocation(0,0,0)
local id3AngX,id3AngY,id3AngZ as Float
local id6AngX,id6AngY,id6AngZ as Float
local id9AngX,id9AngY,id9AngZ as Float
local id12AngX,id12AngY,id12AngZ as Float
local id15AngX,id15AngY,id15AngZ as Float
local id18AngX,id18AngY,id18AngZ as Float
local id21AngX,id21AngY,id21AngZ as Float
local id24AngX,id3Ang24,id24AngZ as Float
local id27AngX,id3Ang27,id27AngZ as Float
id3=getIdByLocation(-1,1,-1)
id6=getIdByLocation(-1,0,-1)
id9=getIdByLocation(-1,-1,-1)
id12=getIdByLocation(-1,1,0)
id15=getIdByLocation(-1,0,0)
id18=getIdByLocation(-1,-1,0)
id21=getIdByLocation(-1,1,1)
id24=getIdByLocation(-1,0,1)
id27=getIdByLocation(-1,-1,1)
SetObjectRotation(obj,0,0,0)
FixObjectToObject(id3,obj)
FixObjectToObject(id6,obj)
FixObjectToObject(id9,obj)
FixObjectToObject(id12,obj)
FixObjectToObject(id15,obj)
FixObjectToObject(id18,obj)
FixObjectToObject(id21,obj)
FixObjectToObject(id24,obj)
FixObjectToObject(id27,obj)
for t = 1 to 90
RotateObjectLocalX(id,obj)
if animate=1 then sync()
next t
id3AngX= (GetObjectWorldAngleX(id3)):id3AngY= (GetObjectWorldAngleY(id3)):id3AngZ= (GetObjectWorldAngleZ(id3))
id6AngX= (GetObjectWorldAngleX(id6)):id6AngY= (GetObjectWorldAngleY(id6)):id6AngZ= (GetObjectWorldAngleZ(id6))
id9AngX= (GetObjectWorldAngleX(id9)):id9AngY= (GetObjectWorldAngleY(id9)):id9AngZ= (GetObjectWorldAngleZ(id9))
id12AngX= (GetObjectWorldAngleX(id12)):id12AngY= (GetObjectWorldAngleY(id12)):id12AngZ= (GetObjectWorldAngleZ(id12))
id15AngX= (GetObjectWorldAngleX(id15)):id15AngY= (GetObjectWorldAngleY(id15)):id15AngZ= (GetObjectWorldAngleZ(id15))
id18AngX= (GetObjectWorldAngleX(id18)):id18AngY= (GetObjectWorldAngleY(id18)):id18AngZ= (GetObjectWorldAngleZ(id18))
id21AngX= (GetObjectWorldAngleX(id21)):id21AngY= (GetObjectWorldAngleY(id21)):id21AngZ= (GetObjectWorldAngleZ(id21))
id24AngX= (GetObjectWorldAngleX(id24)):id24AngY= (GetObjectWorldAngleY(id24)):id24AngZ= (GetObjectWorldAngleZ(id24))
id27AngX= (GetObjectWorldAngleX(id27)):id27AngY= (GetObjectWorldAngleY(id27)):id27AngZ= (GetObjectWorldAngleZ(id27))
RotateObjectLocalX(obj,-90)
FixObjectToObject(id3,0)
FixObjectToObject(id6,0)
FixObjectToObject(id9,0)
FixObjectToObject(id12,0)
FixObjectToObject(id15,0)
FixObjectToObject(id18,0)
FixObjectToObject(id21,0)
FixObjectToObject(id24,0)
FixObjectToObject(id27,0)
setObjectNewlocation(id3,-1,1,1)
setObjectNewlocation(id6,-1,1,0)
setObjectNewlocation(id9,-1,1,-1)
setObjectNewlocation(id12,-1,0,1)
setObjectNewlocation(id15,-1,0,0)
setObjectNewlocation(id18,-1,0,-1)
setObjectNewlocation(id21,-1,-1,1)
setObjectNewlocation(id24,-1,-1,0)
setObjectNewlocation(id27,-1,-1,-1)
SetObjectRotation(id3,id3AngX,id3AngY,id3Angz)
SetObjectRotation(id6,id6AngX,id6AngY,id6Angz)
SetObjectRotation(id9,id9AngX,id9AngY,id9Angz)
SetObjectRotation(id12,id12AngX,id12AngY,id12Angz)
SetObjectRotation(id15,id15AngX,id15AngY,id15Angz)
SetObjectRotation(id18,id18AngX,id18AngY,id18Angz)
SetObjectRotation(id21,id21AngX,id21AngY,id21Angz)
SetObjectRotation(id24,id24AngX,id24AngY,id24Angz)
SetObjectRotation(id27,id27AngX,id27AngY,id27Angz)
endfunction
function rotate2LeftColumaroundX(animate as integer)
id=getIdByLocation(0,0,0)
local id3AngX,id3AngY,id3AngZ as Float
local id6AngX,id6AngY,id6AngZ as Float
local id9AngX,id9AngY,id9AngZ as Float
local id12AngX,id12AngY,id12AngZ as Float
local id15AngX,id15AngY,id15AngZ as Float
local id18AngX,id18AngY,id18AngZ as Float
local id21AngX,id21AngY,id21AngZ as Float
local id24AngX,id3Ang24,id24AngZ as Float
local id27AngX,id3Ang27,id27AngZ as Float
id3=getIdByLocation(-1,1,-1)
id6=getIdByLocation(-1,0,-1)
id9=getIdByLocation(-1,-1,-1)
id12=getIdByLocation(-1,1,0)
id15=getIdByLocation(-1,0,0)
id18=getIdByLocation(-1,-1,0)
id21=getIdByLocation(-1,1,1)
id24=getIdByLocation(-1,0,1)
id27=getIdByLocation(-1,-1,1)
SetObjectRotation(obj,0,0,0)
FixObjectToObject(id3,obj)
FixObjectToObject(id6,obj)
FixObjectToObject(id9,obj)
FixObjectToObject(id12,obj)
FixObjectToObject(id15,obj)
FixObjectToObject(id18,obj)
FixObjectToObject(id21,obj)
FixObjectToObject(id24,obj)
FixObjectToObject(id27,obj)
for t = 1 to 90
RotateObjectLocalX(obj,-1)
if animate=1 then sync()
next t
id3AngX= (GetObjectWorldAngleX(id3)):id3AngY= (GetObjectWorldAngleY(id3)):id3AngZ= (GetObjectWorldAngleZ(id3))
id6AngX= (GetObjectWorldAngleX(id6)):id6AngY= (GetObjectWorldAngleY(id6)):id6AngZ= (GetObjectWorldAngleZ(id6))
id9AngX= (GetObjectWorldAngleX(id9)):id9AngY= (GetObjectWorldAngleY(id9)):id9AngZ= (GetObjectWorldAngleZ(id9))
id12AngX= (GetObjectWorldAngleX(id12)):id12AngY= (GetObjectWorldAngleY(id12)):id12AngZ= (GetObjectWorldAngleZ(id12))
id15AngX= (GetObjectWorldAngleX(id15)):id15AngY= (GetObjectWorldAngleY(id15)):id15AngZ= (GetObjectWorldAngleZ(id15))
id18AngX= (GetObjectWorldAngleX(id18)):id18AngY= (GetObjectWorldAngleY(id18)):id18AngZ= (GetObjectWorldAngleZ(id18))
id21AngX= (GetObjectWorldAngleX(id21)):id21AngY= (GetObjectWorldAngleY(id21)):id21AngZ= (GetObjectWorldAngleZ(id21))
id24AngX= (GetObjectWorldAngleX(id24)):id24AngY= (GetObjectWorldAngleY(id24)):id24AngZ= (GetObjectWorldAngleZ(id24))
id27AngX= (GetObjectWorldAngleX(id27)):id27AngY= (GetObjectWorldAngleY(id27)):id27AngZ= (GetObjectWorldAngleZ(id27))
RotateObjectLocalX(obj,90)
FixObjectToObject(id3,0)
FixObjectToObject(id6,0)
FixObjectToObject(id9,0)
FixObjectToObject(id12,0)
FixObjectToObject(id15,0)
FixObjectToObject(id18,0)
FixObjectToObject(id21,0)
FixObjectToObject(id24,0)
FixObjectToObject(id27,0)
setObjectNewlocation(id3,-1,-1,-1)
setObjectNewlocation(id6,-1,-1,0)
setObjectNewlocation(id9,-1,-1,1)
setObjectNewlocation(id12,-1,0,-1)
setObjectNewlocation(id15,-1,0,0)
setObjectNewlocation(id18,-1,0,1)
setObjectNewlocation(id21,-1,1,-1)
setObjectNewlocation(id24,-1,1,0)
setObjectNewlocation(id27,-1,1,1)
SetObjectRotation(id3,id3AngX,id3AngY,id3Angz)
SetObjectRotation(id6,id6AngX,id6AngY,id6Angz)
SetObjectRotation(id9,id9AngX,id9AngY,id9Angz)
SetObjectRotation(id12,id12AngX,id12AngY,id12Angz)
SetObjectRotation(id15,id15AngX,id15AngY,id15Angz)
SetObjectRotation(id18,id18AngX,id18AngY,id18Angz)
SetObjectRotation(id21,id21AngX,id21AngY,id21Angz)
SetObjectRotation(id24,id24AngX,id24AngY,id24Angz)
SetObjectRotation(id27,id27AngX,id27AngY,id27Angz)
endfunction
Function createCubeObject()
file = OpenToWrite("cube.obj")
WriteLine(file,"o Default")
WriteLine(file,"v 0.475000 0.475000 -0.475000")
WriteLine(file,"v -0.475000 -0.475000 -0.475000")
WriteLine(file,"v -0.475000 0.475000 -0.475000")
WriteLine(file,"v 0.475000 -0.475000 -0.475000")
WriteLine(file,"v 0.475000 -0.475000 0.475000")
WriteLine(file,"v -0.475000 -0.475000 0.475000")
WriteLine(file,"v -0.475000 0.475000 0.475000")
WriteLine(file,"v 0.475000 0.475000 0.475000")
WriteLine(file,"vt 0.333333 0.333333")
WriteLine(file,"vt 0.666667 0.000000")
WriteLine(file,"vt 0.666667 0.333333")
WriteLine(file,"vt 0.333333 0.000000")
WriteLine(file,"vt 0.331333 1.000000")
WriteLine(file,"vt 0.000000 0.668667")
WriteLine(file,"vt 0.331333 0.668667")
WriteLine(file,"vt 0.000000 1.000000")
WriteLine(file,"vt 1.000000 0.333333")
WriteLine(file,"vt 0.666667 0.666667")
WriteLine(file,"vt 1.000000 0.666667")
WriteLine(file,"vt 0.333333 0.666667")
WriteLine(file,"vt 0.333333 1.000000")
WriteLine(file,"vt 0.666667 1.000000")
WriteLine(file,"vt 0.000000 0.666667")
WriteLine(file,"vt 0.000000 0.333333")
WriteLine(file,"vn 0.5774 0.5774 -0.5774")
WriteLine(file,"vn -0.5774 -0.5774 -0.5774")
WriteLine(file,"vn -0.5774 0.5774 -0.5774")
WriteLine(file,"vn 0.5774 -0.5774 -0.5774")
WriteLine(file,"vn 0.5774 -0.5774 0.5774")
WriteLine(file,"vn -0.5774 -0.5774 0.5774")
WriteLine(file,"vn -0.5774 0.5774 0.5774")
WriteLine(file,"vn 0.5774 0.5774 0.5774")
WriteLine(file,"s 1")
WriteLine(file,"f 1/1/1 2/2/2 3/3/3")
WriteLine(file,"f 4/4/4 2/2/2 1/1/1")
WriteLine(file,"f 2/5/2 5/6/5 6/7/6")
WriteLine(file,"f 4/8/4 5/6/5 2/5/2")
WriteLine(file,"f 2/9/2 7/10/7 3/3/3")
WriteLine(file,"f 6/11/6 7/10/7 2/9/2")
WriteLine(file,"f 7/10/7 8/12/8 1/1/1")
WriteLine(file,"f 3/3/3 7/10/7 1/1/1")
WriteLine(file,"f 5/13/5 7/10/7 6/14/6")
WriteLine(file,"f 5/13/5 8/12/8 7/10/7")
WriteLine(file,"f 1/1/1 8/12/8 5/15/5")
WriteLine(file,"f 1/1/1 5/15/5 4/16/4")
CloseFile(file)
endfunction
function createCubeTexture()
yellow=makecolor(255,255,0) //yellow
blue=makecolor(0,0,255) //blue
white=makecolor(255,255,255) //white
red=makecolor(255,0,0) //red
green=makecolor(0,255,0) //green
orange=makecolor(255,165,0) //orange
ClearScreen()
Sync()
drawbox(0,0,519,519,white,white,white,white,1)
drawBox(0,0,170,170,yellow,yellow,yellow,yellow,1)
drawBox(170,0,340,170,blue,blue,blue,blue,1)
drawbox(20,0,29,9,white,white,white,white,1)
drawbox(0,171,170,341,red,red,red,red,1)
drawbox(170,171,340,341,green,green,green,green,1)
drawbox(341,171,511,341,orange,orange,orange,orange,1)
Render()
img = getImage(0,0,511,511)
endfunction img
function createTriangleImage()
rem draw a triangle image used for the player sprite on radar
green=makecolor(0,255,0) //green
SetClearColor(0,0,0)
ClearScreen()
Render()
DrawLine(50,0,100,100,green,green)
DrawLine(50,0,0,100,green,green)
DrawLine(0,100,100,100,green,green)
//DrawLine(5,0,5,9,green,green)
//draw these if you want it filled
//DrawLine(4,0,8,9,green,green)
//DrawLine(0,9,8,9,green,green)
//DrawLine(0,9,4,0,green,green)
//DrawBox(4,1,6,8,green,green,green,green,1)
swap()
img = getimage(1,1,100,100)
SetImageTransparentColor(img,0,0,0)
endfunction img
function createSolvedImage()
SetClearColor(0,0,0)
ClearScreen()
Render()
for num = 0 to 26
DrawObject(rubiks[num].id)
next num
render()
//swap()
img=GetImage(292,122,418,446)
SetImageTransparentColor(img,0,0,0)
endfunction img
fubar