Advertisement
xerpi

LD4W functions

May 8th, 2011
516
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 15.30 KB | None | 0 0
  1. -- funciones básicas de Lua
  2. Al ser un intérprete de Lua, incluye todas las funciones básicas
  3. Documentación desde: http://www.lua.org/manual/5.1/manual.html#pdf-_G
  4.  
  5. -- color
  6. color.new(r,g,b,a) -- crea un color nuevo a partir de sus componentes
  7. color.blend(color1,color2) -- mezcla dos colores
  8. color.mix(color1,color2,p1,p2) -- mezcla dos colores usando porcentajes
  9. color.add(color1,color2) -- suma dos colores
  10. color.sub(color1,color2) -- resta dos colores
  11. color.R(color) -- devuelve la componente R del color
  12. color.G(color) -- devuelve la componente G del color
  13. color.B(color) -- devuelve la componente B del color
  14. color.A(color) -- devuelve la componente A del color
  15.  
  16. -- timer
  17. timer.new([offset]) -- crea y devuelve un temporizador, si se indica el offset, el temporizador tendrá ese valor como valor inicial, en lugar de ser 0
  18. timer.start(temporizador) o temporizador:start() -- inicia un temporizador
  19. timer.time(temporizador) o temporizador:time() -- devuelve el tiempo en milisegundos desde que se inició el temporizador
  20. timer.stop(temporizador) o temporizador:stop() -- detiene un temporizador
  21. timer.reset(temporizador) o temporizador:reset([offset]) -- reinicia un temporizador, si se indica el offset, el temporizador tendrá ese valor, en lugar de ser reiniciado a 0
  22. timer.free(temporizador) o temporizador:free() -- libera la ram ocupada por un temporizador
  23.  
  24. -- font
  25. font.load("fuente.ttf") -- carga una fuente
  26. font.free(fuente) o fuente:free() -- libera la ram ocupada por una fuente
  27.  
  28. -- screen
  29. screen.width() -- ancho actual de la pantalla
  30. screen.height() -- alto actual de la pantalla
  31. screen.clear([color]) -- limpia la pantalla del color que se le de, default: negro
  32. screen.print([fuente,]x,y,texto) -- imprime un texto en pantalla, si se pone un objeto de fuente, se usa dicha fuente
  33. screen.print([fuente,]x,y,texto,size,color_letra,color_sombra) -- lo mismo de arriba, pero con más cosas xD
  34. screen.flip() -- actualiza el frame actual
  35. screen.clip(x,y,w,h) -- limita el área de dibujado
  36. screen.clip() -- reset clip
  37. screen.fps() -- devuelve la cantidad de cuadros que se renderizan por segundo
  38. screen.enable() -- habilita la salida de video
  39. screen.disable() -- deshabilita la salida de video
  40. screen.textwidth([fuente,]texto[,tamaño]) -- devuelve el ancho en píxeles de un texto, si no se especifica tamaño, se usará el valor por defecto (1)
  41.  
  42. -- controls
  43. controls.read() -- lee todos los controles
  44.  
  45. -- wiimote
  46. controls.wiimote.setled(led,on_off[,canal]) -- on = 1, off = 0, prende o apaga el led especificado en el wiimote
  47. controls.wiimote.setchan([canal]) -- default: 1, cambia el canal por default de TODAS las funciones de wiimote, esto incluye a las expansiones (ver controls.wiimote.expansion())
  48. controls.wiimote.analogtodigital(distance[,canal]) -- distance: de 0 a 128, si se especifica canal, será sólo para ese wiimote+nunchuk, caso contrario, será para todos. Esta función Hace que el joystick del nunchuk, funcione como si fuera el pad del wiimote, ej: controls.wiimote.analogtodigital(50), al mover el joystick en X mas de 50, controls.wiimote.press("right") será true, mientras el joystick siga a la derecha, controls.wiimote.right() será true, y si el joystick luego de estar hacia la derecha, vuelve a su posición original o hacia la izquierda, controls.wiimote.release("right") será true.
  49. controls.wiimote.vib(on_off[,canal]) -- enciende o apaga el motor del wiimote, valores de on_off: 1 y 0
  50. controls.wiimote.expansion([canal]) -- indica que expansión está conectada al wiimote, devuelve string: "none", "guitar hero", "balance board", "motion plus", "nunchuk", "classic". Si, la balance board, es un wiimote gigante xD
  51. controls.wiimote.batt([canal]) -- indica la carga de las baterías del wiimote, número (0-100)
  52. controls.wiimote.irx([canal]) -- posición en X de la cámara de infrarrojos, alias, cursor del wiimote, número (0,640)
  53. controls.wiimote.iry([canal]) -- posición en Y de la cámara de infrarrojos, alias, cursor del wiimote, número (0,480)
  54. controls.wiimote.irz([canal]) -- número en metros! distancia de la sensor bar, a la cámara de infrarrojos del wiimote
  55. controls.wiimote.irangle([canal]) -- ángulo con el que está el wiimote apuntando a la sensorbar, número (0,360)
  56. controls.wiimote.irdotx(número_de_led[,canal]) -- posición en X de un led detectado por la cámara IR, número (0,1023)
  57. controls.wiimote.irdoty(número_de_led[,canal]) -- posición en Y de un led detectado por la cámara IR, número (0,767)
  58. controls.wiimote.irdotsize(número_de_led[,canal]) -- tamaño de un led detectado por la cámara IR, número (0,15)
  59. controls.wiimote.accelx([canal]) -- Acelerómetro horizontal, número
  60. controls.wiimote.accely([canal]) -- Acelerómetro vertical, número
  61. controls.wiimote.accelz([canal]) -- Acelerómetro de profundidad, número
  62. controls.wiimote.gravx([canal]) -- fuerza aplicada al acelerómetro horizontal, número
  63. controls.wiimote.gravy([canal]) -- fuerza aplicada al acelerómetro vetical, número
  64. controls.wiimote.gravz([canal]) -- fuerza aplicada al acelerómetro de profundidad, número
  65. controls.wiimote.roll([canal]) -- grado de giro en X, número (-180,180)
  66. controls.wiimote.pitch([canal]) -- grado de giro en Y, número (-180,180)
  67. controls.wiimote.yaw([canal]) -- no se como describirlo, tiene que ver con el IR, apunta a la pantalla y mira xD, número
  68.  
  69. -- wiimote (booleans)
  70. controls.wiimote.connected([canal]) -- está conectado/prendido/tiene batt ?
  71. controls.wiimote.press("boton"[,canal]) -- se ha presionado un botón
  72. controls.wiimote.release("boton"[,canal]) -- se ha soltado un botón
  73. controls.wiimote.one([canal])
  74. controls.wiimote.two([canal])
  75. controls.wiimote.up([canal])
  76. controls.wiimote.right([canal])
  77. controls.wiimote.down([canal])
  78. controls.wiimote.left([canal])
  79. controls.wiimote.a([canal])
  80. controls.wiimote.b([canal])
  81. controls.wiimote.home([canal])
  82. controls.wiimote.minus([canal])
  83. controls.wiimote.plus([canal])
  84. controls.wiimote.viewing([canal]) -- esta viendo a la sensor bar?
  85. controls.wiimote.irdot(número_de_led[,canal]) -- esta viendo a un led?
  86.  
  87. -- nunchuk
  88. controls.nunchuk.press("boton"[,canal]) -- bool
  89. controls.nunchuk.release("boton"[,canal]) -- bool
  90. controls.nunchuk.c([canal]) -- bool
  91. controls.nunchuk.z([canal]) -- bool
  92. controls.nunchuk.analogx([canal]) -- número (-128,128)
  93. controls.nunchuk.analogy([canal]) -- número (-128,128)
  94. controls.nunchuk.accelx([canal]) -- Acelerómetro horizontal, número
  95. controls.nunchuk.accely([canal]) -- Acelerómetro vertical, número
  96. controls.nunchuk.accelz([canal]) -- Acelerómetro de profundidad, número
  97. controls.nunchuk.gravx([canal]) -- fuerza aplicada al acelerómetro horizontal, número
  98. controls.nunchuk.gravy([canal]) -- fuerza aplicada al acelerómetro vertical, número
  99. controls.nunchuk.gravz([canal]) -- fuerza aplicada al acelerómetro profundidad, número
  100. controls.nunchuk.roll([canal]) -- grado de giro en X, número (-180,180)
  101. controls.nunchuk.pitch([canal]) -- grado de giro en Y, número (-180,180)
  102.  
  103. -- balance board (need testers)
  104. controls.balance.x([canal]) -- número (??,??)
  105. controls.balance.y([canal]) -- número (??,??)
  106. controls.balance.weight([canal]) -- número, peso en Kilogramos
  107.  
  108. -- motion plus (need testers)
  109. controls.wiimote.mpx([canal]) -- número (??,??)
  110. controls.wiimote.mpy([canal]) -- número (??,??)
  111. controls.wiimote.mpz([canal]) -- número (??,??)
  112.  
  113. -- classic control (numbers) (need testers)
  114. controls.classic.analoglx([canal]) -- número (-128,128)
  115. controls.classic.analogly([canal]) -- número (-128,128)
  116. controls.classic.analogrx([canal]) -- número (-128,128)
  117. controls.classic.analogry([canal]) -- número (-128,128)
  118.  
  119. -- classic control (booleans) (need testers)
  120. controls.classic.press("boton"[,canal])
  121. controls.classic.release("boton"[,canal])
  122. controls.classic.up([canal])
  123. controls.classic.left([canal])
  124. controls.classic.zr([canal])
  125. controls.classic.x([canal])
  126. controls.classic.a([canal])
  127. controls.classic.y([canal])
  128. controls.classic.b([canal])
  129. controls.classic.zl([canal])
  130. controls.classic.r([canal])
  131. controls.classic.plus([canal])
  132. controls.classic.home([canal])
  133. controls.classic.minus([canal])
  134. controls.classic.l([canal])
  135. controls.classic.down([canal])
  136. controls.classic.right([canal])
  137. controls.classic.setchan([canal]) -- default: 1, cambia el canal por default de TODAS las funciones de wiimote, esto incluye a las expansiones (ver controls.wiimote.expansion())
  138.  
  139. -- GameCube
  140. controls.gc.vib(on_off[,canal]) -- enciende o apaga el motor del gc, valores de on_off: 1 y 0
  141. controls.gc.setchan([canal]) -- default: 1, cambia el valor por default de lectura de TODAS las funciones de GC
  142. controls.gc.press("boton"[,canal])
  143. controls.gc.release("boton"[,canal])
  144. controls.gc.left([canal])
  145. controls.gc.right([canal])
  146. controls.gc.down([canal])
  147. controls.gc.up([canal])
  148. controls.gc.a([canal])
  149. controls.gc.x([canal])
  150. controls.gc.y([canal])
  151. controls.gc.b([canal])
  152. controls.gc.l([canal])
  153. controls.gc.r([canal])
  154. controls.gc.z([canal])
  155. controls.gc.start([canal])
  156.  
  157. controls.gc.analogl([canal]) -- número (0,255) presión aplicada al gatillo l
  158. controls.gc.analogr([canal]) -- número (0,255) presión aplicada al gatillo r
  159. controls.gc.analoglx([canal]) -- número (-128,127) análogo superior izquierdo
  160. controls.gc.analogly([canal]) -- número (-128,127) análogo superior izquierdo
  161. controls.gc.analogrx([canal]) -- número (-128,127) análogo inferior derecho, alias: C Buttons
  162. controls.gc.analogry([canal]) -- número (-128,127) análogo inferior derecho, alias: C Buttons
  163.  
  164. -- imágenes
  165. image.load("ruta") -- carga una imagen
  166. image.blit(x,y,imagen) o imagen:blit(x,y) -- blitea una imagen en pantalla
  167. image.blit(x,y,image,x,y,w,h) o imagen:blit(x,y,x,y,w,h) -- blitea parte de una imagen
  168. imagen_dest:blit(x,y,imagen_src) o image.blit(imagen_dest,x,y,imagen_src) -- blitea en imagen_dest, la imagen imagen_src, la posicion x,y indica en que parte de imagen_dest se bliteará
  169. imagen_dest:blit(x,y,imagen_src,x1,y1,w,h) o image.blit(imagen_dest,x,y,imagen_src,x1,y1,w,h) -- lo mismo de arriba, pero no blitea toda, solo una parte delimitada por x1,y1,w,h
  170. image.pixel(imagen,x,y[,color]) o imagen:pixel(x,y[,color]); -- pinta un pixel en una imagen, si no se especifica color, devuelve el color q tiene ese pixel
  171. image.pixel(x,y[,color]) -- pinta un pixel en pantalla, si no se especifica color, devuelve el color q tiene ese pixel
  172. image.free(imagen) o imagen:free() -- libera la ram ocupada por una imagen
  173. image.rotate(imagen,[x,y,]angulo) o imagen:rotate([x,y,]angulo) -- rota una imagen, angulo en grados, si se especifican x,y, rota en base a ese centro, sino, rota en el centro de la imagen
  174. image.resize(imagen,w,h) o imagen:resize(w,h) -- cambia el tamaño con el que se ve la imagen en pantalla
  175. imagen.width(imagen) o image:width() -- ancho actual, con resize y todo eso xD
  176. imagen.height(imagen) o image:height() -- alto actual, con resize y todo eso xD
  177. imagen.realwidth(imagen) o image:realwidth() -- ancho REAL de la imagen cargada
  178. imagen.realheight(imagen) o image:realheight() -- ancho REAL de la imagen cargada
  179. imagen.center(imagen[,x,y]) o imagen:center([x,y]) -- Ej: imagen:center(50,50) imagen:blit(10,10), en pantalla, en el punto 10, 10, estará el punto 50, 50 de la imagen
  180. image.reset() o imagen:reset() -- deja la imagen "de fábrica", sin resizes, rotate, ni nada...
  181. image.createempty(w,h[,color]) o image.create(w,h[,color]) -- crea una imagen de ancho w, y alto h, si se especifica color, será rellenada con ese color, caso contrario, será negro transparente
  182. image.clear(imagen[,color]) o imagen:clear([color]) -- Limpia una imagen, y la rellena con el color especificado, si no se especfica color, será negro transparente
  183. image.blend(x,y,imagen[,alfa]) o imagen:blend(x,y[,alfa]) -- como el blit clásico, pero con transparencia
  184. image.fxtint(x,y,imagen[,color]) o imagen:fxtint(x,y[,color]) -- como el blit clásico, pero con efecto de tintado de imagen
  185. image.factorscale(imagen,factor) o imagen:factorscale(factor) -- Reescala una imagen, pero multiplicando por un factor. factor = 100 = tamaño original (100%)
  186. image.save(ruta) -- Guarda una captura de pantalla en formato PNG, se pueden usar rutas relativas o absolutas. Esta función debe ser usada luego de dibujar todo lo que se quiera capturar, y antes del screen.flip()
  187.  
  188. -- draw
  189. draw.rect(x,y,w,h[,color]) -- dibuja el marco de un rectángulo en pantalla, default: blanco
  190. draw.fillrect(x,y,w,h[,color]) -- dibuja el un rectángulo relleno en pantalla, default: blanco
  191. draw.line(x1,y1,x2,y2[,color]) -- dibuja una línea en pantalla, default: blanco
  192. draw.circle(x,y,r[,color]) -- dibuja un círculo en pantalla, x,y son las coordenadas del centro, r es el radio, color default: blanco
  193. draw.fillcircle(x,y,r[,color]) -- lo mismo de arriba, pero relleno, default: blanco
  194. draw.gradrect(x,y,w,h,c1,c2,c3,c4) -- dibuja un rectángulo con degradado, colores: c1 (esquina sup izq), c2 (esquina sup der), c3 (inf izq), c4 (inf der)
  195. draw.gradline(x1,y1,x2,y2,c1,c2) -- dibuja una línea degradada c1 (color de x1,y1), c2 (color de x2,y2)
  196. draw.ngone(x,y,radio,sides[,color]) -- dibuja los lados de un polígono de n lados circunscrito (claro que el círculo, no se ve), x,y coordenadas del centro, r es el radio, color default: blanco
  197. draw.fillngone(x,y,radio,sides[,color]) -- lo de arriba, pero relleno default: blanco
  198.  
  199. -- miis (Por hacer: miis del mando, y miis.build para construir una imagen a partir de una tabla con las características, y miis.blit para mostrar un mii con las características dadas en la tabla, pero directamente en pantalla)
  200. miis.read() -- devuelve una tabla con todos los miis que se encontraron en la nand al ser inicializado este módulo
  201. --[[ Ejemplo con la estructura de los miis:
  202.  
  203. mis_miis = miis.read()
  204. mis_miis[x]: mii número x
  205.     sex: sexo del mii, "male" o "female"
  206.     month: mes
  207.     day: día
  208.     favcolor: color favorito (0-11)
  209.     favorite: es favorito? (boolean)
  210.     name: nombre (string)
  211.     creator: nombre del creador (string)
  212.     height: alto (0-127)
  213.     weight: peso (0-127)
  214.     skincolor: color de piel (0-5)
  215.     mingle: mezclado? (boolean)
  216.     downloaded: si ha sido bajado o no (boolean)
  217.     face: (cara) tabla
  218.         shape: forma (0-7)
  219.         feature: carácter facial (0-11)
  220.         haircolor: color de vello facial (0-7)
  221.         beard: tipo de barba (0-3)
  222.     hair: (cabello) tabla
  223.         type: tipo (0-71)
  224.         color: color (0-7)
  225.         reversed: esta invertido? (boolean)
  226.     eyebrows: (cejas) tabla
  227.         type: tipo (0-23)
  228.         rotation: rotación de las cejas (0-11)
  229.         color: color de las cejas (0-7)
  230.         size: tamaño de las cejas (0-8)
  231.         y: posicion vertical (3-18)
  232.         spacing: espaciado entre las cejas (0-12)
  233.     eyes: (ojos) tabla
  234.         type: tipo (0-47)
  235.         rotation: rotación de las cejas (0-7)
  236.         color: color de las cejas (0-5)
  237.         size: tamaño de las cejas (0-7)
  238.         y: posicion vertical (0-18)
  239.         spacing: espaciado entre las cejas (0-12)
  240.     nose: (nariz) tabla
  241.         type: tipo (0-11)
  242.         size: tamaño (0-8)
  243.         y: posicion vertical (0-18)
  244.     lips: (labios) tabla
  245.         type: tipo (0-23)
  246.         color: color de los labios (0-2)
  247.         size: tamaño de los labios (0-8)
  248.         y: posicion vertical (0-18)
  249.     glasses: (gafas) tabla
  250.         type: tipo (0-8)
  251.         color: color (0-5)
  252.         size: tamaño (0-7)
  253.         y: posicion vertical (0-20)
  254.     mustache: (bigote) tabla
  255.         type: tipo (0-3)
  256.         size: tamaño (0-8)
  257.         y: posicion vertical (0-16)
  258.     mole: (lunar) mole
  259.         have: tiene o no? (boolean)
  260.         size: tamaño (0-8)
  261.         y: posicion vertical (0-30)
  262.         x: posicion horizontal (0-16)
  263. --]]
  264.  
  265. os.exit() u os.quit() -- salir
  266. os.clock() -- milisecs
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement