6b8bee249a
This library uses braille characters and GPU raw instructions to display generated bitmaps in real-time, in high resolutions. A demo is available from command rtest.
91 lines
2.0 KiB
Lua
91 lines
2.0 KiB
Lua
local raster = import("raster")
|
|
|
|
raster.init()
|
|
|
|
--[[for i=4,20 do
|
|
raster.set(i,i)
|
|
raster.set(i,i+4,0xFF00FF)
|
|
end]]
|
|
|
|
--[[ for x=4,20 do
|
|
for y=4,20 do
|
|
if (x+y)%2==0 then
|
|
raster.set(x,y,0xFF00FF)
|
|
end
|
|
end
|
|
end ]]
|
|
|
|
local event = import("event")
|
|
local x=0
|
|
local y=0
|
|
local vx=1
|
|
local vy=1
|
|
local col = 0x808080
|
|
local i=0
|
|
|
|
while event.pull("key_down",0)==nil do
|
|
i = i + 1
|
|
raster.set(x,y,col)
|
|
|
|
x = x + vx
|
|
y = y + vy
|
|
|
|
if x>raster.displayWidth then
|
|
x=raster.displayWidth
|
|
vx = -math.abs(vx)
|
|
col = math.random(0,0xFFFFFF)
|
|
end
|
|
if x<1 then
|
|
x=1
|
|
vx = math.abs(vx)
|
|
col = math.random(0,0xFFFFFF)
|
|
end
|
|
if y>raster.displayHeight-6 then
|
|
y=raster.displayHeight-6
|
|
vy = -math.abs(vy)
|
|
col = math.random(0,0xFFFFFF)
|
|
end
|
|
if y<1 then
|
|
y=1
|
|
vy = math.abs(vy)
|
|
col = math.random(0,0xFFFFFF)
|
|
end
|
|
|
|
if i>10 and i%15>0 then
|
|
while true do
|
|
local tries=0
|
|
local dx,dy=math.random(1,raster.displayWidth),math.random(1,raster.displayHeight-6)
|
|
if raster.get(dx,dy)~=0 then
|
|
raster.set(dx,dy,0)
|
|
break
|
|
end
|
|
tries = tries + 1
|
|
if tries>20 then
|
|
break
|
|
end
|
|
end
|
|
end
|
|
|
|
if i%10==0 then
|
|
raster.update()
|
|
coroutine.yield()
|
|
end
|
|
end
|
|
|
|
--[[ for i=0,360,4 do
|
|
local angle = i/180*math.pi
|
|
if false then
|
|
local x1,y1,x2,y2=raster.displayWidth/2,raster.displayHeight/2,raster.displayWidth/2+math.sin(angle)*80,raster.displayHeight/2+math.cos(angle)*80
|
|
raster.fillEllipse(x1,y1,x2,y2,0xFF00FF)
|
|
raster.update()
|
|
raster.fillEllipse(x1,y1,x2,y2,0x000000)
|
|
else
|
|
local x,y,c=raster.displayWidth/2,raster.displayHeight/2,math.abs(math.sin(angle)*100)
|
|
raster.drawCircle(x,y,c,0xFF00FF)
|
|
raster.update()
|
|
raster.drawCircle(x,y,c,0x000000)
|
|
end
|
|
end ]]
|
|
|
|
raster.free()
|
|
termlib.cursorPosY=1 |