Download - WaveEngine 2D components
![Page 1: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/1.jpg)
WaveEngine Team@waveengineteam
http://waveengine.net
WaveEngine Components
![Page 2: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/2.jpg)
Component Based Game Engine
![Page 3: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/3.jpg)
Component types
Componentes
Drawables
Behaviors
![Page 4: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/4.jpg)
2D Components
Components Behavior Drawable
• Transform2D• Sprite• SpriteAtlas• Material2D• ParticleSystem2D• Joint2D
• TouchGestures• SkeletalAnimation• Animation2D• AnimationUI• Collider2D• RigidBody2D
• SpriteRenderer• SpriteAtlasRenderer• QuadRenderer• AnimatedSpriteRenderer• ParticleSystemRenderer2d
![Page 5: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/5.jpg)
Entity
To draw a sprite
Transform2D
Sprite
SpriteRenderer
![Page 6: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/6.jpg)
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);
![Page 7: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/7.jpg)
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
})
![Page 8: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/8.jpg)
Sprite
.AddComponent(new Sprite(“Content/texture.wpk”)
{
IsGlobalAsset = true, // Default: False
TintColor = Color.Red, //Default Color.White
SourceRectangle = new Rectangle(0, 0, 100, 100);
})
![Page 9: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/9.jpg)
Opaque
AlphaAdditive
GUI
SpriteRenderer
.AddComponent(new SpriteRenderer(DefaultLayers.Opaque))
Debug
![Page 10: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/10.jpg)
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);
![Page 11: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/11.jpg)
Simple property animation
var move = new SingleAnimation(0,100, TimeSpan.FromSeconds(2f), EasingFunctions.Back);
PropertyValue = 0 PropertyValue = 100
2 seconds
![Page 12: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/12.jpg)
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);
![Page 13: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/13.jpg)
Collision detection
Collider2D
• RectangleCollider• CircleCollider• PerPixelCollider
![Page 14: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/14.jpg)
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);
![Page 15: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/15.jpg)
To draw an animated character(SpriteSheet)
![Page 16: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/16.jpg)
Texture Packer (SpriteSheet)
http://www.codeandweb.com/texturepacker
![Page 17: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/17.jpg)
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);
![Page 18: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/18.jpg)
To draw an animated character (Skeleton)
![Page 19: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/19.jpg)
To draw an animated character (Skeleton)
http://esotericsoftware.com/
![Page 20: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/20.jpg)
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);
![Page 21: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/21.jpg)
2D Particle system
![Page 22: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/22.jpg)
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);
![Page 23: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/23.jpg)
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,
})
![Page 24: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/24.jpg)
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.
![Page 25: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/25.jpg)
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);
![Page 26: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/26.jpg)
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 })
![Page 27: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/27.jpg)
2D physics components
Joint2D
• AngleJoint2D• DistanceJoint2D• FixedJoint• FixedMouseJoint2D• PrismaticJoint2D• RevoluteJoint2D
![Page 28: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/28.jpg)
UI Components
UIBase
• Button• CheckBox• Grid• Image• Panel• ProgressBar• RadioButton• Slider• Stack
• TextBlock• TextBox• ToggleSwitch• Wrap
![Page 29: WaveEngine 2D components](https://reader036.vdocuments.site/reader036/viewer/2022062418/554f6d53b4c905c8088b5337/html5/thumbnails/29.jpg)
Thank you
WaveEngine Team@waveengineteam
http://waveengine.net