代码拉取完成,页面将自动刷新
#include <iostream>
#include "scene.h"
#include "behavior.h"
#include "sceneControll.h"
#include "tools.h"
#include "gameInit.h"
#pragma region
void scene::addBehavior(behavior* be)
{
addBehaviors.emplace_back(be);
}
void scene::removeBehavior(behavior* be)
{
//behaviors.remove(be);
try
{
be->Destroy();
}
catch (const std::exception&)
{
}
//delete be;
delBehaviors.emplace_back(be);
}
behavior* scene::find(const char* p)
{
for (auto& item : behaviors) {
if (strcmp(typeid(item).name(), p)) {
return item;
}
}
return nullptr;
}
void scene::clear() {
for (auto& item : behaviors)
{
item->Destroy();
delBehaviors.emplace_back(item);
}
gameInit::clear();
}
#pragma endregion
#pragma region ѭ
void scene::Start() {
Init();
for (auto& items : behaviors) {
try
{
items->Start();
}
catch (const std::exception&)
{
}
}
}
void scene::Loop(double time) {
if (addBehaviors.size() > 0) {
for (auto& item : addBehaviors) {
item->Start();
behaviors.emplace_back(item);
}
addBehaviors.clear();
}
for (auto& items : behaviors) {
try
{
if (items)
items->Loop(time);
}
catch (const std::exception&)
{
}
}
if (delBehaviors.size() > 0) {
for (auto& items : delBehaviors)
{
behaviors.remove(items);
delete items;
}
delBehaviors.clear();
}
}
void scene::Destroy() {
if (addBehaviors.size() > 0) {
for (auto& item : addBehaviors) {
item->Destroy();
delete item;
}
addBehaviors.clear();
}
if (behaviors.size()) {
for (auto& items : behaviors) {
try
{
items->Destroy();
}
catch (const std::exception&)
{
}
delete items;
}
}
if (delBehaviors.size()) {
for (auto& items : delBehaviors) {
try
{
items->Destroy();
}
catch (const std::exception&)
{
}
delete items;
}
}
behaviors.clear();
delBehaviors.clear();
}
void scene::Init()
{
}
#pragma endregion
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。