⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clock3crash.lua

📁 lua脚本语言调用allegro游戏程序库的接口-跨平台
💻 LUA
字号:
require("luallegro")

------------------------------------------------
function globalize(lib)
local i=0

if type(_G[lib])=="table" then
   print("Globalizing "..lib.." library.")

   for key,value in pairs(_G[lib]) do 
      _G[key]=value 
      i=i+1
      end

   print("  "..i.." items added.")
   end
end
------------------------------------------------

globalize("allegro")
globalize("kbd")
globalize("math")

allegro_init()

if not install_keyboard() then
   print("install_keyboard() failed. Exiting.") exit(); return;
end

mouse.install()

if not install_timer() then
   print("install_timer() failed. Exiting.") exit(); return;
end


function sqr(x) return x*x end
math.sqr=sqr

font8x16 = load_font("fonts/8x16.pcx")

set_color_depth(32)

if not set_gfx_mode(GFX_AUTODETECT_WINDOWED,640,480,0,0) 
   then 
   print("set_gfx_mode failed.Exiting.") 
   return;
   end
set_display_switch_mode(SWITCH_BACKGROUND)

set_close_button_callback()
set_window_title("Clock example for luallegro.dll and lua5.1")

clearscreen()
local WHITE=     makecol(255,255,255)
local YELLOW=    makecol(255,255,128)
local GRAY =     makecol(128,128,128)
local LIGHTGRAY =makecol(200,200,200)

textout_centre(font8x16,"Clock example",320,0,WHITE,0)
textout_centre(font8x16,"Press any key to exit.",320,464,WHITE,0)

textout_centre(font8x16,"LuAllegro clock example",320,0,WHITE,0)
textout_centre(font8x16,"Press any key to exit the program.",320,464,WHITE,0)

for x=0,3 do
   local v=70+30*x
   local col=makecol(v,v,v)
   circle(320,240,220-x,col)
   circle(320,240,210+x,col)
   floodfill(320,25,col)
end

local Pi=3.1415926535

for x=0,59 do
   local angle=Pi*x/30
   local x1,y1,x2,y2
   x1=320+210*sin(angle)
   y1=240-210*cos(angle)
   x2=320+205*sin(angle)
   y2=240-205*cos(angle)
   line(x1,y1,x2,y2,GRAY)
end

local function znacznik_godzinowy(k,mk,c,r1,r2)
   local x1,y1,x2,y2,x3,y3,x4,y4
   x1=320+r1*sin(k-mk)
   y1=240-r1*cos(k-mk)
   x2=320+r1*sin(k+mk)
   y2=240-r1*cos(k+mk)
   x3=320+r2*sin(k+mk)
   y3=240-r2*cos(k+mk)
   x4=320+r2*sin(k-mk)
   y4=240-r2*cos(k-mk)
   polygon(nil,{x1,y1,x2,y2,x3,y3,x4,y4},c)
end

for i=0,11 do
   local angle=Pi*i/6
   znacznik_godzinowy(angle,0.016,GRAY,211,190)
   znacznik_godzinowy(angle,0.008,LIGHTGRAY,208,192)
end

local sekunda_bmp= load_bitmap("sekunda.pcx")
local minuta_bmp=  load_bitmap("minuta.pcx")
local godzina_bmp= load_bitmap("godzina.pcx")

local zegar=     create_bitmap(440,440)
local offscreen= create_bitmap(440,440)

--zapami阾aj widok zegara
blit(screen,zegar,320-220,240-220,0,0,440,440)



local wskazowka_sekundowa=function(k)
   local angle= math.mod(k,60)*Pi/30
   pivot_sprite(offscreen,sekunda_bmp,220,220,7,147,k*6)
end

local wskazowka_minutowa=function(k)
   local angle= math.mod(k,60)*Pi/30
   pivot_sprite(offscreen,minuta_bmp,220,220,16,191,k*6-0.4)
end

local wskazowka_godzinowa=function(k)
   local angle= math.mod(k,60)*Pi/30
   pivot_sprite(offscreen,godzina_bmp,220,220,31,141,k*6)
end

local rysuj_zegar=function(godzina,minuta,sekunda)

   --narysuj na offscreen widok zegara
   blit(zegar,offscreen,0,0,0,0,440,440)

   --narysuj wskazowki
   wskazowka_godzinowa(godzina*5)
   wskazowka_minutowa(minuta)
   wskazowka_sekundowa(sekunda)

   --narysuj to wszystko na ekranie
   blit(offscreen,screen,0,0,100,20,440,440)
end


clear_keybuf()

local t=os.date("*t",os.time())
local second=t.sec;

repeat
   
   --pobierz dane o czasie
   t=os.date("*t",os.time())

   --od渨ie

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -