ÎÌÌÌ̈ˆˆ¬ªªª¬ˆˆˆ¬ÌÌ̬ÌÀ̬ÌÀ̬ÌÀÌÌÌìÌÀÀî̬ÀÌÀ¬ÀÀÀ¬ÀÀÀ¬ÀÀÎÌÌÌ̈ˆˆ¬ªªª¬ˆˆˆ¬ÌÌ̬ÌÌ̬ÌÀ̬ÌÀÌÌÌìÌÀÀî̬ÀÌ̬ÀÀÀ¬ÀÀÀ¬ÀÀ¬ÌÌ̬ªªª¬ª¬ª¬ªÊ̬ªªªŒˆˆˆÌÀÌÎÌÌÎ̬̪ªÀ쬪ÀÀÀÌîÀìîÌÌîî¬ÌÌ̬ªªª¬ª¬ª¬ªÊ̬ªªªŒˆˆˆÌÀÌÎÌÌÎ̬̪ªÀ쬪ÀÀÀÌîÀìîÌÌîî €  !A!AAAaAa! ! A ! AA!A!A !aaa a aaaaaa aaa a aaA a a a a a aaa aAaaa aaaa����� ��a�a������a �a ��aAAAAA AA A AA!A!A ! ! A ! A ! a a a a a a a a a a a a a a a a a a a a A A A A AaaaaaaaaaaAAAaa A � ����a aa������a���!!A!!A! ! ! ! A ! ! A !AAAAAAAAA A A A A AAAAa aaaaaAAAAAA a a a a a aaaaa���a a a a aaaaaaa a a a a a a������ a a a aa aa aa������ � � � � � � � ! ! A ! ! A ! ! ! A ! ! A !AAAAAAAAAAAAAAaaaaaaaaAAAAAAAA A A A A A A A A A A A A A A A Aaaaaaaaaaaaaaaaa A A A A A A A A A A A A A A A Aa�a��������� a aA A A A Aa Aa aa a a a a� a1�0�0…q …q ‰²0‰²0�ó@�ó@ç›?ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªÐÐ ð ÐÀÐ ÀÜÍÐÌÝ ÀÜ ÀÐ ÍÐÌÝðÌÝ ðÀÜ ÀÐÀÐÌÝ ÀÜ ÀÐÀÐ ÌÝÌÝ ÀÜ ÀÐ ÌÝÀÐ ÀÜ ÀÐÌÝÀÐ ÀÜ ÀÐ ÀÜ ÀÐ ÐÌÝð ÀÐ ÀÜ ÀÐ ðÌÝ ÀÐÀÜ ÀÐ ÌÝ ÀÐ ÀÜ ÀÐ ÌÝ ÀÐ ÀÜ ÐÀÐ ðÌÝ ÀÐ ÌÝÀÐ ÀÜ Ð ÀÐ ÌÝÀÐ ÀÜ ÀÐÌÝÀÐ ÀÜ ÌÝÌÝÀÐÐÐÀÜÝ ÌÝ ÀÀÐÀÐ ÀÜ ÀÐ ÌÝÌÝÀÐÀÐ ÀÐÐ ÍÐÀÜ ÀÐÀÐÀÐ ÌÝ ÍÐ ÀÜ ÀÐÀÐÀÐÐ ÌÝÌÝ ÀÜ ÀÐÀÐÐÐ ÌÝÀÐ ÀÐÀÐÐ ÀÐÀÐÀÜ ÌÝ ÀÜ ÀÜ ÀÐÀÐ ÌÝÀÐ ÀÜ ÀÐÀÐÐ ÀÐÀÐ ÀÜ ÌÝ ÀÐ ð ÀÐ ÀÐÀÐÌÝÀÐ ÀÐ ÀÜ ÀÐÀÐ ÀÐ ÌÝ ÀÐÀÐÀÐÀÜ ÌÜ ÀÐÀÐÀÐ ÀÐ ÀÐÀÐÀÐÌÝÀÐÀÜ ÀÐ ðÀÐÀÐÀÐ ÀÐ ÀÜ ÀÐÀÐðÀÐÀÐ ÀÐÌÝÀÐÀÐÀÐ ÌÝü ð ÀÐÀÐ ÌÝ ÀÐ ÀÜ ÀÐ Ð ÀÐ ÀÜ ÍÐ ÀÐ ÀÐ ÌÝÌÝ ÀÐÐÐ ÀÐ ÍÐ ÌÝ ÌÝ Ð𠪪ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªà-- title: cube_demo -- author: Gigatron 2024. -- desc: Playing Bruno time module -- site: website link -- license: (c) Gigatron -- version: 0.8 -- script: lua t=0 x=96 y=24 xx=0 yy=0 zz=0 ll=0 music(0) function BDR(l) if l>=0 and l <=17then poke(0x3fc0, l*16) end if l>=128 and l <=144 then poke(0x3fc0, -l*16) end if l>=143 and l<=146 then poke(0x3ff9,20*math.sin(ll*l)*2) ll = ll + 0.0002 end end local cubeVertices = { { -1, -1, -1 }, { 1, -1, -1 }, { 1, 1, -1 }, { -1, 1, -1 }, { -1, -1, 1 }, { 1, -1, 1 }, { 1, 1, 1 }, { -1, 1, 1 } } cos = math.cos sin = math.sin function rotateX(vertex, angle) local y = vertex[2] * cos(angle) - vertex[3] * sin(angle) local z = vertex[2] * sin(angle) + vertex[3] * cos(angle) return { vertex[1], y, z } end function rotateY(vertex, angle) local x = vertex[1] * cos(angle) + vertex[3] * sin(angle) local z = -vertex[1] * sin(angle) + vertex[3] * cos(angle) return { x, vertex[2], z } end -- Fonction pour effectuer une rotation 3D autour de l'axe Z function rotateZ(vertex, angle) local x = vertex[1] * cos(angle) - vertex[2] * sin(angle) local y = vertex[1] * sin(angle) + vertex[2] * cos(angle) return { x, y, vertex[3] } end local cubeVertices = { { -1, -1, -1 }, { 1, -1, -1 }, { 1, 1, -1 }, { -1, 1, -1 }, { -1, -1, 1 }, { 1, -1, 1 }, { 1, 1, 1 }, { -1, 1, 1 } } function drawCube(angleX, angleY, angleZ) local tVertices = {} for _, vertex in pairs(cubeVertices) do -- Rotation autour de l'axe X local rotatedX = vertex[1] local rotatedY = vertex[2] * cos(angleX) - vertex[3] * sin(angleX) local rotatedZ = vertex[2] * sin(angleX) + vertex[3] * cos(angleX) -- Rotation autour de l'axe Y local tempX = rotatedX * cos(angleY) + rotatedZ * sin(angleY) local tempZ = -rotatedX * sin(angleY) + rotatedZ * cos(angleY) -- Rotation autour de l'axe Z local finalX = tempX * cos(angleZ) - rotatedY * sin(angleZ) local finalY = tempX * sin(angleZ) + rotatedY * cos(angleZ) local finalZ = tempZ -- Projection 3D vers le plan 2D local scale = 128 / (5 + finalZ) -- Ajuster la distance de la caméra local screenX = 64 + finalX * scale local screenY = 64 - finalY * scale tVertices[#tVertices + 1] = {screenX, screenY} end for i = 1, 4 do local nextIndex = i % 4 + 1 line(60+tVertices[i][1], tVertices[i][2], 60+tVertices[nextIndex][1], tVertices[nextIndex][2],12) line(60+tVertices[i+4][1], tVertices[i + 4][2],60+ tVertices[nextIndex + 4][1], tVertices[nextIndex + 4][2],12) line(60+tVertices[i][1], tVertices[i][2], 60+tVertices[i + 4][1], tVertices[i + 4][2],12) line(62+tVertices[i][1], tVertices[i][2],62+tVertices[nextIndex][1], tVertices[nextIndex][2],13) line(62+tVertices[i+4][1], tVertices[i + 4][2],62+ tVertices[nextIndex + 4][1], tVertices[nextIndex + 4][2],13) line(62+tVertices[i][1], tVertices[i][2],62+tVertices[i + 4][1], tVertices[i + 4][2],13) end end stars={} --- fill stars table for i=0,100 do star ={ x= math.random(0,220), y= math.random(14,120), sp= math.random(1,4)-- speed } stars[i]=star end function dstars() for s,b in pairs(stars) do b.x = b.x - b.sp if b.y >=120 then b.y=-10 end if b.x >240 then b.x=0 end if b.x <0 then b.x=240 end if b.sp==1 then pix(b.x,b.y,15) elseif b.sp==2 then pix(b.x,b.y,12) else pix(b.x,b.y,13) end end end --music(0) function TIC() cls() dstars() local angleX = (xx * cos(t/400))/200 local angleY = (yy * sin(t/800))/200 local angleZ = (zz * cos(t/1200))/200 if(t>100) then xx=xx+1 end if(t>200) then zz=zz+1 end if(t>300) then yy=yy+1 end drawCube(angleX, -angleY, angleZ) t=t+1 print("HAPPY NEW YEAR", 40, 0, 10,false,2) print("2024 TIC-80", 50, 126, 10,false,2) end