easyx_framework V1.0.0
基于easyx的c++游戏框架
 
载入中...
搜索中...
未找到
F:/vc/project/esayx_framewoek/esayx_framewoek/sun.h
浏览该文件的文档.
1#pragma once
2#include"Sprite.h"
3#include"Animator.h"
4#include"Collider.h"
5#include"RigidBody.h"
6#include"Timer.h"
7#include"Particle.h"
8#include"FSM.h"
9#include"NewStatus.h"
10
11//创建阳光物体
12class sun:public Sprite
13{
17 /*BoxCollider* box;*/
19 /*Timer clock;*/
20 /*Timer Blinkclock;*/
23public:
24 /*void filtershake()
25 {
26 SpriteRenderer* renderer = StaticMesh::GetComponentByClass<SpriteRenderer>();
27 renderer->EnableFilter();
28 }*/
29 /*void MyBlink()
30 {
31 SpriteRenderer* renderer = Sprite::GetComponentByClass<SpriteRenderer>();
32 renderer->AddFilter(true, RED, 50);
33 renderer->EnableFilLayer(1);
34 Blink(0.5f, WHITE, 45);
35
36
37 renderer->EnableFilter();
38
39 }*/
41 {
42 /*clock.Bind(1, this, &sun::filtershake, true);*/
44
45
46 renderer->SetLayer(10);
47 renderer->SetFilter(true,BLUE,50);
48 /*renderer->AddFilter(true, RED, 100);*/
49 /*renderer->RemoveFilter(1);*/
51
52
55
56 /*ani.Load("normalwalk");*/
57 ani.Load("sunshine");
58 ani.SetInterval(0.07f);
59
60 animator->insert("sun", ani);
61 /*animator->SetNode("sun");*/
62 /*animator->SetCalled(false);*/
63
64 fsm->AddStatus<idlestatus>("idle");
65 fsm->AddStatus<whitestatus>("white");
66 fsm->TransitionState("idle");
67 /*fsm->TransitionState("root");*/
68
71 circle->SetRadius(35);
74
75 /* box = ConstructComponent<BoxCollider>();
76 box->AttachTo(root);
77 box->SetSize({70,70});*/
78
80 /*rigidbody->SetMass(10.f);*/
81 /*rigidbody->SetMoveable(true);
82 rigidbody->SetGravity(1);*/
83 /*rigidbody->SetForce({ 100,-200 });*/
84 /*Blinkclock.Bind(5, this, &sun::MyBlink, true);*/
85 /*rigidbody->SetGravity(100);*/
86
89 particle->Load("mineparticle");
92 /*particle->SetSpeed(100.f);*/
93 particle->SetLayer(10);
96 /*particle->SetCenter();*/
97 }
98
99 virtual void Update(float deltaTime)override
100 {
102
103 /*static Vector2D scale = { 1,1 };
104 SetLocalScale(scale *= 1.005);*/
105 }
106
107};
动画接口及动画组件
游戏场景中所有碰撞相关事件的处理
@ Collision
碰撞模式,相当于两个实体的球进行碰撞
分层状态机
2D粒子组件
@ Center
中心放射状
刚体组件定义
物体派生类(精灵类)
计时器类
动画委托(无参单播委托)
定义 Animator.h:31
void Load(std::string name, Vector2D delta={ 0, 0 })
加载动画资源.
定义 Animator.cpp:8
void SetInterval(double interval)
设置时钟更新索引频率.
定义 Animator.h:69
动画播放器组件
定义 Animator.h:111
void insert(std::string name, Animation &ani)
插入动画资源到动画容器.
定义 Animator.cpp:132
圆形碰撞器.
定义 Collider.h:316
void SetRadius(float radius)
设置半径.
定义 Collider.h:358
void SetCollisionMode(ColliderMode mode)
设置碰撞模式.
定义 Collider.h:200
void SetType(CollisionType type)
设置碰撞物体种类.
定义 Collider.h:189
状态机组件.
定义 FSM.h:259
T * AddStatus(std::string name, std::string parent="root")
添加节点状态
定义 FSM.h:271
void TransitionState(std::string name)
切换状态.
定义 FSM.h:526
void SetFilter(bool enable, COLORREF col=BLACK, int level=100)
开启设置滤镜 会清空之前所有滤镜
定义 VisualInterface.cpp:178
void EnableFilter()
开关整体滤镜
定义 VisualInterface.h:139
void SetLayer(int _layer)
设置图层层级 要实现必须先把排好序的容器中删除已经排好序的对象,重新插入已经改变好的对象
定义 VisualInterface.cpp:24
void AttachTo(Object *par)
设置所属物体 实现物体绑定.
定义 Object.cpp:29
T * ConstructComponent()
创建组件,绑定到对象,并注册到对象容器.
定义 Object.h:108
T * GetComponentByClass()
访问物体对象的跟他匹配的组件.
定义 Object.h:91
SceneComponent *const root
场景根组件,赋予场景属性 刚创建物体一定同时创建了它的场景组件,不允许改变指向
定义 Object.h:28
粒子组件
定义 Particle.h:48
void SetPattern(ParticlePattern pattern)
定义 Particle.h:136
void SetCapacity(int capacity)
设置粒子容量
定义 Particle.h:117
void SetInterval(float Interval)
定义 Particle.h:130
void Load(std::string name)
加载粒子资源.
定义 Particle.cpp:35
void SetLifetime(int lifetime)
设置单个粒子生命周期
定义 Particle.h:124
刚体组件.
定义 RigidBody.h:16
void AttachTo(SceneComponent *par)
设置所属组件
定义 SceneComponent.cpp:21
物体派生类(精灵类)
定义 Sprite.h:18
SpriteRenderer * renderer
渲染器组件 一个指针指向我们用物体创建出来的渲染组件
定义 Sprite.h:19
float deltaTime
帧的时间间隔
定义 Sprite.h:21
virtual void Update(float deltaTime)
实现闪烁功能
定义 Sprite.cpp:27
渲染组件(2D).
定义 SpriteRenderer.h:16
定义 NewStatus.h:7
定义 sun.h:13
Animator * animator
定义 sun.h:15
FSM * fsm
定义 sun.h:22
sun()
定义 sun.h:40
Particle * particle
定义 sun.h:21
CircleCollider * circle
定义 sun.h:16
virtual void Update(float deltaTime) override
实现闪烁功能
定义 sun.h:99
Animation ani
定义 sun.h:14
RigidBody * rigidbody
定义 sun.h:18
定义 NewStatus.h:20