
Name: Macy
Bio: Macy Kuang is a Senior Android Programmer at theScore, Inc where she works on one of the top sports apps in the world, theScore Mobile. Macy is also a professional Game Programmer, having worked on titles such as Modern Combat, Asphalt and Fashion Icon while at GameLoft. In addition to programming, Macy is on the Organizing Committee for AndroidTO, the annual Android Conference, and a regular contributor to the Google Developer Group, Toronto.
Posts by Macy:
Planet Jumper works on Google Glass!
May 18th, 2013Planet Jumper works on Google Glass!
How to Install:
1. Download the APK
2. If you don’t have ADB, please install it and add it to your Path
3. In Terminal, type adb install (path to the apk)
4. Turn on Debug Mode Settings ->Device info -> Turn on debug
5. Run the app:
when the Glass is awake, type in Terminal:
adb shell am start -n com.MiaomiaoGames.Mining/com.unity3d.player.UnityPlayerProxyActivity
5. Uninstall the app:
adb uninstall com.MiaomiaoGames.Mining
How to Play:
1. Swipe Down to start the game
2. Wait around 5 seconds for the game to load
3. Move your head up to move the Drill
4. Find the final game item!
5. Swipe Down to go back to Main Menu
6. Tilt your head Right to close the game
You can find this game on Google Play Store for Android Phones.
Click Here.
Get Random Color in Unity
May 10th, 2013I was looking for a solution to get a random bight color in Unity.

I found a very useful article on Unity Forums, however, it didn’t work for me right the way.
This is the version I have edited in C#.
using UnityEngine;
/**
* A color in HSV space
*/
class ColorHSV : System.Object
{
public static string stringData;
private float h;
private float s;
private float v;
private float a;
/**
* Construct without alpha (which defaults to 1)
*/
public ColorHSV (float h ,float s ,float v){
this.h = h;
this.s = s;
this.v = v;
this.a = 1.0f;
}
/**
* Construct with alpha
*/
public ColorHSV (float h , float s, float v,float a){
this.h = h;
this.s = s;
this.v = v;
this.a = a;
}
/**
* Create from an RGBA color object
*/
public ColorHSV ( Color color ){
float min = Mathf.Min(Mathf.Min(color.r, color.g), color.b);
float max = Mathf.Max(Mathf.Max(color.r, color.g), color.b);
float delta = max - min;
// value is our max color
this.v = max;
// saturation is percent of max
if(!Mathf.Approximately(max, 0)){
this.s = delta / max;
}else{
// all colors are zero, no saturation and hue is undefined
this.s = 0;
this.h = -1;
return;
}
// grayscale image if min and max are the same
if(Mathf.Approximately(min, max)){
this.v = max;
this.s = 0;
this.h = -1;
return;
}
// hue depends which color is max (this creates a rainbow effect)
if( color.r == max ){
this.h = ( color.g - color.b ) / delta; // between yellow & magenta
}else if( color.g == max ){
this.h = 2 + ( color.b - color.r ) / delta; // between cyan & yellow
}else{
this.h = 4 + ( color.r - color.g ) / delta; // between magenta & cyan
}
// turn hue into 0-360 degrees
this.h *= 60;
if(this.h < 0 ){
this.h += 360;
}
}
/**
* Return an RGBA color object
*/
public Color ToColor (){
// no saturation, we can return the value across the board (grayscale)
if(this.s == 0 ){
return new Color(this.v, this.v, this.v, this.a);
}
// which chunk of the rainbow are we in?
float sector = this.h / 60;
// split across the decimal (ie 3.87f into 3 and 0.87f)
int i;
i = (int)Mathf.Floor(sector);
float f = sector - i;
float v = this.v;
float p = v * ( 1 - s );
float q = v * ( 1 - s * f );
float t = v * ( 1 - s * ( 1 - f ) );
// build our rgb color
Color color = new Color(0, 0, 0, this.a);
switch(i){
case 0:
color.r = v;
color.g = t;
color.b = p;
break;
case 1:
color.r = q;
color.g = v;
color.b = p;
break;
case 2:
color.r = p;
color.g = v;
color.b = t;
break;
case 3:
color.r = p;
color.g = q;
color.b = v;
break;
case 4:
color.r = t;
color.g = p;
color.b = v;
break;
default:
color.r = v;
color.g = p;
color.b = q;
break;
}
return color;
}
public static Color GetRandomColor(float h ,float s ,float v){
ColorHSV col = new ColorHSV(h,s,v);
return col.ToColor();
}
}
You can get a bright color by calling:
Color newColor = ColorHSV.GetRandomColor(Random.Range(0.0f, 360f), 1, 1);
If you also want grey or brownish color you can random all of the H, S, V values.
There is also a simple way to get random color by picking a random RGB color.
using UnityEngine;
public class GetRandomColor{
public static Color GetColor(){
return new Color(Random.Range(0.0f,1f),Random.Range(0.0f,1f), Random.Range(0.0f,1f));
}
}
To use it, just
GetRandomColor.GetColor();
Develop for Google Glass
May 7th, 2013I was trying to start the Python Quick Start for Google Glass.
I kept getting error like “Error: redirect_uri_mismatch”.
The solution was to change the http://myappengineinstance.appspot.com/oauth2callback to https://myappengineinstance.appspot.com/oauth2callback in the API Console because it is secured.
Here is the link of Python Glass Development Quick Start:
https://developers.google.com/glass/quickstart/python
You can download the project at GitHub
https://github.com/googleglass/mirror-quickstart-python
Planet Jumper
May 7th, 2013We made a mobile game within 3 days at TOJAM last week, it is called Planet Jumper.
Planet Jumper is an upcoming IOS and Android Mobile Game. In this game you will need to save each planets from exploding by remove the dangerous item from the underground.
Society of Glass Enthusiasts: Canada
April 28th, 2013If you are interested in following Google Glass info in Canada, please join our G+ Community
Society of Glass Enthusiasts: Canada
https://plus.google.com/u/0/communities/100945667585978119297
Space Friends!
April 21st, 2013After 3 days of hacking at the Toronto Space App Challenge, my team and I made a game called Space Friends to help kids understand the importance of Space Station.
Read More →





