Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Hello CocosSharp
Search
Mike Bluestein
October 11, 2014
Technology
190
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Hello CocosSharp
Mike Bluestein
October 11, 2014
More Decks by Mike Bluestein
See All by Mike Bluestein
Intro_to_Scene_Kit.pdf
mikebluestein
1
120
Other Decks in Technology
See All in Technology
“ID沼入口” - 基本とセキュリティから始める、考え続けるためのID管理技術勉強会 告知&イントロ
ritou
0
360
40代で“やっとエンジニアになれた”――閉じた学びを開き、空の青さを知る / 20260628 Naoki Takahashi
shift_evolve
PRO
4
1.5k
デジタル・デザイン構想 by Sayaka Ishizuka
y150saya
0
160
勉強会企画をアプリで構造化してみた 〜そこで見えた、AIとの付き合い方〜 / I've structured a study group plan using an app.
pauli
0
260
BPaaSで進むAIオペレーションの現在地 AI実装が効く領域とスケーラビリティの選定と実装
kentarofujii
0
240
Text-to-SQLをAgentCoreで実現し、生成されるSQLの精度を定量的に評価する
yakumo
2
320
GitHub Copilot運用のリアル ~AI Credit時代にどう向き合うか~
takafumisu2uk1
0
590
組織における AI-DLC 実践
askul
0
260
“全部コピーしない”ファイルデータの活用 : — FSx for ONTAP × S3 Tables × Icebergで作るメタデータカタログ
yoshiki0705
0
190
product engineering with qa
nealle
0
130
プライバシー保護の理論と実践
lycorptech_jp
PRO
1
210
從觀望到全公司落地:AI Agentic Coding 導入實戰 — 流程整合與安全治理
appleboy
1
400
Featured
See All Featured
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
650
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
150
Become a Pro
speakerdeck
PRO
31
6k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
380
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
360
Thoughts on Productivity
jonyablonski
76
5.2k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Build your cross-platform service in a week with App Engine
jlugia
234
18k
How to build a perfect <img>
jonoalderson
1
5.8k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
The Cost Of JavaScript in 2023
addyosmani
55
10k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
410
Transcript
Hello CocosSharp Developer Evangelist @mikebluestein Mike Bluestein
“CocosSharp blends the power of the Cocos2D programming model with
C# and the .NET Framework…the API has been designed to follow C# and .NET idioms.” Miguel de Icaza Xamarin
“It’s so cool” Mike Bluestein Xamarin
Cross Platform
What Makes Up the Game • Application • Scenes •
Layers • Sprites • Actions • Other cool stuff - Particle systems, audio, physics …
CocosSharp API
CCApplication • Creates and initializes the graphics device • Sets
the application delegate • Starts the game
var app = new CCApplication (); app.ApplicationDelegate = new
GoneBananasApplicationDelegate (); app.StartGame (); CCApplication
• Handles application lifecycle • Similar to UIApplicationDelegate in iOS
• Set the application’s content folder • Load the main window’s first scene CCApplicationDelegate
public virtual void ApplicationDidEnterBackground (CCApplication application) public virtual void
ApplicationDidFinishLaunching (CCApplication application, CCWindow mainWindow) public virtual void ApplicationWillEnterForeground (CCApplication application) CCApplicationDelegate
Content Folder Project Folder Containing Resources ▪ Fonts ▪ Sounds
▪ Images Set via application’s ContentRootDirector application.ContentRootDirectory = "Content";
CCDirector Window.DefaultDirector.ReplaceScene (GameLayer.GameScene (Window)); • Available via Window.DefaultDirector • Manages
any additional scene loading
CCDirector
CCDirector
CCScene • Manages game logic for various portions of the
game • Contains layers (CCLayer)
CCScene • Manages game logic for various portions of the
game • Contains layers (CCLayer)
CCLayer • Added to scene • Contains node tree (sprites,
labels, menus, etc) • Schedule method to run code at repeated interval • Creates the scene for which it is a child
CCLayer var scene = new CCScene (mainWindow); var layer =
new GameStartLayer (); scene.AddChild (layer); return scene;
• Sprites are nodes that create images in the game
• Image file must be in Content folder • Include high definition image using -hd convention CCSprite
• Efficient sprite loading • Renders all children CCSpriteBatch
CCAction • Actions perform tasks on nodes • For example,
animating sprites • Can run multiple actions sequentially using CCSequence
CCTouch • Encapsulates a touch on the screen • Set
TouchEnabled to true in layer • Override touch methods in layer ▪ TouchesBegan, TouchesMoved, TouchesEnded, etc
Accelerometer • Available via CCAccelerometer • Access with Window.Accelerometer
Window.Accelerometer.Enabled = true; var listener = new CCEventListenerAccelerometer(); listener.OnAccelerate =
DidAccelerate; AddEventListener (listener); public void DidAccelerate(CCEventAccelerate accelEvent) { accelEvent.Acceleration.X; accelEvent.Acceleration.Y; accelEvent.Acceleration.Z; } Accelerometer
Audio • SimpleAudioEngine.SharedEngine ▪ Sound Effects ▪ Background Sound •
Pause/Resume background sound in CCApplicationDelegate ▪ Pause when app enters background ▪ Resume when app enters foreground
Drawing Primitives • CCDrawNode • Draw lines, polygons, circles, etc
…
var draw = new CCDrawNode(); draw.DrawPolygon( star, star.Length,
new CCColor4F(1, 0, 0, 0.5f), 1, new CCColor4F(0, 0, 1, 1)); Drawing Primitives
Particle Systems • Graphical effects by rendering a set of
particles • Several built in - smoke, galaxy, rain, … • Can add custom particle systems
var sun = new CCParticleSun (pt); sun.StartColor = new CCColor4F
(CCColor3B.Red); sun.EndColor = new CCColor4F (CCColor3B.Yellow); Particle Systems
var sun = new CCParticleSun (pt); sun.StartColor = new CCColor4F
(CCColor3B.Red); sun.EndColor = new CCColor4F (CCColor3B.Yellow); Particle Systems
Parallax • CCParallaxNode • Children move at different relative speeds
Parallax • CCParallaxNode • Children move at different relative speeds
var parallaxClouds = new CCParallaxNode { Position = new CCPoint
(0, h) }; float yRatio1 = 1.0f; float yRatio2 = 0.5f; parallaxClouds.AddChild (cloud1, 0, new CCPoint (1.0f, yRatio1), new CCPoint (100, -100 + h - (h * yRatio1))); parallaxClouds.AddChild (cloud2, 0, new CCPoint (1.0f, yRatio2), new CCPoint (250, -200 + h - (h * yRatio2))); Parallax
Effects • Lots of visual effects • Waves, Twirl, Lens3D,
Shuffle Tiles, … • Implemented using actions
var flipx = new CCFlipX3D(t); CCFiniteTimeAction flipx_back = flipx.Reverse(); var
delay = new CCDelayTime (2); return new CCSequence(flipx, delay, flipx_back); Effects
Physics • 2D Rigid Body Physics • C# port of
Box2D • world, body, shape, fixture
var def = new b2BodyDef (); … b2Body body =
world.CreateBody (def); var circle = new b2CircleShape (); … var fd = new b2FixtureDef (); fd.shape = circle; … body.CreateFixture (fd); Physics
Demo
Gone Bananas Demonstrates Many CocosSharp Features ▪ Parallax ▪ Particles
▪ Touch handling ▪ Physics ▪ Sprite creation ▪ Actions ▪ Scene transitions ▪ Sprite sheet animation ▪ Sprite batching
CocosSharp Resources • Source - github.com/mono/CocosSharp • Samples - github.com/mono/cocos-sharp-samples
Thank You! Mike Bluestein @mikebluestein