From c3c534c82287a18c0c91636d358568a0987c0c8f Mon Sep 17 00:00:00 2001 From: Ivan Safrin Date: Tue, 15 Nov 2011 00:31:31 -0500 Subject: [PATCH] Started on Lua examples --- Examples/Lua/2DAudio/2DAudio.lua | 28 ++++++++++ Examples/Lua/2DAudio/2DAudio.xml | 7 +++ Examples/Lua/2DAudio/test.wav | Bin 0 -> 19662 bytes Examples/Lua/2DParticles/2DParticles.lua | 34 ++++++++++++ Examples/Lua/2DParticles/2DParticles.xml | 7 +++ Examples/Lua/2DParticles/particle.png | Bin 0 -> 1219 bytes .../Lua/2DPhysics_Basic/2DPhysics_Basic.lua | 12 +++++ .../Lua/2DPhysics_Basic/2DPhysics_Basic.xml | 7 +++ .../2DPhysics_CollisionOnly.lua | 44 +++++++++++++++ .../2DPhysics_CollisionOnly.xml | 7 +++ .../2DPhysics_Contacts/2DPhysics_Contacts.lua | 34 ++++++++++++ .../2DPhysics_Contacts/2DPhysics_Contacts.xml | 10 ++++ Examples/Lua/2DPhysics_Contacts/collision.wav | Bin 0 -> 12980 bytes .../Lua/2DPhysics_Joints/2DPhysics_Joints.lua | 36 +++++++++++++ .../Lua/2DPhysics_Joints/2DPhysics_Joints.xml | 7 +++ .../2DPhysics_PointCollision.lua | 20 +++++++ .../2DPhysics_PointCollision.xml | 7 +++ Examples/Lua/2DTransforms/2DTransforms.lua | 9 ++++ Examples/Lua/2DTransforms/2DTransforms.xml | 7 +++ Examples/Lua/2DTransforms/polycode_logo.png | Bin 0 -> 13652 bytes Examples/Lua/3DAudio/3DAudio.lua | 26 +++++++++ Examples/Lua/3DAudio/3DAudio.xml | 7 +++ Examples/Lua/3DAudio/test.wav | Bin 0 -> 19662 bytes Examples/Lua/3DBasics/3DBasics.lua | 13 +++++ Examples/Lua/3DBasics/3DBasics.xml | 8 +++ Examples/Lua/3DBasics/green_texture.png | Bin 0 -> 3159 bytes Examples/Lua/3DBasics/pink_texture.png | Bin 0 -> 3191 bytes .../Lua/AdvancedLighting/AdvancedLighting.lua | 50 ++++++++++++++++++ .../Lua/AdvancedLighting/AdvancedLighting.xml | 7 +++ .../AdvancedLighting/Resources/example.mat | 26 +++++++++ .../Resources/green_texture.png | Bin 0 -> 3159 bytes .../Resources/pink_texture.png | Bin 0 -> 3191 bytes Examples/Lua/BasicImage/BasicImage.lua | 3 ++ Examples/Lua/BasicImage/BasicImage.xml | 7 +++ Examples/Lua/BasicImage/polycode_logo.png | Bin 0 -> 13652 bytes Examples/Lua/BasicLighting/BasicLighting.lua | 18 +++++++ Examples/Lua/BasicLighting/BasicLighting.xml | 7 +++ .../Lua/BasicLighting/Resources/example.mat | 26 +++++++++ .../BasicLighting/Resources/green_texture.png | Bin 0 -> 3159 bytes .../BasicLighting/Resources/pink_texture.png | Bin 0 -> 3191 bytes Examples/Lua/BasicText/BasicText.lua | 3 ++ Examples/Lua/BasicText/BasicText.xml | 4 ++ Examples/Lua/EventHandling/EventHandling.lua | 22 ++++++++ Examples/Lua/EventHandling/EventHandling.xml | 7 +++ Examples/Lua/EventHandling/polycode_logo.png | Bin 0 -> 13652 bytes Examples/Lua/KeyboardInput/KeyboardInput.lua | 46 ++++++++++++++++ Examples/Lua/KeyboardInput/KeyboardInput.xml | 7 +++ Examples/Lua/KeyboardInput/polycode_logo.png | Bin 0 -> 13652 bytes Examples/Lua/MouseInput/MouseInput.lua | 33 ++++++++++++ Examples/Lua/MouseInput/MouseInput.xml | 7 +++ Examples/Lua/MouseInput/polycode_logo.png | Bin 0 -> 13652 bytes Examples/Lua/PlayingSounds/PlayingSounds.lua | 17 ++++++ Examples/Lua/PlayingSounds/PlayingSounds.xml | 7 +++ Examples/Lua/PlayingSounds/test.wav | Bin 0 -> 19662 bytes .../Lua/ScreenEntities/ScreenEntities.lua | 28 ++++++++++ .../Lua/ScreenEntities/ScreenEntities.xml | 4 ++ 56 files changed, 659 insertions(+) create mode 100644 Examples/Lua/2DAudio/2DAudio.lua create mode 100644 Examples/Lua/2DAudio/2DAudio.xml create mode 100644 Examples/Lua/2DAudio/test.wav create mode 100644 Examples/Lua/2DParticles/2DParticles.lua create mode 100644 Examples/Lua/2DParticles/2DParticles.xml create mode 100644 Examples/Lua/2DParticles/particle.png create mode 100644 Examples/Lua/2DPhysics_Basic/2DPhysics_Basic.lua create mode 100644 Examples/Lua/2DPhysics_Basic/2DPhysics_Basic.xml create mode 100644 Examples/Lua/2DPhysics_CollisionOnly/2DPhysics_CollisionOnly.lua create mode 100644 Examples/Lua/2DPhysics_CollisionOnly/2DPhysics_CollisionOnly.xml create mode 100644 Examples/Lua/2DPhysics_Contacts/2DPhysics_Contacts.lua create mode 100644 Examples/Lua/2DPhysics_Contacts/2DPhysics_Contacts.xml create mode 100644 Examples/Lua/2DPhysics_Contacts/collision.wav create mode 100644 Examples/Lua/2DPhysics_Joints/2DPhysics_Joints.lua create mode 100644 Examples/Lua/2DPhysics_Joints/2DPhysics_Joints.xml create mode 100644 Examples/Lua/2DPhysics_PointCollision/2DPhysics_PointCollision.lua create mode 100644 Examples/Lua/2DPhysics_PointCollision/2DPhysics_PointCollision.xml create mode 100644 Examples/Lua/2DTransforms/2DTransforms.lua create mode 100644 Examples/Lua/2DTransforms/2DTransforms.xml create mode 100644 Examples/Lua/2DTransforms/polycode_logo.png create mode 100644 Examples/Lua/3DAudio/3DAudio.lua create mode 100644 Examples/Lua/3DAudio/3DAudio.xml create mode 100644 Examples/Lua/3DAudio/test.wav create mode 100644 Examples/Lua/3DBasics/3DBasics.lua create mode 100644 Examples/Lua/3DBasics/3DBasics.xml create mode 100644 Examples/Lua/3DBasics/green_texture.png create mode 100644 Examples/Lua/3DBasics/pink_texture.png create mode 100644 Examples/Lua/AdvancedLighting/AdvancedLighting.lua create mode 100644 Examples/Lua/AdvancedLighting/AdvancedLighting.xml create mode 100644 Examples/Lua/AdvancedLighting/Resources/example.mat create mode 100644 Examples/Lua/AdvancedLighting/Resources/green_texture.png create mode 100644 Examples/Lua/AdvancedLighting/Resources/pink_texture.png create mode 100644 Examples/Lua/BasicImage/BasicImage.lua create mode 100644 Examples/Lua/BasicImage/BasicImage.xml create mode 100644 Examples/Lua/BasicImage/polycode_logo.png create mode 100644 Examples/Lua/BasicLighting/BasicLighting.lua create mode 100644 Examples/Lua/BasicLighting/BasicLighting.xml create mode 100644 Examples/Lua/BasicLighting/Resources/example.mat create mode 100644 Examples/Lua/BasicLighting/Resources/green_texture.png create mode 100644 Examples/Lua/BasicLighting/Resources/pink_texture.png create mode 100644 Examples/Lua/BasicText/BasicText.lua create mode 100644 Examples/Lua/BasicText/BasicText.xml create mode 100644 Examples/Lua/EventHandling/EventHandling.lua create mode 100644 Examples/Lua/EventHandling/EventHandling.xml create mode 100644 Examples/Lua/EventHandling/polycode_logo.png create mode 100644 Examples/Lua/KeyboardInput/KeyboardInput.lua create mode 100644 Examples/Lua/KeyboardInput/KeyboardInput.xml create mode 100644 Examples/Lua/KeyboardInput/polycode_logo.png create mode 100644 Examples/Lua/MouseInput/MouseInput.lua create mode 100644 Examples/Lua/MouseInput/MouseInput.xml create mode 100644 Examples/Lua/MouseInput/polycode_logo.png create mode 100644 Examples/Lua/PlayingSounds/PlayingSounds.lua create mode 100644 Examples/Lua/PlayingSounds/PlayingSounds.xml create mode 100644 Examples/Lua/PlayingSounds/test.wav create mode 100644 Examples/Lua/ScreenEntities/ScreenEntities.lua create mode 100644 Examples/Lua/ScreenEntities/ScreenEntities.xml diff --git a/Examples/Lua/2DAudio/2DAudio.lua b/Examples/Lua/2DAudio/2DAudio.lua new file mode 100644 index 000000000..42555a181 --- /dev/null +++ b/Examples/Lua/2DAudio/2DAudio.lua @@ -0,0 +1,28 @@ +screen = Screen() + +sourceEntity = ScreenEntity() +testSound = ScreenSound("test.wav", 200, 600) +testSound:getSound():Play(true) +sourceEntity:addChild(testSound) +soundShape = ScreenShape(SHAPE_CIRCLE, 20,20,10) +sourceEntity:addChild(soundShape) +screen:addChild(sourceEntity) + +listenerEntity = ScreenEntity() +soundListener = ScreenSoundListener() +listenerEntity:addChild(soundListener) +soundShape = ScreenShape(SHAPE_CIRCLE, 20,20,10) +soundShape:setColor(0.0, 1.0, 0.0, 1.0) +listenerEntity:addChild(soundShape) +screen:addChild(listenerEntity) + +listenerPositionValue = 0 +positionValue = 0 + +function Update(elapsed) + positionValue = positionValue + elapsed + listenerPositionValue = listenerPositionValue + elapsed * 0.3 + + sourceEntity:setPosition(300 + (sin(positionValue) * 300), 250 + cos(positionValue) * 100) + listenerEntity:setPosition(300 + (sin(listenerPositionValue) * 300), 250) +end diff --git a/Examples/Lua/2DAudio/2DAudio.xml b/Examples/Lua/2DAudio/2DAudio.xml new file mode 100644 index 000000000..3023a6630 --- /dev/null +++ b/Examples/Lua/2DAudio/2DAudio.xml @@ -0,0 +1,7 @@ + + + 2DAudio.lua + + + + diff --git a/Examples/Lua/2DAudio/test.wav b/Examples/Lua/2DAudio/test.wav new file mode 100644 index 0000000000000000000000000000000000000000..fe93d90915d8bb8f9abd9d05d45339237a4e6e64 GIT binary patch literal 19662 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 W%0wY5X!JfRQ3*$^CzjDh%KQgcIq4Aq literal 0 HcmV?d00001 diff --git a/Examples/Lua/2DParticles/2DParticles.lua b/Examples/Lua/2DParticles/2DParticles.lua new file mode 100644 index 000000000..95d3ac1c7 --- /dev/null +++ b/Examples/Lua/2DParticles/2DParticles.lua @@ -0,0 +1,34 @@ +screen = Screen() +emitter = ScreenParticleEmitter("particle.png", screen, BILLBOARD_PARTICLE, + CONTINUOUS_EMITTER, 4, 200, Vector3(0.0,-50.0,0.0), Vector3(0.0,0.0,0.0), + Vector3(20.5, 40.0, 0.0)) + +emitter:getEmitter().useScaleCurves = true +emitter:getEmitter().scaleCurve:addControlPoint2d(0, 0.3) +emitter:getEmitter().scaleCurve:addControlPoint2d(0.5, 1) +emitter:getEmitter().scaleCurve:addControlPoint2d(1, 0) + +emitter:getEmitter().useColorCurves = true +emitter:getEmitter().colorCurveR:addControlPoint2d(0, 0.3) +emitter:getEmitter().colorCurveR:addControlPoint2d(0.1, 1) +emitter:getEmitter().colorCurveR:addControlPoint2d(0.4, 1) +emitter:getEmitter().colorCurveR:addControlPoint2d(0.5, 0) +emitter:getEmitter().colorCurveR:addControlPoint2d(1, 0) + +emitter:getEmitter().colorCurveG:addControlPoint2d(0, 0.3) +emitter:getEmitter().colorCurveG:addControlPoint2d(0.1, 0.6) +emitter:getEmitter().colorCurveG:addControlPoint2d(0.4, 0.6) +emitter:getEmitter().colorCurveG:addControlPoint2d(0.5, 0) +emitter:getEmitter().colorCurveG:addControlPoint2d(1, 0.0) + +emitter:getEmitter().colorCurveB:addControlPoint2d(0, 1) +emitter:getEmitter().colorCurveB:addControlPoint2d(0.1, 0) +emitter:getEmitter().colorCurveB:addControlPoint2d(1, 0) + +emitter:getEmitter().colorCurveA:addControlPoint2d(0, 0) +emitter:getEmitter().colorCurveA:addControlPoint2d(0.05, 1) +emitter:getEmitter().colorCurveA:addControlPoint2d(0.6, 1) +emitter:getEmitter().colorCurveA:addControlPoint2d(1, 0) + +emitter:setPosition(640/2, 400) +screen:addChild(emitter) diff --git a/Examples/Lua/2DParticles/2DParticles.xml b/Examples/Lua/2DParticles/2DParticles.xml new file mode 100644 index 000000000..70d5a5344 --- /dev/null +++ b/Examples/Lua/2DParticles/2DParticles.xml @@ -0,0 +1,7 @@ + + + 2DParticles.lua + + + + diff --git a/Examples/Lua/2DParticles/particle.png b/Examples/Lua/2DParticles/particle.png new file mode 100644 index 0000000000000000000000000000000000000000..1fc1d9eeb25f34806dc78e69f04e710ce06e2aac GIT binary patch literal 1219 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%u1Od5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|80+w{G(j&jGsVi$)ZE$4(#+J!+|kU?(AB`g*wW0|)Xmx1&A`pj z(!?32*Cju>G&eP`1g19yq1OzjUQklVEdbi=l3J8mmYU*Ll%J~r_OewbZnqfYG!Lpb z1-DyFaO%|uIz}H9u}BdO69T3l5EGtkfgE_kPt60S_99@iPDnbukb!~G+|$J|q~cc6 zpa1{u4?8fawK1|e-(#HV@W!{3u}5SHqoTq--XrfDBBVR&FIuxiE$9nid}LD9-oPj@ zpD`&-LtcbyRlqDgMFYu`MG+-iCZq~!uy`B^{J*i;-XX_fRppYXbIeEl|2<}l&UoAK z?SD(7xn|m=NgPWXf3OLB76>SBpOWM0rSwMWP!U_kwlmAi%(gH-I;>(b?M05K4~K#C zX4#cXQ@FQoN_Yf=xYyiuc;n_NvLztFl4FO^D&3E*3{{o>dIx6f z&h*fDf0A`UPNYkgQqM2{*bj^ytsS~uoKwF)Y0A7I)1b@sY2i`5t&UPAu@8M)j!Xjz zD?8+L>kF1$yigP|@m;Sri-+#}m6LR5YG{C{M8yY=WwZNiKCpJwI+#4pxL + + 2DPhysics_Basic.lua + + Physics2D + + diff --git a/Examples/Lua/2DPhysics_CollisionOnly/2DPhysics_CollisionOnly.lua b/Examples/Lua/2DPhysics_CollisionOnly/2DPhysics_CollisionOnly.lua new file mode 100644 index 000000000..996cada9e --- /dev/null +++ b/Examples/Lua/2DPhysics_CollisionOnly/2DPhysics_CollisionOnly.lua @@ -0,0 +1,44 @@ +class "Detector" (EventHandler) + +function Detector:Detector(shape) + self.shape = shape + self:EventHandler() +end + +function Detector:handleEvent(e) + if e:getDispatcher() == screen then + local pe = PhysicsScreenEvent(e) + if e:getEventCode() == EVENT_NEW_SHAPE_COLLISION then + if pe:getFirstEntity() == self.shape or pe:getSecondEntity() == self.shape then + pe:getFirstEntity():setColor(1.0, 0.0, 0.0, 1.0) + pe:getSecondEntity():setColor(1.0, 0.0, 0.0, 1.0) + end + elseif e:getEventCode() == EVENT_END_SHAPE_COLLISION then + pe:getFirstEntity():setColor(1.0, 1.0, 1.0, 1.0) + pe:getSecondEntity():setColor(1.0, 1.0, 1.0, 1.0) + end + end +end + +screen = PhysicsScreen(10, 60) + +checkShape = ScreenShape(SHAPE_RECT, 90,10) +screen:addCollisionChild(checkShape, ENTITY_RECT) + +for i=0,50 do + shape = ScreenShape(SHAPE_RECT, 30,15) + shape:setRotation(random(360)) + shape:setPosition(random(640), random(480)) + screen:addCollisionChild(shape, ENTITY_RECT) +end + +detector = Detector(checkShape) +screen:addEventListener(detector, EVENT_NEW_SHAPE_COLLISION) +screen:addEventListener(detector, EVENT_END_SHAPE_COLLISION) + +function Update(e) + local mouse = Services.Core:getInput():getMousePosition() + checkShape:setPosition(mouse.x, mouse.y) + checkShape:setRotation(checkShape:getRotation() + (e*100)) + delete(mouse) +end diff --git a/Examples/Lua/2DPhysics_CollisionOnly/2DPhysics_CollisionOnly.xml b/Examples/Lua/2DPhysics_CollisionOnly/2DPhysics_CollisionOnly.xml new file mode 100644 index 000000000..03693d9bf --- /dev/null +++ b/Examples/Lua/2DPhysics_CollisionOnly/2DPhysics_CollisionOnly.xml @@ -0,0 +1,7 @@ + + + 2DPhysics_CollisionOnly.lua + + Physics2D + + diff --git a/Examples/Lua/2DPhysics_Contacts/2DPhysics_Contacts.lua b/Examples/Lua/2DPhysics_Contacts/2DPhysics_Contacts.lua new file mode 100644 index 000000000..a4ca1ec87 --- /dev/null +++ b/Examples/Lua/2DPhysics_Contacts/2DPhysics_Contacts.lua @@ -0,0 +1,34 @@ +class "ImpactNoise" (EventHandler) + +function ImpactNoise:ImpactNoise() + self.collisionSound = Sound("collision.wav") + self:EventHandler() +end + +function ImpactNoise:handleEvent(e) + if e:getDispatcher() == screen then + local pe = PhysicsScreenEvent(e) + if e:getEventCode() == EVENT_NEW_SHAPE_COLLISION then + if pe.impactStrength > 5 then + self.collisionSound:Play() + end + end + end +end + +screen = PhysicsScreen(10, 60) +shape = ScreenShape(SHAPE_RECT, 600,30) +shape:setColor(0.0,0.0,0.0,1.0) +shape:setPosition(640/2, 400) +screen:addPhysicsChild(shape, ENTITY_RECT, true) + +for i=0,50 do + shape = ScreenShape(SHAPE_RECT, 20,5) + shape:setRotation(random(360)) + shape:setPosition(random(640), random(300)) + screen:addPhysicsChild(shape, ENTITY_RECT, false) +end + +noiseMaker = ImpactNoise() + +screen:addEventListener(noiseMaker, EVENT_NEW_SHAPE_COLLISION) diff --git a/Examples/Lua/2DPhysics_Contacts/2DPhysics_Contacts.xml b/Examples/Lua/2DPhysics_Contacts/2DPhysics_Contacts.xml new file mode 100644 index 000000000..8ac3056ce --- /dev/null +++ b/Examples/Lua/2DPhysics_Contacts/2DPhysics_Contacts.xml @@ -0,0 +1,10 @@ + + + 2DPhysics_Contacts.lua + + Physics2D + + + + + diff --git a/Examples/Lua/2DPhysics_Contacts/collision.wav b/Examples/Lua/2DPhysics_Contacts/collision.wav new file mode 100644 index 0000000000000000000000000000000000000000..ca6bc37bad14fb2dfa233f078cda9c797a554820 GIT binary patch literal 12980 zcmeI&iCZGP5q<=e`-l;%ENQQYduE00eJ>2Z!a8IdXBxgjw@m;4S@J7$bB%%;tW zzg*<>72dEfvW8po%T@r_^f!G^8OU zR&FfL5v=wUn_@XyzS%sqY;5VmlIc(Lit8Kd#pl%95M5BKdHAuAEkW7-4@__QNM1)_ zHQi2%! zsh`ob&wI7kTF9e}bW-xAcf?TVUB_Yjm$o!(w&i|#gYrq{vt@>|k4xo})RMcl(Frd# z=v8k^bn{3t+*u>B`l7%v|C6SzK3k2)3?}GH&yrC}s9Y#!JGTit97pVrZS`!))?7=J zCAFNHQ_LaeZDn1{%1Squ9w*%rJH^k5b=KKldqvG1VUCaq!2y9+{0^Be_)ud{uN-K{ z?x?HC2&DtQs&?WO=LX@jBhoR!e%khuZKt)FHOKOy#ov-uKB(NU{D}E8b0>3av$y$^ zAT_am!-a7PbxD*l^3{k@ET-5uu?uRc9?Hke|xL4pz|1-WVP5XWNdj}dX8M0vu+e{Crw@D=FulyjZ z(nRToI7}>bPH{3}yD&r`jy%VBN0Ot=o^M}hPqufn*R&h#*K8+jdA9YouWVCoQ?L!O z4YwuR`rfFFJ#r z#lmSJOZZBdC5#aU2pxqaAyJ4C!i6BgBzOtTp*jdQ>HxtgL<@C=`a*)xRA?oLd-tY$i%G@UfRjtECKSo3vZnFBM3) zrTbE;NYh?{aMXb52^*~DfNPSRV`HSsQ1)T z)uK97NmW%74WPj^l19_IG=Vmzt!NT$OWV<|v>WY9`_aL4I2}R9(ursqoki!-xpX02 zN>|dgbOYT)GwF7kMR(J^G?yNrM`!^(NiWeW^g1o1f6zbaLt0ABRG=c2C@=%_Wx=dE zi$KvV7Byr|SPPcKUSO@+tE@fi#9m`PSZ~&ky}<^tA?#f?nvG%O*myRXO=Z*AEH<0X zXDMtkT837$Rct-WVCif#%VgVG7Tdvgu{~@r+sE?QL3Wtsv(xM>JI5}ti|huw$qLzB z_B(ojidh-5G7EDsiK$Fsj2XZis(~K_KoC@i8W08%P!l2{2I@jRh(`^fF=~dMM@i5c zUWGQ$7TQAx=nP$<8+3=)p%?UqKF}BX!9W;E!ZKVsVrdtfhQqa3s!<-)J%ARLB6a0HG*zSauh7#xQaaN6Y@oJHs1B3yt= za9L|t;3`~0*U=4BsJRWd;5WE~?JoQdMXtUG{&aZ&_t8Umfb9`H*4h(z0>zpV;7UpJ}w-t%kp_Uvu!FW2+$bnc({>mybECVo5ref%2U^Jl~Rf6||~-n(Cq{`z>&U#*U3 z;Kno2Ri?$00 zZJhG4%E#a8?Z9z(y&UU!FtU)tXb=@a_QD!6M{coZ5pcX_atk$|gHErfDWIDV+&q`LSa0WQb(h!PIWC_9 zH``?vR_0k)pLH{_R&yU~W`J%wR&nklmubLFb(w;do}27432Q(1q02;E4Y&_n-Un_% zh4Hv%aPPT{1Kn6$O}H^G$+*IBqg_UU8()36kuD>^jjv7II~9h3?rm`6YZy1A!dsvl z3~qd_(+$Lxk9)Ji8{jqo-1>uCKU^zyeR18?^}#h%*BjSUT`yc)bv>cd>$v9XdVpJZ zT#4Pf;kvAQ4JviT^;*{jDs{$n+^rM1b%aVCaIJUyFH~xeyMRjVK=&Vb8TSb-p(!Nd z?ja6$646i_cNO8dzo?G;j6m=QUoe3W?mdk7S2q7*jN*<&WdwI6GLn#poJc?p7dzA0 zn41-MG|#f&{^sA5GY@wH|CW{K_W$1mo}E{o%bo99-aiMN`Svl;NeN2ss#A^NFJU9s!D*r&* + + 2DPhysics_Joints.lua + + Physics2D + + diff --git a/Examples/Lua/2DPhysics_PointCollision/2DPhysics_PointCollision.lua b/Examples/Lua/2DPhysics_PointCollision/2DPhysics_PointCollision.lua new file mode 100644 index 000000000..32032a142 --- /dev/null +++ b/Examples/Lua/2DPhysics_PointCollision/2DPhysics_PointCollision.lua @@ -0,0 +1,20 @@ +screen = PhysicsScreen(10, 60) +lastEntity = nil + +for i=0,50 do + shape = ScreenShape(SHAPE_RECT, 30,15) + shape:setRotation(random(360)) + shape:setPosition(random(640), random(480)) + screen:addCollisionChild(shape, ENTITY_RECT) +end + +function Update(e) + if lastEntity ~= nil then lastEntity:setColor(1.0,1.0,1.0,1.0) end + local mouse = Services.Core:getInput():getMousePosition() + local entity = screen:getEntityAtPosition(mouse.x, mouse.y) + if entity ~= nil then + entity:setColor(1.0, 0.0, 0.0, 1.0) + lastEntity = entity + end + delete(mouse) +end diff --git a/Examples/Lua/2DPhysics_PointCollision/2DPhysics_PointCollision.xml b/Examples/Lua/2DPhysics_PointCollision/2DPhysics_PointCollision.xml new file mode 100644 index 000000000..328cfe101 --- /dev/null +++ b/Examples/Lua/2DPhysics_PointCollision/2DPhysics_PointCollision.xml @@ -0,0 +1,7 @@ + + + 2DPhysics_PointCollision.lua + + Physics2D + + diff --git a/Examples/Lua/2DTransforms/2DTransforms.lua b/Examples/Lua/2DTransforms/2DTransforms.lua new file mode 100644 index 000000000..22d0f3280 --- /dev/null +++ b/Examples/Lua/2DTransforms/2DTransforms.lua @@ -0,0 +1,9 @@ +screen = Screen() +for i=0,9 do + image = ScreenImage("polycode_logo.png") + screen:addChild(image) + image:setPosition(160+(42*i), 230) + image:setPositionMode(POSITION_CENTER) + image:setRotation(45*i) + image:setScale(1.0-(0.1*i),1.0-(0.1*i)) +end diff --git a/Examples/Lua/2DTransforms/2DTransforms.xml b/Examples/Lua/2DTransforms/2DTransforms.xml new file mode 100644 index 000000000..aa5741bb4 --- /dev/null +++ b/Examples/Lua/2DTransforms/2DTransforms.xml @@ -0,0 +1,7 @@ + + + 2DTransforms.lua + + + + diff --git a/Examples/Lua/2DTransforms/polycode_logo.png b/Examples/Lua/2DTransforms/polycode_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4a83026bd89dfdcc17bd3c56741352244f486007 GIT binary patch literal 13652 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 literal 0 HcmV?d00001 diff --git a/Examples/Lua/3DAudio/3DAudio.lua b/Examples/Lua/3DAudio/3DAudio.lua new file mode 100644 index 000000000..1d69b3476 --- /dev/null +++ b/Examples/Lua/3DAudio/3DAudio.lua @@ -0,0 +1,26 @@ +scene = Scene() + +sourceEntity = SceneEntity() +testSound = SceneSound("test.wav", 20, 50) +testSound:getSound():Play(true) +sourceEntity:addChild(testSound) +soundShape = ScenePrimitive(TYPE_BOX, 1,1,1) +soundShape:setMaterialByName("Default") +sourceEntity:addChild(soundShape) +scene:addEntity(sourceEntity) + +light = SceneLight(AREA_LIGHT, scene, 300, 0,0) +scene:addLight(light) +soundListener = SceneSoundListener() +scene:addEntity(soundListener) + +positionValue = 0 + + +function Update(elapsed) + positionValue = positionValue + elapsed + + sourceEntity:setPosition((sin(positionValue) * 20), 0, cos(positionValue) * 50) + sourceEntity:Roll(elapsed * 120) + sourceEntity:Pitch(elapsed * 120) +end diff --git a/Examples/Lua/3DAudio/3DAudio.xml b/Examples/Lua/3DAudio/3DAudio.xml new file mode 100644 index 000000000..5d4eba329 --- /dev/null +++ b/Examples/Lua/3DAudio/3DAudio.xml @@ -0,0 +1,7 @@ + + + 3DAudio.lua + + + + diff --git a/Examples/Lua/3DAudio/test.wav b/Examples/Lua/3DAudio/test.wav new file mode 100644 index 0000000000000000000000000000000000000000..fe93d90915d8bb8f9abd9d05d45339237a4e6e64 GIT binary patch literal 19662 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 W%0wY5X!JfRQ3*$^CzjDh%KQgcIq4Aq literal 0 HcmV?d00001 diff --git a/Examples/Lua/3DBasics/3DBasics.lua b/Examples/Lua/3DBasics/3DBasics.lua new file mode 100644 index 000000000..37e2e0826 --- /dev/null +++ b/Examples/Lua/3DBasics/3DBasics.lua @@ -0,0 +1,13 @@ +scene = Scene() +ground = ScenePrimitive(TYPE_PLANE, 5,5) +ground:loadTexture("green_texture.png") +scene:addEntity(ground) + +box = ScenePrimitive(TYPE_BOX, 1,1,1) +box:loadTexture("pink_texture.png") +box:setPosition(0.0, 0.5, 0.0) +scene:addEntity(box) + +scene:getDefaultCamera():setPosition(7,7,7) +scene:getDefaultCamera():lookAt(Vector3(0,0,0), Vector3(0,1,0)) + diff --git a/Examples/Lua/3DBasics/3DBasics.xml b/Examples/Lua/3DBasics/3DBasics.xml new file mode 100644 index 000000000..9b8a722d7 --- /dev/null +++ b/Examples/Lua/3DBasics/3DBasics.xml @@ -0,0 +1,8 @@ + + + 3DBasics.lua + + + + + diff --git a/Examples/Lua/3DBasics/green_texture.png b/Examples/Lua/3DBasics/green_texture.png new file mode 100644 index 0000000000000000000000000000000000000000..ad14b533fae88ced0fbd941fdaa0fff10bf7a3aa GIT binary patch literal 3159 zcmbVMcU+U#8vY1FMZ>6!R#YNYP$?N81R^1fh)rui!{X5+Fecs8v*?SdpPZ zL8MX(1W+PKgdj+%U_~m5%2F{RtE|Y5X|U?G_g-6nJ^!5doZs_2?>O&yk8XF{3e{Yp z2><|;@FkuE04hpT1y~GGZg+KXDCPDUcZ)CAgBiw+CbL1niOLKGVFWsP7f1rhRDQ%w z&>jF(O=zCJTwmfg424ODlNT^>9-XCR1Ask_$0Ae0K`ty5+(lzxO-95L6Bvz(HSw_~ zB8e;)a5wGC7&hn;hn{dmct9KnJ;G7>~Y}!NKsbCa-ldN_*iNVFG&% z;f7;P{tU{OxEnkIMRZGv_ZmbP;ivhCNvuT11knpZ=d?`;@lige{3xhyJM@Pe>t>8@dE(FTX&Tc`&($YeSu;B0+Tr$ss z!TJ2H0v_a0*fbWG#$>=26v?5?NG{ey8R?%X&{^+f8Jss|QWgxsBeM`FIC3GSw?HEC z@1b=1J2Zz&0{;{5{}twV@>w8)1ag>>Y>M*X!aiSc#lpC-K{A)g_GB{mzOCZ+-Apc% zvzy6+xp-K^h-3%2h=qrJ@1fsbDZ6LEeAl+h!@I@@8Om;FE8F_y&9HI+ zSlmp&J9+XR4Rr;EuWbLUc5K2DA)fU9wpgTUbKuS=;yWd+NdeNrG(lR>%e*^c*-|x# z1wHhI7t-|HNzrD`?FpHkmHF3)6T&QLjm58UHm(Lq21R|izT^2XrX}*1DO!~!5QQ2H zNB{r`uo!sHc&ylFEhYT)sORzPWs~mS;9_OnuO${-yR6B7{OMIfJcfQ99h`OpRjc9c|k|ww2O*&@wPqweVGGZ*0 z-*^7SuaSQ(6*wL@x*K|fJ)C0T*tyOL$Xo}Arz|SY)qAgRMrO^mJYDUdJ9Zd-N>uy2 z8(QeJB*9%H4CN*!DoXVwD_g}oRic7lE))CrBsD8)!nIhNqpwHlufD&Z3`>N}cNGJM z(GW3B(m89T$OK=-(H_fJ*5urZ8@udS*}fQ119Sk#g%SIYMr}dy$yj+RK5K2pzKj^d z^AnhP<7turaY+A}-6mj>kH8#1lY9rhE~Dy6OU>~gp?f}Sx3^2!+9J&9*-|*TJZ|i( z)wu7Zsy*=7yH!;Yy@;QmqU*_rfx|t^GA>VMbNwGOp3P?$bsvKcwC+4x?56d&|D`)U z9P991->yqR&Gl))MV+DjXS@f0n!kW=vC&M_&JB1ja(_gR%)uzr3^058+g$a{#$up?rLF8= zs|{lL*)G*lFIZ=|+JAq@|NWx>=BDx-!K@+4mH-dNZm79dk)_8}e;B-9)g#!H6-|n* z*o^3QZPO6FPSqGI76=TBh3>KjbN)O&T{~7hN*o;cIdpUluVu%WZ7i_opwKS7hft9= z?0UQB=0Nd-+||XRhXc=m?}HR=SMK*N=L<{+MfL$R4NVs5LYhbzd!+kva@`Zv^%?x( z)F}V1tiE3_W@R^xCo7q&!aLlxLVhz?AH>+-RPUYjqOMd!y+gMQ5|XYD3m%HE>Y@s6 z7#t}?|85O=|55+(cYHLsbG!7yO3rXI?SZj>mi=5 zy&C&6e|o%|O}eH}jaS#&7I(U~i!j#p`!$}?4x_f$sm9BOW@iG+s~lPlOP-A__j4E> zu0t0W8YNv%e2m@N&^xN~Bed#yQJh(q_Z1_%c(cL^QWv zsC}FzH8ijAt-5fpYJ5%1M~{!ZrS&WH_HMnQnc(N05L>3`k4l}<^@j<&|1vtKT&>6W zn0cR?$$aV8rDsI3WrXUCv5vZ0r{weN^K6bu_d)7e>AKbDfzIg|X@lpb=Dan0CSt{m z8!}827VZY>(P4>Y<+#oobxQAKLGD`;a&g$ literal 0 HcmV?d00001 diff --git a/Examples/Lua/3DBasics/pink_texture.png b/Examples/Lua/3DBasics/pink_texture.png new file mode 100644 index 0000000000000000000000000000000000000000..16bda11dffb6ad6818d382915e6e86c8e8138d46 GIT binary patch literal 3191 zcmeHKYgAKL8a*T+6zc=4BZ$f+s6YksKnWy3fCMC9h{MAMR7glJm|$`-xd=p%Xi-$8 zI_NmQDlEhYA{7RK!3P8xU!@8tiojU3DAXzhYCy0_m>U(_wW_n6S!@3F{yE<{Yk&KD zoPEwZcgKpbWm7EYSONg1u!C9Q0GME=39!In!=332GB((tfjl$TBOGIG!Lf&aKj6e#b0w_(oPNtxx`4C?7 z(lFb&Oe8?BA!w2h;Z0IJ&I*W$$YE%y8_88j@*qJTWH++=5-OGI0#Qh05|Kn9k}0la zD$SijBaxuD9|4Od7bVcbSwU}OVKX1XS`>9RI2|{CW%S)Cwr2~ zfusNy#og0`L}CVbx>Km0?i0Q&M3^FlW$1*j=vQCX2YroFkS1f1S+HEZ0Tu3I8YMuu)E=We-V8YNTtwH{L6 zDc^)vZ#b#%?9dj zvh^fm>`D35KQlKjd6K@sCCaaCQG2rV+EW&fr)Q(VvPg}6PED${;vo?VmmR}8y@S(fO9 zs>V%w_BYG~Ug9Z^4wb^z0XpYe`0{Rktj`ruhhK@>_%A;Nps z^)Iv!kq-0L5mz*n20UzwJhMHrBzh;e*D1YQ)8>(P?V{&E=WRVbTA9?R>Hj(Jl6Ots z_^j^ygXw>dpt-gUj5IdKeXnXB^*CC`UG}rf3Qb%z|LE?cI-z-~HHTt=*Kk9yH z9IBfc?D9`TQSBMP6PXQykb)as6t|qHu*? z4_+0<{BnmzRW-kAx3&CRv|lg(OcDt13{x{GA8LRXof zw<5b^@!xgamAT=k*4$aD>JGxGi)^y#!gPfRpF#&m%`R64{qCs#{_y?}D=PCjz5NMM zXm|InjhKM?w})Z^daiM3Znttg5g%9_ax*-Ga`I*FOL`UO*gPxs`}Na6T?mdG8T0Qr z{qgeovKpxFm_zq)*E_CO3{>}ajodDp_EU_9c%;u}-BqO^JohYRWk#)YX6sM{RPnHn zaT*g(!XM)KLp<2s^ZyZ#w{4?tjZ`^M!noEpIxnikd-6`Rxr+_~yUt&$57 zrzcey)_|S@yyG;#;!H=L#5T~YjUUgoR%_F)$jd6S3!_}mX|7fP{z0JgTdf!Z60xu& z{uFnnAN||eL*~xWq34S3`OZk9n-GA@43(Xx>Cs91kS^~p8>9F5%0Xw=K#?}b#T<(B1D&kUzH>)eE`o-U3_)uc_`UpGk4JkT&Zj*?$64_?yQx?L|2~ zf9IY+e2e6dVfDX&q^#>=+>m{u%h8pXuc1^L94y^n{e}m1i{hKJsuI-rbj!lLxMq(MLyY=|Hj;VEnPN;Q& z_YbuAz5! Z0RB<@p?&tO0OPL!J1~s(O#pw(zX3St)ZPF9 literal 0 HcmV?d00001 diff --git a/Examples/Lua/AdvancedLighting/AdvancedLighting.lua b/Examples/Lua/AdvancedLighting/AdvancedLighting.lua new file mode 100644 index 000000000..7a21ff3f9 --- /dev/null +++ b/Examples/Lua/AdvancedLighting/AdvancedLighting.lua @@ -0,0 +1,50 @@ +Services.ResourceManager:addDirResource("Resources", false) + +scene = Scene() +ground = ScenePrimitive(TYPE_PLANE, 5,5) +ground:setMaterialByName("GroundMaterial") +scene:addEntity(ground) + +box = ScenePrimitive(TYPE_TORUS, 0.8,0.3,30,20) +box:setMaterialByName("CubeMaterial") +box:setPosition(0.0, 0.5, 0.0) +scene:addEntity(box) + +light = SceneLight(AREA_LIGHT, scene, 20) +light:setPosition(3,2,7) +light:setLightColor(1,0,0) +scene:addLight(light) + +light = SceneLight(AREA_LIGHT, scene, 20) +light:setPosition(-3,2,7) +light:setLightColor(0,1,0) +scene:addLight(light) + +light = SceneLight(AREA_LIGHT, scene, 20) +light:setPosition(-3,2,-7) +light:setLightColor(0,0,1) +scene:addLight(light) + +light = SceneLight(AREA_LIGHT, scene, 20) +light:setPosition(3,2,-7) +light:setLightColor(1,0,1) +scene:addLight(light) + +light = SceneLight(SPOT_LIGHT, scene, 5) +light:setPosition(0,2,2) +light:setSpotlightProperties(30,6) +light:setLightColor(1,1,0) +scene:addLight(light) +light:lookAt(Vector3(0,0,0), Vector3(0,1,0)) +light:enableShadows(true) + +light = SceneLight(SPOT_LIGHT, scene, 5) +light:setPosition(0,2,-2) +light:setSpotlightProperties(30,6) +light:setLightColor(0,1,1) +scene:addLight(light) +light:lookAt(Vector3(0,0,0), Vector3(0,1,0)) +light:enableShadows(true) + +scene:getDefaultCamera():setPosition(7,7,7) +scene:getDefaultCamera():lookAt(Vector3(0,0,0), Vector3(0,1,0)) diff --git a/Examples/Lua/AdvancedLighting/AdvancedLighting.xml b/Examples/Lua/AdvancedLighting/AdvancedLighting.xml new file mode 100644 index 000000000..bb70a9917 --- /dev/null +++ b/Examples/Lua/AdvancedLighting/AdvancedLighting.xml @@ -0,0 +1,7 @@ + + + AdvancedLighting.lua + + + + diff --git a/Examples/Lua/AdvancedLighting/Resources/example.mat b/Examples/Lua/AdvancedLighting/Resources/example.mat new file mode 100644 index 000000000..cf40e3b52 --- /dev/null +++ b/Examples/Lua/AdvancedLighting/Resources/example.mat @@ -0,0 +1,26 @@ + + + + + + + particle.png + + + + + + + pink_texture.png + + + + + + + green_texture.png + + + + + diff --git a/Examples/Lua/AdvancedLighting/Resources/green_texture.png b/Examples/Lua/AdvancedLighting/Resources/green_texture.png new file mode 100644 index 0000000000000000000000000000000000000000..ad14b533fae88ced0fbd941fdaa0fff10bf7a3aa GIT binary patch literal 3159 zcmbVMcU+U#8vY1FMZ>6!R#YNYP$?N81R^1fh)rui!{X5+Fecs8v*?SdpPZ zL8MX(1W+PKgdj+%U_~m5%2F{RtE|Y5X|U?G_g-6nJ^!5doZs_2?>O&yk8XF{3e{Yp z2><|;@FkuE04hpT1y~GGZg+KXDCPDUcZ)CAgBiw+CbL1niOLKGVFWsP7f1rhRDQ%w z&>jF(O=zCJTwmfg424ODlNT^>9-XCR1Ask_$0Ae0K`ty5+(lzxO-95L6Bvz(HSw_~ zB8e;)a5wGC7&hn;hn{dmct9KnJ;G7>~Y}!NKsbCa-ldN_*iNVFG&% z;f7;P{tU{OxEnkIMRZGv_ZmbP;ivhCNvuT11knpZ=d?`;@lige{3xhyJM@Pe>t>8@dE(FTX&Tc`&($YeSu;B0+Tr$ss z!TJ2H0v_a0*fbWG#$>=26v?5?NG{ey8R?%X&{^+f8Jss|QWgxsBeM`FIC3GSw?HEC z@1b=1J2Zz&0{;{5{}twV@>w8)1ag>>Y>M*X!aiSc#lpC-K{A)g_GB{mzOCZ+-Apc% zvzy6+xp-K^h-3%2h=qrJ@1fsbDZ6LEeAl+h!@I@@8Om;FE8F_y&9HI+ zSlmp&J9+XR4Rr;EuWbLUc5K2DA)fU9wpgTUbKuS=;yWd+NdeNrG(lR>%e*^c*-|x# z1wHhI7t-|HNzrD`?FpHkmHF3)6T&QLjm58UHm(Lq21R|izT^2XrX}*1DO!~!5QQ2H zNB{r`uo!sHc&ylFEhYT)sORzPWs~mS;9_OnuO${-yR6B7{OMIfJcfQ99h`OpRjc9c|k|ww2O*&@wPqweVGGZ*0 z-*^7SuaSQ(6*wL@x*K|fJ)C0T*tyOL$Xo}Arz|SY)qAgRMrO^mJYDUdJ9Zd-N>uy2 z8(QeJB*9%H4CN*!DoXVwD_g}oRic7lE))CrBsD8)!nIhNqpwHlufD&Z3`>N}cNGJM z(GW3B(m89T$OK=-(H_fJ*5urZ8@udS*}fQ119Sk#g%SIYMr}dy$yj+RK5K2pzKj^d z^AnhP<7turaY+A}-6mj>kH8#1lY9rhE~Dy6OU>~gp?f}Sx3^2!+9J&9*-|*TJZ|i( z)wu7Zsy*=7yH!;Yy@;QmqU*_rfx|t^GA>VMbNwGOp3P?$bsvKcwC+4x?56d&|D`)U z9P991->yqR&Gl))MV+DjXS@f0n!kW=vC&M_&JB1ja(_gR%)uzr3^058+g$a{#$up?rLF8= zs|{lL*)G*lFIZ=|+JAq@|NWx>=BDx-!K@+4mH-dNZm79dk)_8}e;B-9)g#!H6-|n* z*o^3QZPO6FPSqGI76=TBh3>KjbN)O&T{~7hN*o;cIdpUluVu%WZ7i_opwKS7hft9= z?0UQB=0Nd-+||XRhXc=m?}HR=SMK*N=L<{+MfL$R4NVs5LYhbzd!+kva@`Zv^%?x( z)F}V1tiE3_W@R^xCo7q&!aLlxLVhz?AH>+-RPUYjqOMd!y+gMQ5|XYD3m%HE>Y@s6 z7#t}?|85O=|55+(cYHLsbG!7yO3rXI?SZj>mi=5 zy&C&6e|o%|O}eH}jaS#&7I(U~i!j#p`!$}?4x_f$sm9BOW@iG+s~lPlOP-A__j4E> zu0t0W8YNv%e2m@N&^xN~Bed#yQJh(q_Z1_%c(cL^QWv zsC}FzH8ijAt-5fpYJ5%1M~{!ZrS&WH_HMnQnc(N05L>3`k4l}<^@j<&|1vtKT&>6W zn0cR?$$aV8rDsI3WrXUCv5vZ0r{weN^K6bu_d)7e>AKbDfzIg|X@lpb=Dan0CSt{m z8!}827VZY>(P4>Y<+#oobxQAKLGD`;a&g$ literal 0 HcmV?d00001 diff --git a/Examples/Lua/AdvancedLighting/Resources/pink_texture.png b/Examples/Lua/AdvancedLighting/Resources/pink_texture.png new file mode 100644 index 0000000000000000000000000000000000000000..16bda11dffb6ad6818d382915e6e86c8e8138d46 GIT binary patch literal 3191 zcmeHKYgAKL8a*T+6zc=4BZ$f+s6YksKnWy3fCMC9h{MAMR7glJm|$`-xd=p%Xi-$8 zI_NmQDlEhYA{7RK!3P8xU!@8tiojU3DAXzhYCy0_m>U(_wW_n6S!@3F{yE<{Yk&KD zoPEwZcgKpbWm7EYSONg1u!C9Q0GME=39!In!=332GB((tfjl$TBOGIG!Lf&aKj6e#b0w_(oPNtxx`4C?7 z(lFb&Oe8?BA!w2h;Z0IJ&I*W$$YE%y8_88j@*qJTWH++=5-OGI0#Qh05|Kn9k}0la zD$SijBaxuD9|4Od7bVcbSwU}OVKX1XS`>9RI2|{CW%S)Cwr2~ zfusNy#og0`L}CVbx>Km0?i0Q&M3^FlW$1*j=vQCX2YroFkS1f1S+HEZ0Tu3I8YMuu)E=We-V8YNTtwH{L6 zDc^)vZ#b#%?9dj zvh^fm>`D35KQlKjd6K@sCCaaCQG2rV+EW&fr)Q(VvPg}6PED${;vo?VmmR}8y@S(fO9 zs>V%w_BYG~Ug9Z^4wb^z0XpYe`0{Rktj`ruhhK@>_%A;Nps z^)Iv!kq-0L5mz*n20UzwJhMHrBzh;e*D1YQ)8>(P?V{&E=WRVbTA9?R>Hj(Jl6Ots z_^j^ygXw>dpt-gUj5IdKeXnXB^*CC`UG}rf3Qb%z|LE?cI-z-~HHTt=*Kk9yH z9IBfc?D9`TQSBMP6PXQykb)as6t|qHu*? z4_+0<{BnmzRW-kAx3&CRv|lg(OcDt13{x{GA8LRXof zw<5b^@!xgamAT=k*4$aD>JGxGi)^y#!gPfRpF#&m%`R64{qCs#{_y?}D=PCjz5NMM zXm|InjhKM?w})Z^daiM3Znttg5g%9_ax*-Ga`I*FOL`UO*gPxs`}Na6T?mdG8T0Qr z{qgeovKpxFm_zq)*E_CO3{>}ajodDp_EU_9c%;u}-BqO^JohYRWk#)YX6sM{RPnHn zaT*g(!XM)KLp<2s^ZyZ#w{4?tjZ`^M!noEpIxnikd-6`Rxr+_~yUt&$57 zrzcey)_|S@yyG;#;!H=L#5T~YjUUgoR%_F)$jd6S3!_}mX|7fP{z0JgTdf!Z60xu& z{uFnnAN||eL*~xWq34S3`OZk9n-GA@43(Xx>Cs91kS^~p8>9F5%0Xw=K#?}b#T<(B1D&kUzH>)eE`o-U3_)uc_`UpGk4JkT&Zj*?$64_?yQx?L|2~ zf9IY+e2e6dVfDX&q^#>=+>m{u%h8pXuc1^L94y^n{e}m1i{hKJsuI-rbj!lLxMq(MLyY=|Hj;VEnPN;Q& z_YbuAz5! Z0RB<@p?&tO0OPL!J1~s(O#pw(zX3St)ZPF9 literal 0 HcmV?d00001 diff --git a/Examples/Lua/BasicImage/BasicImage.lua b/Examples/Lua/BasicImage/BasicImage.lua new file mode 100644 index 000000000..ad348123f --- /dev/null +++ b/Examples/Lua/BasicImage/BasicImage.lua @@ -0,0 +1,3 @@ +screen = Screen() +image = ScreenImage("polycode_logo.png") +screen:addChild(image) diff --git a/Examples/Lua/BasicImage/BasicImage.xml b/Examples/Lua/BasicImage/BasicImage.xml new file mode 100644 index 000000000..9c6d82eb4 --- /dev/null +++ b/Examples/Lua/BasicImage/BasicImage.xml @@ -0,0 +1,7 @@ + + + BasicImage.lua + + + + diff --git a/Examples/Lua/BasicImage/polycode_logo.png b/Examples/Lua/BasicImage/polycode_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4a83026bd89dfdcc17bd3c56741352244f486007 GIT binary patch literal 13652 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 literal 0 HcmV?d00001 diff --git a/Examples/Lua/BasicLighting/BasicLighting.lua b/Examples/Lua/BasicLighting/BasicLighting.lua new file mode 100644 index 000000000..9ac7fc5b2 --- /dev/null +++ b/Examples/Lua/BasicLighting/BasicLighting.lua @@ -0,0 +1,18 @@ +Services.ResourceManager:addDirResource("Resources", false) + +scene = Scene() +ground = ScenePrimitive(TYPE_PLANE, 5,5) +ground:setMaterialByName("GroundMaterial") +scene:addEntity(ground) + +box = ScenePrimitive(TYPE_TORUS, 0.8,0.3,30,20) +box:setMaterialByName("CubeMaterial") +box:setPosition(0.0, 0.5, 0.0) +scene:addEntity(box) + +light = SceneLight(AREA_LIGHT, scene, 6) +light:setPosition(1,2,1) +scene:addLight(light) + +scene:getDefaultCamera():setPosition(7,7,7) +scene:getDefaultCamera():lookAt(Vector3(0,0,0), Vector3(0,1,0)) diff --git a/Examples/Lua/BasicLighting/BasicLighting.xml b/Examples/Lua/BasicLighting/BasicLighting.xml new file mode 100644 index 000000000..3b97e8556 --- /dev/null +++ b/Examples/Lua/BasicLighting/BasicLighting.xml @@ -0,0 +1,7 @@ + + + BasicLighting.lua + + + + diff --git a/Examples/Lua/BasicLighting/Resources/example.mat b/Examples/Lua/BasicLighting/Resources/example.mat new file mode 100644 index 000000000..cf40e3b52 --- /dev/null +++ b/Examples/Lua/BasicLighting/Resources/example.mat @@ -0,0 +1,26 @@ + + + + + + + particle.png + + + + + + + pink_texture.png + + + + + + + green_texture.png + + + + + diff --git a/Examples/Lua/BasicLighting/Resources/green_texture.png b/Examples/Lua/BasicLighting/Resources/green_texture.png new file mode 100644 index 0000000000000000000000000000000000000000..ad14b533fae88ced0fbd941fdaa0fff10bf7a3aa GIT binary patch literal 3159 zcmbVMcU+U#8vY1FMZ>6!R#YNYP$?N81R^1fh)rui!{X5+Fecs8v*?SdpPZ zL8MX(1W+PKgdj+%U_~m5%2F{RtE|Y5X|U?G_g-6nJ^!5doZs_2?>O&yk8XF{3e{Yp z2><|;@FkuE04hpT1y~GGZg+KXDCPDUcZ)CAgBiw+CbL1niOLKGVFWsP7f1rhRDQ%w z&>jF(O=zCJTwmfg424ODlNT^>9-XCR1Ask_$0Ae0K`ty5+(lzxO-95L6Bvz(HSw_~ zB8e;)a5wGC7&hn;hn{dmct9KnJ;G7>~Y}!NKsbCa-ldN_*iNVFG&% z;f7;P{tU{OxEnkIMRZGv_ZmbP;ivhCNvuT11knpZ=d?`;@lige{3xhyJM@Pe>t>8@dE(FTX&Tc`&($YeSu;B0+Tr$ss z!TJ2H0v_a0*fbWG#$>=26v?5?NG{ey8R?%X&{^+f8Jss|QWgxsBeM`FIC3GSw?HEC z@1b=1J2Zz&0{;{5{}twV@>w8)1ag>>Y>M*X!aiSc#lpC-K{A)g_GB{mzOCZ+-Apc% zvzy6+xp-K^h-3%2h=qrJ@1fsbDZ6LEeAl+h!@I@@8Om;FE8F_y&9HI+ zSlmp&J9+XR4Rr;EuWbLUc5K2DA)fU9wpgTUbKuS=;yWd+NdeNrG(lR>%e*^c*-|x# z1wHhI7t-|HNzrD`?FpHkmHF3)6T&QLjm58UHm(Lq21R|izT^2XrX}*1DO!~!5QQ2H zNB{r`uo!sHc&ylFEhYT)sORzPWs~mS;9_OnuO${-yR6B7{OMIfJcfQ99h`OpRjc9c|k|ww2O*&@wPqweVGGZ*0 z-*^7SuaSQ(6*wL@x*K|fJ)C0T*tyOL$Xo}Arz|SY)qAgRMrO^mJYDUdJ9Zd-N>uy2 z8(QeJB*9%H4CN*!DoXVwD_g}oRic7lE))CrBsD8)!nIhNqpwHlufD&Z3`>N}cNGJM z(GW3B(m89T$OK=-(H_fJ*5urZ8@udS*}fQ119Sk#g%SIYMr}dy$yj+RK5K2pzKj^d z^AnhP<7turaY+A}-6mj>kH8#1lY9rhE~Dy6OU>~gp?f}Sx3^2!+9J&9*-|*TJZ|i( z)wu7Zsy*=7yH!;Yy@;QmqU*_rfx|t^GA>VMbNwGOp3P?$bsvKcwC+4x?56d&|D`)U z9P991->yqR&Gl))MV+DjXS@f0n!kW=vC&M_&JB1ja(_gR%)uzr3^058+g$a{#$up?rLF8= zs|{lL*)G*lFIZ=|+JAq@|NWx>=BDx-!K@+4mH-dNZm79dk)_8}e;B-9)g#!H6-|n* z*o^3QZPO6FPSqGI76=TBh3>KjbN)O&T{~7hN*o;cIdpUluVu%WZ7i_opwKS7hft9= z?0UQB=0Nd-+||XRhXc=m?}HR=SMK*N=L<{+MfL$R4NVs5LYhbzd!+kva@`Zv^%?x( z)F}V1tiE3_W@R^xCo7q&!aLlxLVhz?AH>+-RPUYjqOMd!y+gMQ5|XYD3m%HE>Y@s6 z7#t}?|85O=|55+(cYHLsbG!7yO3rXI?SZj>mi=5 zy&C&6e|o%|O}eH}jaS#&7I(U~i!j#p`!$}?4x_f$sm9BOW@iG+s~lPlOP-A__j4E> zu0t0W8YNv%e2m@N&^xN~Bed#yQJh(q_Z1_%c(cL^QWv zsC}FzH8ijAt-5fpYJ5%1M~{!ZrS&WH_HMnQnc(N05L>3`k4l}<^@j<&|1vtKT&>6W zn0cR?$$aV8rDsI3WrXUCv5vZ0r{weN^K6bu_d)7e>AKbDfzIg|X@lpb=Dan0CSt{m z8!}827VZY>(P4>Y<+#oobxQAKLGD`;a&g$ literal 0 HcmV?d00001 diff --git a/Examples/Lua/BasicLighting/Resources/pink_texture.png b/Examples/Lua/BasicLighting/Resources/pink_texture.png new file mode 100644 index 0000000000000000000000000000000000000000..16bda11dffb6ad6818d382915e6e86c8e8138d46 GIT binary patch literal 3191 zcmeHKYgAKL8a*T+6zc=4BZ$f+s6YksKnWy3fCMC9h{MAMR7glJm|$`-xd=p%Xi-$8 zI_NmQDlEhYA{7RK!3P8xU!@8tiojU3DAXzhYCy0_m>U(_wW_n6S!@3F{yE<{Yk&KD zoPEwZcgKpbWm7EYSONg1u!C9Q0GME=39!In!=332GB((tfjl$TBOGIG!Lf&aKj6e#b0w_(oPNtxx`4C?7 z(lFb&Oe8?BA!w2h;Z0IJ&I*W$$YE%y8_88j@*qJTWH++=5-OGI0#Qh05|Kn9k}0la zD$SijBaxuD9|4Od7bVcbSwU}OVKX1XS`>9RI2|{CW%S)Cwr2~ zfusNy#og0`L}CVbx>Km0?i0Q&M3^FlW$1*j=vQCX2YroFkS1f1S+HEZ0Tu3I8YMuu)E=We-V8YNTtwH{L6 zDc^)vZ#b#%?9dj zvh^fm>`D35KQlKjd6K@sCCaaCQG2rV+EW&fr)Q(VvPg}6PED${;vo?VmmR}8y@S(fO9 zs>V%w_BYG~Ug9Z^4wb^z0XpYe`0{Rktj`ruhhK@>_%A;Nps z^)Iv!kq-0L5mz*n20UzwJhMHrBzh;e*D1YQ)8>(P?V{&E=WRVbTA9?R>Hj(Jl6Ots z_^j^ygXw>dpt-gUj5IdKeXnXB^*CC`UG}rf3Qb%z|LE?cI-z-~HHTt=*Kk9yH z9IBfc?D9`TQSBMP6PXQykb)as6t|qHu*? z4_+0<{BnmzRW-kAx3&CRv|lg(OcDt13{x{GA8LRXof zw<5b^@!xgamAT=k*4$aD>JGxGi)^y#!gPfRpF#&m%`R64{qCs#{_y?}D=PCjz5NMM zXm|InjhKM?w})Z^daiM3Znttg5g%9_ax*-Ga`I*FOL`UO*gPxs`}Na6T?mdG8T0Qr z{qgeovKpxFm_zq)*E_CO3{>}ajodDp_EU_9c%;u}-BqO^JohYRWk#)YX6sM{RPnHn zaT*g(!XM)KLp<2s^ZyZ#w{4?tjZ`^M!noEpIxnikd-6`Rxr+_~yUt&$57 zrzcey)_|S@yyG;#;!H=L#5T~YjUUgoR%_F)$jd6S3!_}mX|7fP{z0JgTdf!Z60xu& z{uFnnAN||eL*~xWq34S3`OZk9n-GA@43(Xx>Cs91kS^~p8>9F5%0Xw=K#?}b#T<(B1D&kUzH>)eE`o-U3_)uc_`UpGk4JkT&Zj*?$64_?yQx?L|2~ zf9IY+e2e6dVfDX&q^#>=+>m{u%h8pXuc1^L94y^n{e}m1i{hKJsuI-rbj!lLxMq(MLyY=|Hj;VEnPN;Q& z_YbuAz5! Z0RB<@p?&tO0OPL!J1~s(O#pw(zX3St)ZPF9 literal 0 HcmV?d00001 diff --git a/Examples/Lua/BasicText/BasicText.lua b/Examples/Lua/BasicText/BasicText.lua new file mode 100644 index 000000000..2aaa714b4 --- /dev/null +++ b/Examples/Lua/BasicText/BasicText.lua @@ -0,0 +1,3 @@ +screen = Screen() +label = ScreenLabel("Hello, Polycode!", 32) +screen:addChild(label) diff --git a/Examples/Lua/BasicText/BasicText.xml b/Examples/Lua/BasicText/BasicText.xml new file mode 100644 index 000000000..683b80bd2 --- /dev/null +++ b/Examples/Lua/BasicText/BasicText.xml @@ -0,0 +1,4 @@ + + + BasicText.lua + diff --git a/Examples/Lua/EventHandling/EventHandling.lua b/Examples/Lua/EventHandling/EventHandling.lua new file mode 100644 index 000000000..6d919ff14 --- /dev/null +++ b/Examples/Lua/EventHandling/EventHandling.lua @@ -0,0 +1,22 @@ +class "ImageRotator" (EventHandler) + +timer = Timer(true, 1000) + +function ImageRotator:ImageRotator(image) + self.image = image + self:EventHandler() +end + +function ImageRotator:handleEvent(e) + if e:getDispatcher() == timer and e:getEventCode() == EVENT_TRIGGER then + self.image:setRotation(self.image:getRotation()+90) + end +end + +screen = Screen() +image = ScreenImage("polycode_logo.png") +screen:addChild(image) + +rotator = ImageRotator(image) +timer:addEventListener(rotator, EVENT_TRIGGER) + diff --git a/Examples/Lua/EventHandling/EventHandling.xml b/Examples/Lua/EventHandling/EventHandling.xml new file mode 100644 index 000000000..587e75c1e --- /dev/null +++ b/Examples/Lua/EventHandling/EventHandling.xml @@ -0,0 +1,7 @@ + + + EventHandling.lua + + + + diff --git a/Examples/Lua/EventHandling/polycode_logo.png b/Examples/Lua/EventHandling/polycode_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4a83026bd89dfdcc17bd3c56741352244f486007 GIT binary patch literal 13652 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 literal 0 HcmV?d00001 diff --git a/Examples/Lua/KeyboardInput/KeyboardInput.lua b/Examples/Lua/KeyboardInput/KeyboardInput.lua new file mode 100644 index 000000000..d91d8c48f --- /dev/null +++ b/Examples/Lua/KeyboardInput/KeyboardInput.lua @@ -0,0 +1,46 @@ + +class "ImageRotator" (EventHandler) + +function ImageRotator:ImageRotator(image) + self.image = image + self.rotationSpeed = 0 + self:EventHandler() +end + +function ImageRotator:rotate(e) + self.image:setRotation(self.image:getRotation() + e * self.rotationSpeed) +end + +function ImageRotator:handleEvent(e) + if e:getDispatcher() == Services.Core:getInput() then + local inputEvent = InputEvent(e) + local key = inputEvent:keyCode() + if e:getEventCode() == EVENT_KEYDOWN then + if key == KEY_LEFT then + self.rotationSpeed = -200 + elseif key == KEY_RIGHT then + self.rotationSpeed = 200 + end + elseif e:getEventCode() == EVENT_KEYUP then + if key == KEY_LEFT or key == KEY_RIGHT then + self.rotationSpeed = 0 + end + end + end +end + +screen = Screen() +image = ScreenImage("polycode_logo.png") +image:setPositionMode(POSITION_CENTER) +image:setPosition(640/2,480/2) +screen:addChild(image) + + +imageRotator = ImageRotator(image) + +Services.Core:getInput():addEventListener(imageRotator, EVENT_KEYDOWN) +Services.Core:getInput():addEventListener(imageRotator, EVENT_KEYUP) + +function Update(elapsed) + imageRotator:rotate(elapsed) +end diff --git a/Examples/Lua/KeyboardInput/KeyboardInput.xml b/Examples/Lua/KeyboardInput/KeyboardInput.xml new file mode 100644 index 000000000..b30f7f844 --- /dev/null +++ b/Examples/Lua/KeyboardInput/KeyboardInput.xml @@ -0,0 +1,7 @@ + + + KeyboardInput.lua + + + + diff --git a/Examples/Lua/KeyboardInput/polycode_logo.png b/Examples/Lua/KeyboardInput/polycode_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4a83026bd89dfdcc17bd3c56741352244f486007 GIT binary patch literal 13652 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 literal 0 HcmV?d00001 diff --git a/Examples/Lua/MouseInput/MouseInput.lua b/Examples/Lua/MouseInput/MouseInput.lua new file mode 100644 index 000000000..2d0d7e9d5 --- /dev/null +++ b/Examples/Lua/MouseInput/MouseInput.lua @@ -0,0 +1,33 @@ +class "MouseImage" (EventHandler) + +function MouseImage:MouseImage(image) + self.image = image + self:EventHandler() +end + +function MouseImage:handleEvent(e) + if e:getDispatcher() == Services.Core:getInput() then + local inputEvent = InputEvent(e) + if e:getEventCode() == EVENT_MOUSEMOVE then + local pos = inputEvent:getMousePosition() + self.image:setPosition(pos.x, pos.y) + delete(pos) + elseif e:getEventCode() == EVENT_MOUSEDOWN then + self.image:setColor(1,0,0,1) + elseif e:getEventCode() == EVENT_MOUSEUP then + self.image:setColor(1,1,1,1) + end + end +end + +screen = Screen() +image = ScreenImage("polycode_logo.png") +image:setPositionMode(POSITION_CENTER) +screen:addChild(image) + +mouseImage = MouseImage(image) + + +Services.Core:getInput():addEventListener(mouseImage, EVENT_MOUSEMOVE) +Services.Core:getInput():addEventListener(mouseImage, EVENT_MOUSEDOWN) +Services.Core:getInput():addEventListener(mouseImage, EVENT_MOUSEUP) diff --git a/Examples/Lua/MouseInput/MouseInput.xml b/Examples/Lua/MouseInput/MouseInput.xml new file mode 100644 index 000000000..cd5977848 --- /dev/null +++ b/Examples/Lua/MouseInput/MouseInput.xml @@ -0,0 +1,7 @@ + + + MouseInput.lua + + + + diff --git a/Examples/Lua/MouseInput/polycode_logo.png b/Examples/Lua/MouseInput/polycode_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4a83026bd89dfdcc17bd3c56741352244f486007 GIT binary patch literal 13652 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 literal 0 HcmV?d00001 diff --git a/Examples/Lua/PlayingSounds/PlayingSounds.lua b/Examples/Lua/PlayingSounds/PlayingSounds.lua new file mode 100644 index 000000000..16f3a86ba --- /dev/null +++ b/Examples/Lua/PlayingSounds/PlayingSounds.lua @@ -0,0 +1,17 @@ +class "SoundApp" (EventHandler) + +function SoundApp:SoundApp(image) + self.sound = Sound("test.wav") + self:EventHandler() +end + +function SoundApp:handleEvent(e) + if e:getDispatcher() == Services.Core:getInput() then + if e:getEventCode() == EVENT_MOUSEDOWN then + self.sound:Play(false) + end + end +end + +app = SoundApp() +Services.Core:getInput():addEventListener(app, EVENT_MOUSEDOWN) diff --git a/Examples/Lua/PlayingSounds/PlayingSounds.xml b/Examples/Lua/PlayingSounds/PlayingSounds.xml new file mode 100644 index 000000000..2c32cbbca --- /dev/null +++ b/Examples/Lua/PlayingSounds/PlayingSounds.xml @@ -0,0 +1,7 @@ + + + PlayingSounds.lua + + + + diff --git a/Examples/Lua/PlayingSounds/test.wav b/Examples/Lua/PlayingSounds/test.wav new file mode 100644 index 0000000000000000000000000000000000000000..fe93d90915d8bb8f9abd9d05d45339237a4e6e64 GIT binary patch literal 19662 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 W%0wY5X!JfRQ3*$^CzjDh%KQgcIq4Aq literal 0 HcmV?d00001 diff --git a/Examples/Lua/ScreenEntities/ScreenEntities.lua b/Examples/Lua/ScreenEntities/ScreenEntities.lua new file mode 100644 index 000000000..cf0f82f2f --- /dev/null +++ b/Examples/Lua/ScreenEntities/ScreenEntities.lua @@ -0,0 +1,28 @@ +screen = Screen() + +sun = ScreenShape(SHAPE_CIRCLE, 100,100, 30) +sun:setPosition(640/2, 480/2) +sun:setColor(1.0, 0.0, 0, 1) +sun.colorAffectsChildren = false +screen:addChild(sun) + +planet = ScreenShape(SHAPE_CIRCLE, 50,50, 30) +planet:setPosition(150,0) +planet:setColor(0.2, 0.8, 0, 1) +planet.colorAffectsChildren = false +sun:addChild(planet) + +moon = ScreenShape(SHAPE_CIRCLE, 20,20, 30) +moon:setPosition(50,0) +moon:setColor(1, 1, 0.6, 1) +planet:addChild(moon) + +planetRotation = 0 +moonRotation = 0 + +function Update(elapsed) + planetRotation = planetRotation + elapsed + moonRotation = moonRotation + (elapsed * 6) + planet:setPosition(cos(planetRotation)*150, sin(planetRotation)*150) + moon:setPosition(cos(moonRotation)*50, sin(moonRotation)*50) +end diff --git a/Examples/Lua/ScreenEntities/ScreenEntities.xml b/Examples/Lua/ScreenEntities/ScreenEntities.xml new file mode 100644 index 000000000..749c25457 --- /dev/null +++ b/Examples/Lua/ScreenEntities/ScreenEntities.xml @@ -0,0 +1,4 @@ + + + ScreenEntities.lua +