Sfoglia il codice sorgente

Added Sprite tint example

Björn Ritzl 5 anni fa
parent
commit
8989a7d4c1
50 ha cambiato i file con 368 aggiunte e 44 eliminazioni
  1. 0 0
      assets/images/bee/Bee01.png
  2. 0 0
      assets/images/bee/Bee02.png
  3. 0 0
      assets/images/bee/Bee03.png
  4. 0 0
      assets/images/bee/Bee04.png
  5. 0 0
      assets/images/bee/Bee05.png
  6. 0 0
      assets/images/bee/Bee06.png
  7. 0 0
      assets/images/bee/Bee07.png
  8. 0 0
      assets/images/bee/Bee08.png
  9. 0 0
      assets/images/bee/Bee09.png
  10. 0 0
      assets/images/bee/Bee10.png
  11. 0 0
      assets/images/bee/Bee11.png
  12. 0 0
      assets/images/bee/Bee12.png
  13. 0 0
      assets/images/bee/Bee13.png
  14. 0 0
      assets/images/bee/Bee14.png
  15. 0 0
      assets/images/bee/Bee15.png
  16. 0 0
      assets/images/bee/Bee16.png
  17. 0 0
      assets/images/bee/Bee17.png
  18. 0 0
      assets/images/bee/Bee18.png
  19. 0 0
      assets/images/bee/Bee19.png
  20. 0 0
      assets/images/bee/Bee20.png
  21. 0 0
      assets/images/bee/Bee21.png
  22. 0 0
      assets/images/bee/Bee22.png
  23. 0 0
      assets/images/bee/Bee23.png
  24. 0 0
      assets/images/bee/Bee24.png
  25. 0 0
      assets/images/bee/Bee_shot01.png
  26. 0 0
      assets/images/bee/Bee_shot02.png
  27. 0 0
      assets/images/bee/Bee_shot03.png
  28. 0 0
      assets/images/bee/Bee_shot04.png
  29. 0 0
      assets/images/bee/Bee_shot05.png
  30. 0 0
      assets/images/bee/Bee_shot06.png
  31. 0 0
      assets/images/bee/Bee_shot07.png
  32. 0 0
      assets/images/bee/Bee_shot08.png
  33. 0 0
      assets/images/bee/Bee_shot09.png
  34. 0 0
      assets/images/bee/Bee_shot10.png
  35. 0 0
      assets/images/bee/Sting01.png
  36. 0 0
      assets/images/bee/Sting02.png
  37. 0 0
      assets/images/bee/Sting03.png
  38. 0 0
      assets/images/bee/Sting04.png
  39. 0 0
      assets/images/bee/Sting05.png
  40. 0 0
      assets/images/bee/Sting06.png
  41. 0 0
      assets/images/bee/Sting07.png
  42. 0 0
      assets/images/bee/Sting08.png
  43. 0 0
      assets/images/bee/Sting09.png
  44. BIN
      assets/images/logo-color.png
  45. 47 43
      assets/sprites.atlas
  46. 18 0
      examples/_main/loader.go
  47. 1 1
      examples/_main/menu.gui_script
  48. 277 0
      examples/sprite/tint/tint.collection
  49. 11 0
      examples/sprite/tint/tint.md
  50. 14 0
      examples/sprite/tint/tint.script

+ 0 - 0
assets/images/Bee01.png → assets/images/bee/Bee01.png


+ 0 - 0
assets/images/Bee02.png → assets/images/bee/Bee02.png


+ 0 - 0
assets/images/Bee03.png → assets/images/bee/Bee03.png


+ 0 - 0
assets/images/Bee04.png → assets/images/bee/Bee04.png


+ 0 - 0
assets/images/Bee05.png → assets/images/bee/Bee05.png


+ 0 - 0
assets/images/Bee06.png → assets/images/bee/Bee06.png


+ 0 - 0
assets/images/Bee07.png → assets/images/bee/Bee07.png


+ 0 - 0
assets/images/Bee08.png → assets/images/bee/Bee08.png


+ 0 - 0
assets/images/Bee09.png → assets/images/bee/Bee09.png


+ 0 - 0
assets/images/Bee10.png → assets/images/bee/Bee10.png


+ 0 - 0
assets/images/Bee11.png → assets/images/bee/Bee11.png


+ 0 - 0
assets/images/Bee12.png → assets/images/bee/Bee12.png


+ 0 - 0
assets/images/Bee13.png → assets/images/bee/Bee13.png


+ 0 - 0
assets/images/Bee14.png → assets/images/bee/Bee14.png


+ 0 - 0
assets/images/Bee15.png → assets/images/bee/Bee15.png


+ 0 - 0
assets/images/Bee16.png → assets/images/bee/Bee16.png


+ 0 - 0
assets/images/Bee17.png → assets/images/bee/Bee17.png


+ 0 - 0
assets/images/Bee18.png → assets/images/bee/Bee18.png


+ 0 - 0
assets/images/Bee19.png → assets/images/bee/Bee19.png


+ 0 - 0
assets/images/Bee20.png → assets/images/bee/Bee20.png


+ 0 - 0
assets/images/Bee21.png → assets/images/bee/Bee21.png


+ 0 - 0
assets/images/Bee22.png → assets/images/bee/Bee22.png


+ 0 - 0
assets/images/Bee23.png → assets/images/bee/Bee23.png


+ 0 - 0
assets/images/Bee24.png → assets/images/bee/Bee24.png


+ 0 - 0
assets/images/Bee_shot01.png → assets/images/bee/Bee_shot01.png


+ 0 - 0
assets/images/Bee_shot02.png → assets/images/bee/Bee_shot02.png


+ 0 - 0
assets/images/Bee_shot03.png → assets/images/bee/Bee_shot03.png


+ 0 - 0
assets/images/Bee_shot04.png → assets/images/bee/Bee_shot04.png


+ 0 - 0
assets/images/Bee_shot05.png → assets/images/bee/Bee_shot05.png


+ 0 - 0
assets/images/Bee_shot06.png → assets/images/bee/Bee_shot06.png


+ 0 - 0
assets/images/Bee_shot07.png → assets/images/bee/Bee_shot07.png


+ 0 - 0
assets/images/Bee_shot08.png → assets/images/bee/Bee_shot08.png


+ 0 - 0
assets/images/Bee_shot09.png → assets/images/bee/Bee_shot09.png


+ 0 - 0
assets/images/Bee_shot10.png → assets/images/bee/Bee_shot10.png


+ 0 - 0
assets/images/Sting01.png → assets/images/bee/Sting01.png


+ 0 - 0
assets/images/Sting02.png → assets/images/bee/Sting02.png


+ 0 - 0
assets/images/Sting03.png → assets/images/bee/Sting03.png


+ 0 - 0
assets/images/Sting04.png → assets/images/bee/Sting04.png


+ 0 - 0
assets/images/Sting05.png → assets/images/bee/Sting05.png


+ 0 - 0
assets/images/Sting06.png → assets/images/bee/Sting06.png


+ 0 - 0
assets/images/Sting07.png → assets/images/bee/Sting07.png


+ 0 - 0
assets/images/Sting08.png → assets/images/bee/Sting08.png


+ 0 - 0
assets/images/Sting09.png → assets/images/bee/Sting09.png


BIN
assets/images/logo-color.png


+ 47 - 43
assets/sprites.atlas

@@ -58,102 +58,106 @@ images {
   image: "/assets/images/enemyFloating_1.png"
   sprite_trim_mode: SPRITE_TRIM_MODE_OFF
 }
+images {
+  image: "/assets/images/logo-color.png"
+  sprite_trim_mode: SPRITE_TRIM_MODE_OFF
+}
 animations {
   id: "bee"
   images {
-    image: "/assets/images/Bee01.png"
+    image: "/assets/images/bee/Bee01.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee02.png"
+    image: "/assets/images/bee/Bee02.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee03.png"
+    image: "/assets/images/bee/Bee03.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee04.png"
+    image: "/assets/images/bee/Bee04.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee05.png"
+    image: "/assets/images/bee/Bee05.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee06.png"
+    image: "/assets/images/bee/Bee06.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee07.png"
+    image: "/assets/images/bee/Bee07.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee08.png"
+    image: "/assets/images/bee/Bee08.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee09.png"
+    image: "/assets/images/bee/Bee09.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee10.png"
+    image: "/assets/images/bee/Bee10.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee11.png"
+    image: "/assets/images/bee/Bee11.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee12.png"
+    image: "/assets/images/bee/Bee12.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee13.png"
+    image: "/assets/images/bee/Bee13.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee14.png"
+    image: "/assets/images/bee/Bee14.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee15.png"
+    image: "/assets/images/bee/Bee15.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee16.png"
+    image: "/assets/images/bee/Bee16.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee17.png"
+    image: "/assets/images/bee/Bee17.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee18.png"
+    image: "/assets/images/bee/Bee18.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee19.png"
+    image: "/assets/images/bee/Bee19.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee20.png"
+    image: "/assets/images/bee/Bee20.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee21.png"
+    image: "/assets/images/bee/Bee21.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee22.png"
+    image: "/assets/images/bee/Bee22.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee23.png"
+    image: "/assets/images/bee/Bee23.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee24.png"
+    image: "/assets/images/bee/Bee24.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   playback: PLAYBACK_LOOP_FORWARD
@@ -164,43 +168,43 @@ animations {
 animations {
   id: "bee_shot"
   images {
-    image: "/assets/images/Bee_shot01.png"
+    image: "/assets/images/bee/Bee_shot01.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee_shot02.png"
+    image: "/assets/images/bee/Bee_shot02.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee_shot03.png"
+    image: "/assets/images/bee/Bee_shot03.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee_shot04.png"
+    image: "/assets/images/bee/Bee_shot04.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee_shot05.png"
+    image: "/assets/images/bee/Bee_shot05.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee_shot06.png"
+    image: "/assets/images/bee/Bee_shot06.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee_shot07.png"
+    image: "/assets/images/bee/Bee_shot07.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee_shot08.png"
+    image: "/assets/images/bee/Bee_shot08.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee_shot09.png"
+    image: "/assets/images/bee/Bee_shot09.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Bee_shot10.png"
+    image: "/assets/images/bee/Bee_shot10.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   playback: PLAYBACK_ONCE_FORWARD
@@ -211,39 +215,39 @@ animations {
 animations {
   id: "stinger"
   images {
-    image: "/assets/images/Sting01.png"
+    image: "/assets/images/bee/Sting01.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Sting02.png"
+    image: "/assets/images/bee/Sting02.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Sting03.png"
+    image: "/assets/images/bee/Sting03.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Sting04.png"
+    image: "/assets/images/bee/Sting04.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Sting05.png"
+    image: "/assets/images/bee/Sting05.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Sting06.png"
+    image: "/assets/images/bee/Sting06.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Sting07.png"
+    image: "/assets/images/bee/Sting07.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Sting08.png"
+    image: "/assets/images/bee/Sting08.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   images {
-    image: "/assets/images/Sting09.png"
+    image: "/assets/images/bee/Sting09.png"
     sprite_trim_mode: SPRITE_TRIM_MODE_OFF
   }
   playback: PLAYBACK_LOOP_FORWARD

+ 18 - 0
examples/_main/loader.go

@@ -604,3 +604,21 @@ embedded_components {
     w: 1.0
   }
 }
+embedded_components {
+  id: "sprite/tint"
+  type: "collectionproxy"
+  data: "collection: \"/examples/sprite/tint/tint.collection\"\n"
+  "exclude: false\n"
+  ""
+  position {
+    x: 0.0
+    y: 0.0
+    z: 0.0
+  }
+  rotation {
+    x: 0.0
+    y: 0.0
+    z: 0.0
+    w: 1.0
+  }
+}

+ 1 - 1
examples/_main/menu.gui_script

@@ -111,7 +111,7 @@ function init(self)
 	self.index["render"] = { "camera" }
 	self.index["debug"] = { "physics", "profile" }
 	self.index["collection"] = { "proxy" }
-	self.index["sprite"] = { "size" }
+	self.index["sprite"] = { "size", "tint" }
 	self.index["file"] = { "sys_save_load" }
 	self.index["tilemap"] = { "collisions" }
 	local categories = {}

+ 277 - 0
examples/sprite/tint/tint.collection

@@ -0,0 +1,277 @@
+name: "tint"
+scale_along_z: 0
+embedded_instances {
+  id: "logo1"
+  data: "embedded_components {\n"
+  "  id: \"sprite\"\n"
+  "  type: \"sprite\"\n"
+  "  data: \"tile_set: \\\"/assets/sprites.atlas\\\"\\n"
+  "default_animation: \\\"logo-color\\\"\\n"
+  "material: \\\"/builtins/materials/sprite.material\\\"\\n"
+  "blend_mode: BLEND_MODE_ALPHA\\n"
+  "\"\n"
+  "  position {\n"
+  "    x: 0.0\n"
+  "    y: 0.0\n"
+  "    z: 0.0\n"
+  "  }\n"
+  "  rotation {\n"
+  "    x: 0.0\n"
+  "    y: 0.0\n"
+  "    z: 0.0\n"
+  "    w: 1.0\n"
+  "  }\n"
+  "}\n"
+  ""
+  position {
+    x: 120.0
+    y: 120.0
+    z: 0.0
+  }
+  rotation {
+    x: 0.0
+    y: 0.0
+    z: 0.0
+    w: 1.0
+  }
+  scale3 {
+    x: 1.0
+    y: 1.0
+    z: 1.0
+  }
+}
+embedded_instances {
+  id: "logo2"
+  data: "embedded_components {\n"
+  "  id: \"sprite\"\n"
+  "  type: \"sprite\"\n"
+  "  data: \"tile_set: \\\"/assets/sprites.atlas\\\"\\n"
+  "default_animation: \\\"logo-color\\\"\\n"
+  "material: \\\"/builtins/materials/sprite.material\\\"\\n"
+  "blend_mode: BLEND_MODE_ALPHA\\n"
+  "\"\n"
+  "  position {\n"
+  "    x: 0.0\n"
+  "    y: 0.0\n"
+  "    z: 0.0\n"
+  "  }\n"
+  "  rotation {\n"
+  "    x: 0.0\n"
+  "    y: 0.0\n"
+  "    z: 0.0\n"
+  "    w: 1.0\n"
+  "  }\n"
+  "}\n"
+  ""
+  position {
+    x: 600.0
+    y: 120.0
+    z: 0.0
+  }
+  rotation {
+    x: 0.0
+    y: 0.0
+    z: 0.0
+    w: 1.0
+  }
+  scale3 {
+    x: 1.0
+    y: 1.0
+    z: 1.0
+  }
+}
+embedded_instances {
+  id: "logo3"
+  data: "embedded_components {\n"
+  "  id: \"sprite\"\n"
+  "  type: \"sprite\"\n"
+  "  data: \"tile_set: \\\"/assets/sprites.atlas\\\"\\n"
+  "default_animation: \\\"logo-color\\\"\\n"
+  "material: \\\"/builtins/materials/sprite.material\\\"\\n"
+  "blend_mode: BLEND_MODE_ALPHA\\n"
+  "\"\n"
+  "  position {\n"
+  "    x: 0.0\n"
+  "    y: 0.0\n"
+  "    z: 0.0\n"
+  "  }\n"
+  "  rotation {\n"
+  "    x: 0.0\n"
+  "    y: 0.0\n"
+  "    z: 0.0\n"
+  "    w: 1.0\n"
+  "  }\n"
+  "}\n"
+  ""
+  position {
+    x: 120.0
+    y: 480.0
+    z: 0.0
+  }
+  rotation {
+    x: 0.0
+    y: 0.0
+    z: 0.0
+    w: 1.0
+  }
+  scale3 {
+    x: 1.0
+    y: 1.0
+    z: 1.0
+  }
+}
+embedded_instances {
+  id: "logo4"
+  data: "embedded_components {\n"
+  "  id: \"sprite\"\n"
+  "  type: \"sprite\"\n"
+  "  data: \"tile_set: \\\"/assets/sprites.atlas\\\"\\n"
+  "default_animation: \\\"logo-color\\\"\\n"
+  "material: \\\"/builtins/materials/sprite.material\\\"\\n"
+  "blend_mode: BLEND_MODE_ALPHA\\n"
+  "\"\n"
+  "  position {\n"
+  "    x: 0.0\n"
+  "    y: 0.0\n"
+  "    z: 0.0\n"
+  "  }\n"
+  "  rotation {\n"
+  "    x: 0.0\n"
+  "    y: 0.0\n"
+  "    z: 0.0\n"
+  "    w: 1.0\n"
+  "  }\n"
+  "}\n"
+  ""
+  position {
+    x: 600.0
+    y: 480.0
+    z: 0.0
+  }
+  rotation {
+    x: 0.0
+    y: 0.0
+    z: 0.0
+    w: 1.0
+  }
+  scale3 {
+    x: 1.0
+    y: 1.0
+    z: 1.0
+  }
+}
+embedded_instances {
+  id: "logo5"
+  data: "embedded_components {\n"
+  "  id: \"sprite\"\n"
+  "  type: \"sprite\"\n"
+  "  data: \"tile_set: \\\"/assets/sprites.atlas\\\"\\n"
+  "default_animation: \\\"logo-color\\\"\\n"
+  "material: \\\"/builtins/materials/sprite.material\\\"\\n"
+  "blend_mode: BLEND_MODE_ALPHA\\n"
+  "\"\n"
+  "  position {\n"
+  "    x: 0.0\n"
+  "    y: 0.0\n"
+  "    z: 0.0\n"
+  "  }\n"
+  "  rotation {\n"
+  "    x: 0.0\n"
+  "    y: 0.0\n"
+  "    z: 0.0\n"
+  "    w: 1.0\n"
+  "  }\n"
+  "}\n"
+  ""
+  position {
+    x: 360.0
+    y: 640.0
+    z: 0.0
+  }
+  rotation {
+    x: 0.0
+    y: 0.0
+    z: 0.0
+    w: 1.0
+  }
+  scale3 {
+    x: 1.0
+    y: 1.0
+    z: 1.0
+  }
+}
+embedded_instances {
+  id: "logo6"
+  data: "embedded_components {\n"
+  "  id: \"sprite\"\n"
+  "  type: \"sprite\"\n"
+  "  data: \"tile_set: \\\"/assets/sprites.atlas\\\"\\n"
+  "default_animation: \\\"logo-color\\\"\\n"
+  "material: \\\"/builtins/materials/sprite.material\\\"\\n"
+  "blend_mode: BLEND_MODE_ALPHA\\n"
+  "\"\n"
+  "  position {\n"
+  "    x: 0.0\n"
+  "    y: 0.0\n"
+  "    z: 0.0\n"
+  "  }\n"
+  "  rotation {\n"
+  "    x: 0.0\n"
+  "    y: 0.0\n"
+  "    z: 0.0\n"
+  "    w: 1.0\n"
+  "  }\n"
+  "}\n"
+  ""
+  position {
+    x: 360.0
+    y: 320.0
+    z: 0.0
+  }
+  rotation {
+    x: 0.0
+    y: 0.0
+    z: 0.0
+    w: 1.0
+  }
+  scale3 {
+    x: 1.0
+    y: 1.0
+    z: 1.0
+  }
+}
+embedded_instances {
+  id: "go"
+  data: "components {\n"
+  "  id: \"tint\"\n"
+  "  component: \"/examples/sprite/tint/tint.script\"\n"
+  "  position {\n"
+  "    x: 0.0\n"
+  "    y: 0.0\n"
+  "    z: 0.0\n"
+  "  }\n"
+  "  rotation {\n"
+  "    x: 0.0\n"
+  "    y: 0.0\n"
+  "    z: 0.0\n"
+  "    w: 1.0\n"
+  "  }\n"
+  "}\n"
+  ""
+  position {
+    x: 0.0
+    y: 0.0
+    z: 0.0
+  }
+  rotation {
+    x: 0.0
+    y: 0.0
+    z: 0.0
+    w: 1.0
+  }
+  scale3 {
+    x: 1.0
+    y: 1.0
+    z: 1.0
+  }
+}

+ 11 - 0
examples/sprite/tint/tint.md

@@ -0,0 +1,11 @@
+---
+title: Sprite tint
+brief: This example shows how tint a sprite at run-time
+scripts: tint.script
+---
+
+The example uses a script to tint (color) sprites in a couple of different ways. The tint is a fragment constant on the sprite material and it is used in the sprite.fp fragment shader program to modify the color sampled from the texture.
+
+It is important to keep in mind that each tinted sprite generates a new draw call since a modified tint value will break the built in draw call batching in Defold.
+
+![tint](tint.png)

+ 14 - 0
examples/sprite/tint/tint.script

@@ -0,0 +1,14 @@
+function init(self)
+	go.set("logo1#sprite", "tint", vmath.vector4(1, 0, 0, 1)) -- <1>
+	go.set("logo2#sprite", "tint.x", 0) -- <2>
+	go.set("logo3#sprite", "tint.w", 0.3) -- <3>
+	go.animate("logo4#sprite", "tint", go.PLAYBACK_LOOP_PINGPONG, vmath.vector4(0, 0.5, 0.8, 1), go.EASING_INOUTQUAD, 2) -- <4>
+	go.animate("logo5#sprite", "tint.w", go.PLAYBACK_LOOP_PINGPONG, 0, go.EASING_INOUTQUAD, 3) -- <4>
+end
+
+--[[
+1. x,y,z,w -> r,g,b,a. Keep read and alpha. Remove green and blue.
+2. x = red. Remove the red color component completely
+3. w = alpha. Make the sprite semi-transparent
+4. The tint property can be animated, either as a whole or each individual value
+--]]