 <p>For anyone having the same issue with CocosSharp (the Xamarin C# port of Cocos2D):</p> <p>To convert a CCColor3B to a CCColor4F, you can pass in the CCColor3B as a argument to the constructor of CCColor4F. For example:</p> <pre><code>var color = new CCColor4F (CCColor3B.Red); </code></pre> <p>CCColor4B doesn't have a constructor with CCColor3B as an argument, so you have to pass in the individual values for Red, Green, and Blue, as follows:</p> <pre><code>var sourceColor = CCColor3B.Red; var color = new CCColor4B (sourceColor.R. sourceColor.G, sourceColor.B); </code></pre> <p>I like to create extension methods to encapsulate the above, as follows:</p> <pre><code>public static class ColorExtensions { public static CCColor4F ToColor4F(this CCColor3B sourceColor) { return new CCColor4F (sourceColor); } public static CCColor4B ToColor4B(this CCColor3B sourceColor) { return new CCColor4B (sourceColor.R, sourceColor.G, sourceColor.B); } } </code></pre> <p>So you can then perform conversions using the following:</p> <pre><code>var bColor = CCColor3B.ToColor4B(); var fColor = CCColor3B.ToColor4F(); </code></pre>