SlideShare a Scribd company logo
1 of 29
WaveEngine Team
@waveengineteam
http://waveengine.net
WaveEngine Components
Component Based Game
Engine
Component types
Componentes
Drawables
Behaviors
2D Components
Components Behavior Drawable
• Transform2D
• Sprite
• SpriteAtlas
• Material2D
• ParticleSystem2D
• Joint2D
• TouchGestures
• SkeletalAnimation
• Animation2D
• AnimationUI
• Collider2D
• RigidBody2D
• SpriteRenderer
• SpriteAtlasRenderer
• QuadRenderer
• AnimatedSpriteRenderer
• ParticleSystemRenderer2d
Entity
To draw a sprite
Transform2D
Sprite
SpriteRenderer
To draw a sprite
Entity sprite = new Entity("mySprite")
.AddComponent(new Transform2D())
.AddComponent(new Sprite("Content/texture.wpk"))
.AddComponent(new SpriteRenderer(DefaultLayers.Opaque));
EntityManager.Add(sprite);
Transfom2D
.AddComponent(new Transform2D()
{
Origin = Vector2.Center // [0,0] – [1,1]
X = 100, //0 Default
Y = 100, // 0 Default
XScale = 1.5f, // 1 Default
YScale = 1.5f, // 1 Default
Rotation = Math.PI, // 0 Default
Opacity = 0.6f, // [0-1] 0 Alpha, 1 Opaque (default)
DrawOrder = 0.3f, //[0-1] 0 Front, 1 Back Default:0.5f
})
Sprite
.AddComponent(new Sprite(“Content/texture.wpk”)
{
IsGlobalAsset = true, // Default: False
TintColor = Color.Red, //Default Color.White
SourceRectangle = new Rectangle(0, 0, 100, 100);
})
Opaque
Alpha
Additive
GUI
SpriteRenderer
.AddComponent(new SpriteRenderer(DefaultLayers.Opaque))
Debug
To draw a sprite from Atlas
Entity sprite = new Entity("mySprite")
.AddComponent(new Transform2D())
.AddComponent(new SpriteAtlas("Content/atlas.wpk", “textureInAtlas”))
.AddComponent(new SpriteAtlasRenderer(DefaultLayers.Opaque));
EntityManager.Add(sprite);
Simple property animation
var move = new SingleAnimation(0,100, TimeSpan.FromSeconds(2f), EasingFunctions.Back);
PropertyValue = 0 PropertyValue = 100
2 seconds
Simple entity animation
Entity sprite = new Entity("mySprite")
.AddComponent(new Transform2D())
.AddComponent(new AnimationUI())
.AddComponent(new Sprite("Content/texture.wpk"))
.AddComponent(new SpriteRenderer(DefaultLayers.Opaque));
EntityManager.Add(sprite);
AnimationUI animation = sprite.FindComponent<AnimationUI>();
animation.BeginAnimation(Transform2D.XProperty, move);
Collision detection
Collider2D
• RectangleCollider
• CircleCollider
• PerPixelCollider
Collision detection
Entity sprite = new Entity("mySprite")
.AddComponent(new Transform2D())
.AddComponent(new RectangleCollider())
.AddComponent(new Sprite("Content/texture.wpk"))
.AddComponent(new SpriteRenderer(DefaultLayers.Opaque));
EntityManager.Add(sprite);
Collider2D collider = sprite.FindComponent<RectangleCollider>();
collider.Intersects(otherCollider);
To draw an animated character(SpriteSheet)
Texture Packer (SpriteSheet)
http://www.codeandweb.com/texturepacker
To draw an animated character(SpriteSheet)
Entity player= new Entity(“myPlayer")
.AddComponent(new Transform2D())
.AddComponent(new Sprite("Content/spriteSheet.wpk"))
.AddComponent(Animation2D.Create<TexturePackerGenericXml>(“Content/spriteSheet.xml")
.Add("idle", new SpriteSheetAnimationSequence() { First = 1, Length = 8}))
.Add("run", new SpriteSheetAnimationSequence() { First = 9, Length = 8}))
.AddComponent(new AnimatedSpriteRenderer(DefaultLayers.Opaque));
EntityManager.Add(player);
To draw an animated character (Skeleton)
To draw an animated character (Skeleton)
http://esotericsoftware.com/
To draw an animated character (Skeleton)
Entity player = new Entity(“myPlayer")
.AddComponent(new Transform2D())
.AddComponent(new SkeletalData("Content/spriteSheet.atlas"))
.AddComponent(new SkeletalAnimation("Content/spriteSheet.json"))
.AddComponent(new SkeletalRenderer());
EntityManager.Add(player);
2D Particle system
2D Particle system
Entity smokeParticles= new Entity(“myPlayer")
.AddComponent(new Transform2D())
.AddComponent(new ParticleSystem2D() { //Parameters })
.AddComponent(new Material2D(new BasicMaterial2D("Content/particleTexture.wpk")))
.AddComponent(new ParticleSystemRenderer2D(“smoke", DefaultLayers.Alpha));
EntityManager.Add(smokeParticles);
2D Particle system
.AddComponent(new ParticleSystem2D()
{ //Parameters
NumParticles = 100,
EmitRate = 1500,
MinLife = TimeSpan.FromSeconds(1f), MaxLife = TimeSpan.FromSeconds(3f),
LocalVelocity = new Vector2(0f, 0f),
RandomVelocity = new Vector2(3f, 2.5f),
MinSize = 15, MaxSize = 40,
MinRotateSpeed = 0.03f, MaxRotateSpeed = -0.03f,
EndDeltaScale = 0f,
EmitterSize = new Vector2(30),
Gravity = new Vector2(0, 0.03f),
EmitterShape = ParticleSystem2D.Shape.FillCircle,
Emit = false,
})
2D physics components
• WaveEngine integrates the Box2D implementation in C# called
FarseerPhysics.
• Offers a component based interface
• Not all Box2D feature are available in the current version, but the
most important ones are.
2D physics components
Entity sprite = new Entity("mySprite")
.AddComponent(new Transform2D())
.AddComponent(new RectangleCollider())
.AddComponent(new RigidBody2D() { //Parameters})
.AddComponent(new Sprite("Content/texture.wpk"))
.AddComponent(new SpriteRenderer(DefaultLayers.Opaque));
EntityManager.Add(sprite);
2D physics components
.AddComponent(new RigidBody2D()
{ //Parameters
Mass = 4f, // Default: 2f
Friction = 1f, // Default: 0.5f
Damping = 0.8f, // Default: 0.4f
Restitution = 0.5f, // Default: 0.3f
CollisionCategories = Physic2DCategory.Cat1,
CollidesWith = Physic2DCategory.Cat2,
IsKinematic = true, // Default: false
})
2D physics components
Joint2D
• AngleJoint2D
• DistanceJoint2D
• FixedJoint
• FixedMouseJoint2D
• PrismaticJoint2D
• RevoluteJoint2D
UI Components
UIBase
• Button
• CheckBox
• Grid
• Image
• Panel
• ProgressBar
• RadioButton
• Slider
• Stack
• TextBlock
• TextBox
• ToggleSwitch
• Wrap
Thank you
WaveEngine Team
@waveengineteam
http://waveengine.net

More Related Content

What's hot

Vielseitiges In-Memory Computing mit Apache Ignite und Kubernetes
Vielseitiges In-Memory Computing mit Apache Ignite und KubernetesVielseitiges In-Memory Computing mit Apache Ignite und Kubernetes
Vielseitiges In-Memory Computing mit Apache Ignite und KubernetesQAware GmbH
 
Appengine ja-night-sapporo#1 bt
Appengine ja-night-sapporo#1 btAppengine ja-night-sapporo#1 bt
Appengine ja-night-sapporo#1 btShinichi Ogawa
 
The Ring programming language version 1.4.1 book - Part 16 of 31
The Ring programming language version 1.4.1 book - Part 16 of 31The Ring programming language version 1.4.1 book - Part 16 of 31
The Ring programming language version 1.4.1 book - Part 16 of 31Mahmoud Samir Fayed
 
Getting Started with Datatsax .Net Driver
Getting Started with Datatsax .Net DriverGetting Started with Datatsax .Net Driver
Getting Started with Datatsax .Net DriverDataStax Academy
 
JCConf 2015 - 輕鬆學google的雲端開發 - Google App Engine入門(上)
JCConf 2015  - 輕鬆學google的雲端開發 - Google App Engine入門(上)JCConf 2015  - 輕鬆學google的雲端開發 - Google App Engine入門(上)
JCConf 2015 - 輕鬆學google的雲端開發 - Google App Engine入門(上)Simon Su
 
[Hatsune Miku] Shoot Frieza with Amazon Kinesis ! [EN]
[Hatsune Miku] Shoot Frieza with Amazon Kinesis ! [EN][Hatsune Miku] Shoot Frieza with Amazon Kinesis ! [EN]
[Hatsune Miku] Shoot Frieza with Amazon Kinesis ! [EN]崇之 清水
 
The Ring programming language version 1.5.2 book - Part 28 of 181
The Ring programming language version 1.5.2 book - Part 28 of 181The Ring programming language version 1.5.2 book - Part 28 of 181
The Ring programming language version 1.5.2 book - Part 28 of 181Mahmoud Samir Fayed
 
Fun Teaching MongoDB New Tricks
Fun Teaching MongoDB New TricksFun Teaching MongoDB New Tricks
Fun Teaching MongoDB New TricksMongoDB
 
The Ring programming language version 1.7 book - Part 32 of 196
The Ring programming language version 1.7 book - Part 32 of 196The Ring programming language version 1.7 book - Part 32 of 196
The Ring programming language version 1.7 book - Part 32 of 196Mahmoud Samir Fayed
 
Taller evento TestingUY 2017 - API Testing utilizando Chakram
Taller evento TestingUY 2017 - API Testing utilizando ChakramTaller evento TestingUY 2017 - API Testing utilizando Chakram
Taller evento TestingUY 2017 - API Testing utilizando ChakramTestingUy
 
The Ring programming language version 1.5.1 book - Part 27 of 180
The Ring programming language version 1.5.1 book - Part 27 of 180The Ring programming language version 1.5.1 book - Part 27 of 180
The Ring programming language version 1.5.1 book - Part 27 of 180Mahmoud Samir Fayed
 
Protocol Oriented JSON Parsing in Swift
Protocol Oriented JSON Parsing in SwiftProtocol Oriented JSON Parsing in Swift
Protocol Oriented JSON Parsing in SwiftJason Larsen
 
MySQL flexible schema and JSON for Internet of Things
MySQL flexible schema and JSON for Internet of ThingsMySQL flexible schema and JSON for Internet of Things
MySQL flexible schema and JSON for Internet of ThingsAlexander Rubin
 
The Ring programming language version 1.5.3 book - Part 29 of 184
The Ring programming language version 1.5.3 book - Part 29 of 184The Ring programming language version 1.5.3 book - Part 29 of 184
The Ring programming language version 1.5.3 book - Part 29 of 184Mahmoud Samir Fayed
 
Entity System Architecture with Unity - Unite Europe 2015
Entity System Architecture with Unity - Unite Europe 2015Entity System Architecture with Unity - Unite Europe 2015
Entity System Architecture with Unity - Unite Europe 2015Simon Schmid
 
Experienced Selenium Interview questions
Experienced Selenium Interview questionsExperienced Selenium Interview questions
Experienced Selenium Interview questionsarchana singh
 
TweenJS for Everything
TweenJS for EverythingTweenJS for Everything
TweenJS for Everythingyomotsu
 

What's hot (20)

Vielseitiges In-Memory Computing mit Apache Ignite und Kubernetes
Vielseitiges In-Memory Computing mit Apache Ignite und KubernetesVielseitiges In-Memory Computing mit Apache Ignite und Kubernetes
Vielseitiges In-Memory Computing mit Apache Ignite und Kubernetes
 
Appengine ja-night-sapporo#1 bt
Appengine ja-night-sapporo#1 btAppengine ja-night-sapporo#1 bt
Appengine ja-night-sapporo#1 bt
 
Functions
FunctionsFunctions
Functions
 
The Ring programming language version 1.4.1 book - Part 16 of 31
The Ring programming language version 1.4.1 book - Part 16 of 31The Ring programming language version 1.4.1 book - Part 16 of 31
The Ring programming language version 1.4.1 book - Part 16 of 31
 
Getting Started with Datatsax .Net Driver
Getting Started with Datatsax .Net DriverGetting Started with Datatsax .Net Driver
Getting Started with Datatsax .Net Driver
 
JCConf 2015 - 輕鬆學google的雲端開發 - Google App Engine入門(上)
JCConf 2015  - 輕鬆學google的雲端開發 - Google App Engine入門(上)JCConf 2015  - 輕鬆學google的雲端開發 - Google App Engine入門(上)
JCConf 2015 - 輕鬆學google的雲端開發 - Google App Engine入門(上)
 
[Hatsune Miku] Shoot Frieza with Amazon Kinesis ! [EN]
[Hatsune Miku] Shoot Frieza with Amazon Kinesis ! [EN][Hatsune Miku] Shoot Frieza with Amazon Kinesis ! [EN]
[Hatsune Miku] Shoot Frieza with Amazon Kinesis ! [EN]
 
The Ring programming language version 1.5.2 book - Part 28 of 181
The Ring programming language version 1.5.2 book - Part 28 of 181The Ring programming language version 1.5.2 book - Part 28 of 181
The Ring programming language version 1.5.2 book - Part 28 of 181
 
Fun Teaching MongoDB New Tricks
Fun Teaching MongoDB New TricksFun Teaching MongoDB New Tricks
Fun Teaching MongoDB New Tricks
 
The Ring programming language version 1.7 book - Part 32 of 196
The Ring programming language version 1.7 book - Part 32 of 196The Ring programming language version 1.7 book - Part 32 of 196
The Ring programming language version 1.7 book - Part 32 of 196
 
Game dev 101 part 3
Game dev 101 part 3Game dev 101 part 3
Game dev 101 part 3
 
Taller evento TestingUY 2017 - API Testing utilizando Chakram
Taller evento TestingUY 2017 - API Testing utilizando ChakramTaller evento TestingUY 2017 - API Testing utilizando Chakram
Taller evento TestingUY 2017 - API Testing utilizando Chakram
 
Game dev 101 part 2
Game dev 101   part 2Game dev 101   part 2
Game dev 101 part 2
 
The Ring programming language version 1.5.1 book - Part 27 of 180
The Ring programming language version 1.5.1 book - Part 27 of 180The Ring programming language version 1.5.1 book - Part 27 of 180
The Ring programming language version 1.5.1 book - Part 27 of 180
 
Protocol Oriented JSON Parsing in Swift
Protocol Oriented JSON Parsing in SwiftProtocol Oriented JSON Parsing in Swift
Protocol Oriented JSON Parsing in Swift
 
MySQL flexible schema and JSON for Internet of Things
MySQL flexible schema and JSON for Internet of ThingsMySQL flexible schema and JSON for Internet of Things
MySQL flexible schema and JSON for Internet of Things
 
The Ring programming language version 1.5.3 book - Part 29 of 184
The Ring programming language version 1.5.3 book - Part 29 of 184The Ring programming language version 1.5.3 book - Part 29 of 184
The Ring programming language version 1.5.3 book - Part 29 of 184
 
Entity System Architecture with Unity - Unite Europe 2015
Entity System Architecture with Unity - Unite Europe 2015Entity System Architecture with Unity - Unite Europe 2015
Entity System Architecture with Unity - Unite Europe 2015
 
Experienced Selenium Interview questions
Experienced Selenium Interview questionsExperienced Selenium Interview questions
Experienced Selenium Interview questions
 
TweenJS for Everything
TweenJS for EverythingTweenJS for Everything
TweenJS for Everything
 

Similar to WaveEngine 2D components

Converting Scene Data to DOTS – Unite Copenhagen 2019
Converting Scene Data to DOTS – Unite Copenhagen 2019Converting Scene Data to DOTS – Unite Copenhagen 2019
Converting Scene Data to DOTS – Unite Copenhagen 2019Unity Technologies
 
IntroToEngineDevelopment.pdf
IntroToEngineDevelopment.pdfIntroToEngineDevelopment.pdf
IntroToEngineDevelopment.pdfzakest1
 
a data driven game object system
a data driven game object systema data driven game object system
a data driven game object systemmaa77
 
We Love Performance! How Tic Toc Games Uses ECS in Mobile Puzzle Games
We Love Performance! How Tic Toc Games Uses ECS in Mobile Puzzle GamesWe Love Performance! How Tic Toc Games Uses ECS in Mobile Puzzle Games
We Love Performance! How Tic Toc Games Uses ECS in Mobile Puzzle GamesUnity Technologies
 
Secrets of JavaScript Libraries
Secrets of JavaScript LibrariesSecrets of JavaScript Libraries
Secrets of JavaScript Librariesjeresig
 
Integration of Image Processing Techniques into the Unity Game Engine
Integration of Image Processing Techniques into the Unity Game EngineIntegration of Image Processing Techniques into the Unity Game Engine
Integration of Image Processing Techniques into the Unity Game EngineMatthias Trapp
 
Tools for developing Android Games
 Tools for developing Android Games Tools for developing Android Games
Tools for developing Android GamesPlatty Soft
 
Magic of web components
Magic of web componentsMagic of web components
Magic of web componentsHYS Enterprise
 
Sword fighting with Dagger GDG-NYC Jan 2016
 Sword fighting with Dagger GDG-NYC Jan 2016 Sword fighting with Dagger GDG-NYC Jan 2016
Sword fighting with Dagger GDG-NYC Jan 2016Mike Nakhimovich
 
Unity Class 13 Presentation - .
Unity Class 13 Presentation -           .Unity Class 13 Presentation -           .
Unity Class 13 Presentation - .TaydeMCruz
 
How to Create Custom Shaders in Flutter?
How to Create Custom Shaders in Flutter?How to Create Custom Shaders in Flutter?
How to Create Custom Shaders in Flutter?Flutter Agency
 
OGRE v1.10 manual - The Core Objects
OGRE v1.10 manual - The Core ObjectsOGRE v1.10 manual - The Core Objects
OGRE v1.10 manual - The Core ObjectsRiver Wang
 
Modify the following source code so that when the mouse is clicked w.pdf
Modify the following source code so that when the mouse is clicked w.pdfModify the following source code so that when the mouse is clicked w.pdf
Modify the following source code so that when the mouse is clicked w.pdfarorastores
 
Angular 1.x vs. Angular 2.x
Angular 1.x vs. Angular 2.xAngular 1.x vs. Angular 2.x
Angular 1.x vs. Angular 2.xEyal Vardi
 

Similar to WaveEngine 2D components (20)

#JavaFX.forReal()
#JavaFX.forReal()#JavaFX.forReal()
#JavaFX.forReal()
 
Converting Scene Data to DOTS – Unite Copenhagen 2019
Converting Scene Data to DOTS – Unite Copenhagen 2019Converting Scene Data to DOTS – Unite Copenhagen 2019
Converting Scene Data to DOTS – Unite Copenhagen 2019
 
Unity3 d devfest-2014
Unity3 d devfest-2014Unity3 d devfest-2014
Unity3 d devfest-2014
 
IntroToEngineDevelopment.pdf
IntroToEngineDevelopment.pdfIntroToEngineDevelopment.pdf
IntroToEngineDevelopment.pdf
 
a data driven game object system
a data driven game object systema data driven game object system
a data driven game object system
 
We Love Performance! How Tic Toc Games Uses ECS in Mobile Puzzle Games
We Love Performance! How Tic Toc Games Uses ECS in Mobile Puzzle GamesWe Love Performance! How Tic Toc Games Uses ECS in Mobile Puzzle Games
We Love Performance! How Tic Toc Games Uses ECS in Mobile Puzzle Games
 
Secrets of JavaScript Libraries
Secrets of JavaScript LibrariesSecrets of JavaScript Libraries
Secrets of JavaScript Libraries
 
Shootting Game
Shootting GameShootting Game
Shootting Game
 
Integration of Image Processing Techniques into the Unity Game Engine
Integration of Image Processing Techniques into the Unity Game EngineIntegration of Image Processing Techniques into the Unity Game Engine
Integration of Image Processing Techniques into the Unity Game Engine
 
Tools for developing Android Games
 Tools for developing Android Games Tools for developing Android Games
Tools for developing Android Games
 
Magic of web components
Magic of web componentsMagic of web components
Magic of web components
 
Sword fighting with Dagger GDG-NYC Jan 2016
 Sword fighting with Dagger GDG-NYC Jan 2016 Sword fighting with Dagger GDG-NYC Jan 2016
Sword fighting with Dagger GDG-NYC Jan 2016
 
J Query Presentation of David
J Query Presentation of DavidJ Query Presentation of David
J Query Presentation of David
 
Unity Class 13 Presentation - .
Unity Class 13 Presentation -           .Unity Class 13 Presentation -           .
Unity Class 13 Presentation - .
 
How to Create Custom Shaders in Flutter?
How to Create Custom Shaders in Flutter?How to Create Custom Shaders in Flutter?
How to Create Custom Shaders in Flutter?
 
OGRE v1.10 manual - The Core Objects
OGRE v1.10 manual - The Core ObjectsOGRE v1.10 manual - The Core Objects
OGRE v1.10 manual - The Core Objects
 
Modify the following source code so that when the mouse is clicked w.pdf
Modify the following source code so that when the mouse is clicked w.pdfModify the following source code so that when the mouse is clicked w.pdf
Modify the following source code so that when the mouse is clicked w.pdf
 
Day3.pptx
Day3.pptxDay3.pptx
Day3.pptx
 
Introduction to Jquery
Introduction to JqueryIntroduction to Jquery
Introduction to Jquery
 
Angular 1.x vs. Angular 2.x
Angular 1.x vs. Angular 2.xAngular 1.x vs. Angular 2.x
Angular 1.x vs. Angular 2.x
 

Recently uploaded

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 

Recently uploaded (20)

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 

WaveEngine 2D components

  • 4. 2D Components Components Behavior Drawable • Transform2D • Sprite • SpriteAtlas • Material2D • ParticleSystem2D • Joint2D • TouchGestures • SkeletalAnimation • Animation2D • AnimationUI • Collider2D • RigidBody2D • SpriteRenderer • SpriteAtlasRenderer • QuadRenderer • AnimatedSpriteRenderer • ParticleSystemRenderer2d
  • 5. Entity To draw a sprite Transform2D Sprite SpriteRenderer
  • 6. To draw a sprite Entity sprite = new Entity("mySprite") .AddComponent(new Transform2D()) .AddComponent(new Sprite("Content/texture.wpk")) .AddComponent(new SpriteRenderer(DefaultLayers.Opaque)); EntityManager.Add(sprite);
  • 7. Transfom2D .AddComponent(new Transform2D() { Origin = Vector2.Center // [0,0] – [1,1] X = 100, //0 Default Y = 100, // 0 Default XScale = 1.5f, // 1 Default YScale = 1.5f, // 1 Default Rotation = Math.PI, // 0 Default Opacity = 0.6f, // [0-1] 0 Alpha, 1 Opaque (default) DrawOrder = 0.3f, //[0-1] 0 Front, 1 Back Default:0.5f })
  • 8. Sprite .AddComponent(new Sprite(“Content/texture.wpk”) { IsGlobalAsset = true, // Default: False TintColor = Color.Red, //Default Color.White SourceRectangle = new Rectangle(0, 0, 100, 100); })
  • 10. To draw a sprite from Atlas Entity sprite = new Entity("mySprite") .AddComponent(new Transform2D()) .AddComponent(new SpriteAtlas("Content/atlas.wpk", “textureInAtlas”)) .AddComponent(new SpriteAtlasRenderer(DefaultLayers.Opaque)); EntityManager.Add(sprite);
  • 11. Simple property animation var move = new SingleAnimation(0,100, TimeSpan.FromSeconds(2f), EasingFunctions.Back); PropertyValue = 0 PropertyValue = 100 2 seconds
  • 12. Simple entity animation Entity sprite = new Entity("mySprite") .AddComponent(new Transform2D()) .AddComponent(new AnimationUI()) .AddComponent(new Sprite("Content/texture.wpk")) .AddComponent(new SpriteRenderer(DefaultLayers.Opaque)); EntityManager.Add(sprite); AnimationUI animation = sprite.FindComponent<AnimationUI>(); animation.BeginAnimation(Transform2D.XProperty, move);
  • 13. Collision detection Collider2D • RectangleCollider • CircleCollider • PerPixelCollider
  • 14. Collision detection Entity sprite = new Entity("mySprite") .AddComponent(new Transform2D()) .AddComponent(new RectangleCollider()) .AddComponent(new Sprite("Content/texture.wpk")) .AddComponent(new SpriteRenderer(DefaultLayers.Opaque)); EntityManager.Add(sprite); Collider2D collider = sprite.FindComponent<RectangleCollider>(); collider.Intersects(otherCollider);
  • 15. To draw an animated character(SpriteSheet)
  • 17. To draw an animated character(SpriteSheet) Entity player= new Entity(“myPlayer") .AddComponent(new Transform2D()) .AddComponent(new Sprite("Content/spriteSheet.wpk")) .AddComponent(Animation2D.Create<TexturePackerGenericXml>(“Content/spriteSheet.xml") .Add("idle", new SpriteSheetAnimationSequence() { First = 1, Length = 8})) .Add("run", new SpriteSheetAnimationSequence() { First = 9, Length = 8})) .AddComponent(new AnimatedSpriteRenderer(DefaultLayers.Opaque)); EntityManager.Add(player);
  • 18. To draw an animated character (Skeleton)
  • 19. To draw an animated character (Skeleton) http://esotericsoftware.com/
  • 20. To draw an animated character (Skeleton) Entity player = new Entity(“myPlayer") .AddComponent(new Transform2D()) .AddComponent(new SkeletalData("Content/spriteSheet.atlas")) .AddComponent(new SkeletalAnimation("Content/spriteSheet.json")) .AddComponent(new SkeletalRenderer()); EntityManager.Add(player);
  • 22. 2D Particle system Entity smokeParticles= new Entity(“myPlayer") .AddComponent(new Transform2D()) .AddComponent(new ParticleSystem2D() { //Parameters }) .AddComponent(new Material2D(new BasicMaterial2D("Content/particleTexture.wpk"))) .AddComponent(new ParticleSystemRenderer2D(“smoke", DefaultLayers.Alpha)); EntityManager.Add(smokeParticles);
  • 23. 2D Particle system .AddComponent(new ParticleSystem2D() { //Parameters NumParticles = 100, EmitRate = 1500, MinLife = TimeSpan.FromSeconds(1f), MaxLife = TimeSpan.FromSeconds(3f), LocalVelocity = new Vector2(0f, 0f), RandomVelocity = new Vector2(3f, 2.5f), MinSize = 15, MaxSize = 40, MinRotateSpeed = 0.03f, MaxRotateSpeed = -0.03f, EndDeltaScale = 0f, EmitterSize = new Vector2(30), Gravity = new Vector2(0, 0.03f), EmitterShape = ParticleSystem2D.Shape.FillCircle, Emit = false, })
  • 24. 2D physics components • WaveEngine integrates the Box2D implementation in C# called FarseerPhysics. • Offers a component based interface • Not all Box2D feature are available in the current version, but the most important ones are.
  • 25. 2D physics components Entity sprite = new Entity("mySprite") .AddComponent(new Transform2D()) .AddComponent(new RectangleCollider()) .AddComponent(new RigidBody2D() { //Parameters}) .AddComponent(new Sprite("Content/texture.wpk")) .AddComponent(new SpriteRenderer(DefaultLayers.Opaque)); EntityManager.Add(sprite);
  • 26. 2D physics components .AddComponent(new RigidBody2D() { //Parameters Mass = 4f, // Default: 2f Friction = 1f, // Default: 0.5f Damping = 0.8f, // Default: 0.4f Restitution = 0.5f, // Default: 0.3f CollisionCategories = Physic2DCategory.Cat1, CollidesWith = Physic2DCategory.Cat2, IsKinematic = true, // Default: false })
  • 27. 2D physics components Joint2D • AngleJoint2D • DistanceJoint2D • FixedJoint • FixedMouseJoint2D • PrismaticJoint2D • RevoluteJoint2D
  • 28. UI Components UIBase • Button • CheckBox • Grid • Image • Panel • ProgressBar • RadioButton • Slider • Stack • TextBlock • TextBox • ToggleSwitch • Wrap