Академический Документы
Профессиональный Документы
Культура Документы
Estructurabsica
ElcdigodeunvideojuegoenLuainvolucralacargadecontenidoyladefinicindevariables. Ejemplo:
s p r i t e=S p r i t e . n e w ( " H e r o i n e . p n g " ,1 6 ,1 8 ,V R A M ) b a c k g r o u n d=I m a g e . l o a d ( " B a c k g r o u n d M C . p n g " ,V R A M ) s c o r e=0 l i f e s=3
Tambinenestaprimerapartedelcdigoserecomiendaagregartodaslasfuncionesautilizar enelvideojuego.Porejemplo:
f u n c t i o np r i n t S c o r e ( s c o r e ) s c r e e n . p r i n t ( S C R E E N _ D O W N ,1 5 ,2 0 ," S c o r e :". .s c o r e ) e n d
HolamundoenLua
Lonicoqueserequierehaceresescribirelsiguientecdigoencualquiereditordetextoy
guardarloconextensin.lua.
w h i l et r u ed o C o n t r o l s . r e a d ( ) s c r e e n . p r i n t ( S C R E E N _ U P ,1 0 ,1 0 ," H e l l ow o r l d . " ) r e n d e r ( ) e n d
LaejecucindeMicroLuaSimulatordependedecadasistemaoperativo,bsicamenteconsisteen ejecutarelarchivomls.
Ejemplosdecdigo2
Elpropsitodelossiguientesejemplosradicaenobservarlassimilitudesqueguardanla estructuradeunjuegoenLuaconlavistaenelframeworkXNA.
Cambiarcolordelbackground
c o l o r 1=C o l o r . n e w ( 1 0 ,1 0 ,2 0 ) c o l o r 2=C o l o r . n e w ( 3 1 ,3 1 ,3 1 )-c o l o rb l a n c o w h i l en o tK e y s . n e w P r e s s . S t a r td o C o n t r o l s . r e a d ( ) -P a n t a l l as u p e r i o r s c r e e n . d r a w F i l l R e c t ( S C R E E N _ U P ,0 ,0 ,S C R E E N _ W I D T H ,S C R E E N _ H E I G H T ,c o l o r 1 ) -P a n t a l l ai n f e r i o r s c r e e n . d r a w F i l l R e c t ( S C R E E N _ D O W N ,0 ,0 ,S C R E E N _ W I D T H ,S C R E E N _ H E I G H T ,c o l o r 2 ) s c r e e n . p r i n t ( S C R E E N _ U P ,1 0 ,1 0 ," H e l l ow o r l d . " ) r e n d e r ( ) e n d
Todoslosejemplossepuedenobtenerenlasiguientedireccin(documentados,listosparausarsey modificarse):https://docs.google.com/file/d/0B4FKTO6ZcDTvNW5Ic3hOekx2R2M/edit
Dibujarimgenes
c o l o r=C o l o r . n e w ( 1 0 ,1 0 ,2 0 ) i m a g e n=I m a g e . l o a d ( " I m a g e n e s / A y a n a m i . p n g " ,V R A M ) w h i l en o tK e y s . n e w P r e s s . S t a r td o C o n t r o l s . r e a d ( ) -B a c k g r o u n d s c r e e n . d r a w F i l l R e c t ( S C R E E N _ U P ,0 ,0 ,S C R E E N _ W I D T H ,S C R E E N _ H E I G H T ,c o l o r ) -D i b u j a ri m a g e n s c r e e n . b l i t ( S C R E E N _ U P ,3 0 ,2 0 ,i m a g e n ) r e n d e r ( ) e n d
Aplicarefectosaimgenes
Lassiguienteslneasdecdigoagreganlosefectosnombrados:
-E s c a l a ri m a g e n I m a g e . s c a l e ( i m a g e n ,7 2 ,2 4 6 )-n u e v oa n c h oyl a r g od el ai m a g e n -R o t a ri m a g e n I m a g e . r o t a t e ( i m a g e n ,4 7 0 )-r a d i a n e s( 0a5 1 1 ) I m a g e . r o t a t e D e g r e e ( i m a g e n ,3 3 0 )-g r a d o s( 0a3 6 0 ) -E f e c t oe s p e j o I m a g e . m i r r o r H ( i m a g e n ,t r u e )-b o o l e a n op a r aa c t i v a d o / d e s a c t i v a d o I m a g e . m i r r o r V ( i m a g e n ,t r u e ) -T i n t e I m a g e . s e t T i n t ( i m a g e n ,C o l o r . n e w ( 1 0 , 2 0 , 3 0 ))
Posicionarimgenes
Sobrecmoalinearocolocarimgenesenlaposicincorrectadelapantalla.
i m a g e n=I m a g e . l o a d ( " I m a g e n e s / A y a n a m i . p n g " ,V R A M ) a n c h o=I m a g e . w i d t h ( i m a g e n ) l a r g o=I m a g e . h e i g h t ( i m a g e n ) w h i l en o tK e y s . n e w P r e s s . S t a r td o C o n t r o l s . r e a d ( ) -B a c k g r o u n d s c r e e n . d r a w F i l l R e c t ( S C R E E N _ U P ,0 ,0 ,S C R E E N _ W I D T H ,S C R E E N _ H E I G H T ,C o l o r . n e w ( 1 0 , 1 0 ,2 0 ) ) -D i b u j a ri m a g e nc e n t r a d ad e ll a d od e r e c h o s c r e e n . b l i t ( S C R E E N _ U P ,0 ,( S C R E E N _ H E I G H T / 2 ) ( l a r g o / 2 ) ,i m a g e n )
-D i b u j a ri m a g e ne ne s q u i n ai n f e r i o rd e r e c h a s c r e e n . b l i t ( S C R E E N _ U P ,S C R E E N _ W I D T H a n c h o ,S C R E E N _ H E I G H T l a r g o ,i m a g e n ) -D i b u j a ri m a g e ne nc e n t r od ep a n t a l l a s c r e e n . b l i t ( S C R E E N _ U P ,( S C R E E N _ W I D T H / 2 ) ( a n c h o / 2 ) ,( S C R E E N _ H E I G H T / 2 ) ( l a r g o / 2 ) , i m a g e n ) r e n d e r ( ) e n d
Moverimgenesautomticamente
Cmohacermoverunaimagendeunladoaotro(horizontalmente)yquerebotedemaneraque nosesalgadelapantalla.
i m a g e n=I m a g e . l o a d ( " I m a g e n e s / A y a n a m i . p n g " ,V R A M ) a n c h o=I m a g e . w i d t h ( i m a g e n ) l a r g o=I m a g e . h e i g h t ( i m a g e n )
Entradadelusuario
Cmointerpretarcuandoelusuariopresionalosbotonesolapantallatctilparamoverla imagenenelespaciodelapantalla.
i m a g e n=I m a g e . l o a d ( " I m a g e n e s / A y a n a m i . p n g " ,V R A M ) x=0 y=0 v e l o c i d a d=2 w h i l en o tK e y s . n e w P r e s s . S t a r td o C o n t r o l s . r e a d ( ) -" A C T U A L I Z A R " -U s a n d oe lc o n t r o lp a dp a r am o v e rl ai m a g e n i fK e y s . h e l d . U pt h e n y=y-v e l o c i d a d e n d i fK e y s . h e l d . D o w nt h e n
Animacin
Elalgoritmodeanimacinsebasaentenerunspritesheetenelcualsedibujaunframe diferenteencadamomentoparacrearlailusindemovimiento. ElspritesheetdentrodelcdigonoestratadocomountipoImagesinocomountipoSprite. Losframesseenumeranautomticamenteapartirdelvalorceroycrearunaanimacinse limitaaindicarlasecuenciadeestosvalores.
s p r i t e=S p r i t e . n e w ( " I m a g e n e s / s p r i t e . p n g " ,2 4 ,3 2 ,V R A M )-c a d af r a m em i d e2 4 x 3 2p x . -C r e a rl a sa n i m a c i o n e s s p r i t e : a d d A n i m a t i o n ( { 0 , 1 , 2 , 1 } ,3 0 0 ) s p r i t e : a d d A n i m a t i o n ( { 3 , 4 , 5 , 4 } ,3 0 0 ) s p r i t e : a d d A n i m a t i o n ( { 6 , 7 , 8 , 7 } ,3 0 0 ) -A n i m a c i o n1 -A n i m a c i o n2 -A n i m a c i o n3
s p r i t e : a d d A n i m a t i o n ( { 9 , 1 0 , 1 1 , 1 0 } ,3 0 0 ) -A n i m a c i o n4 w h i l en o tK e y s . n e w P r e s s . S t a r td o
C o n t r o l s . r e a d ( ) -B a c k g r o u n d s c r e e n . d r a w F i l l R e c t ( S C R E E N _ U P ,0 ,0 ,S C R E E N _ W I D T H ,S C R E E N _ H E I G H T ,C o l o r . n e w ( 1 0 , 1 0 ,2 0 ) ) -M o s t r a ra n i m a c i o n1 s p r i t e : p l a y A n i m a t i o n ( S C R E E N _ U P ,1 0 ,1 0 ,1 ) -M o s t r a ra n i m a c i o n2 s p r i t e : p l a y A n i m a t i o n ( S C R E E N _ U P ,6 0 ,1 0 ,2 ) -M o s t r a ra n i m a c i o n3 s p r i t e : p l a y A n i m a t i o n ( S C R E E N _ U P ,1 1 0 ,1 0 ,3 ) -M o s t r a ra n i m a c i o n4 s p r i t e : p l a y A n i m a t i o n ( S C R E E N _ U P ,1 6 0 ,1 0 ,4 ) r e n d e r ( ) e n d
Colisiones
ElmanejodecolisionesenMicroLuaDSnoestimplementadoexplcitamente,asquesedebe implementardentrodeunafuncin. Acontinuacinsemuestraelpseudocdigoparacolisionesbasadasencajas(boundingbox):
b o o l D o B o x e s I n t e r s e c t ( B o x a , B o x b ) { r e t u r n ( a b s ( a . x b . x ) * 2 < ( a . w i d t h + b . w i d t h ) ) & & ( a b s ( a . y b . y ) * 2 < ( a . h e i g h t + b . h e i g h t ) ) }
1 0 ,2 0 ) ) -D i b u j a ri m a g e n e s s c r e e n . b l i t ( S C R E E N _ D O W N ,x ,y ,i m a g e n ) s c r e e n . b l i t ( S C R E E N _ D O W N ,x 2 ,y 2 ,i m a g e n 2 ) i fc o l l i s i o n D e t e c t i o n ( )t h e n s c r e e n . p r i n t ( S C R E E N _ D O W N ,1 0 ,1 0 ," C o l i s i o nd e t e c t a d a ! " ) e n d r e n d e r ( ) e n d