add FindEntityByName function

This commit is contained in:
2025-10-26 13:12:04 +08:00
parent 9c45444354
commit e8dec2e2d3
13 changed files with 129 additions and 37 deletions

View File

@ -8,19 +8,25 @@ namespace Sandbox {
// private TransformComponent m_Transform;
// private RigidBody2DComponent m_Rigidbody;
public float MoveSpeed;
/*
public float MoveSpeed;
public float DistanceFromPlayer = 5;
private Entity m_Player;
void OnCreate()
{
Console.WriteLine($"Player.OnCreate - {ID}");
Console.WriteLine($"Camera.OnCreate - {ID}");
m_Transform = GetComponent<TransformComponent>();
m_Rigidbody = GetComponent<RigidBody2DComponent>();
m_Player = FindEntityByName("Player");
}
*/
void OnUpdate(float ts)
{
if(m_Player != null)
{
Translation = new Vector3(m_Player.Translation.XY, DistanceFromPlayer);
}
// Console.WriteLine($"Player.OnUpdate: {ts}");
float speed = MoveSpeed;

View File

@ -36,6 +36,17 @@ namespace Sandbox {
else if(Input.IsKeyDown(KeyCode.D))
velocity.X = 1.0f;
Entity cameraEntity = FindEntityByName("Camera");
if(cameraEntity != null)
{
Camera camera = cameraEntity.As<Camera>();
if(Input.IsKeyDown(KeyCode.Q))
camera.DistanceFromPlayer -= speed * 2.0f * ts;
else if(Input.IsKeyDown(KeyCode.E))
camera.DistanceFromPlayer += speed * 2.0f * ts;
}
m_Rigidbody.ApplyLinearImpulseToCenter(velocity.XY * speed, true);
}
}

View File

@ -82,8 +82,6 @@ namespace Hazel
m_CameraController.OnResize(m_ViewPortSize.x, m_ViewPortSize.y);
m_EditorCamera.SetViewPortSize(m_ViewPortSize.x, m_ViewPortSize.y);
m_ActiveScene->OnViewportResize((uint32_t)m_ViewPortSize.x, (uint32_t)m_ViewPortSize.y);
}
// update camera
@ -501,7 +499,6 @@ namespace Hazel
if (serializer.Deserialize(scenePath.string()))
{
m_EditorScene = newScene;
m_EditorScene->OnViewportResize((uint32_t)m_ViewPortSize.x, (uint32_t)m_ViewPortSize.y);
m_ActiveScene = m_EditorScene;
@ -514,7 +511,6 @@ namespace Hazel
void EditorLayer::NewScene()
{
m_ActiveScene = CreateRef<Scene>();
m_ActiveScene->OnViewportResize((uint32_t)m_ViewPortSize.x, (uint32_t)m_ViewPortSize.y);
m_SceneHierachyPanel.SetContext(m_ActiveScene);
m_EditorScenePath = std::filesystem::path();

View File

@ -266,7 +266,7 @@ namespace Hazel
auto& tag = entity.GetComponent<TagComponent>().Tag;
char buffer[256] = {};
strcpy_s(buffer,sizeof(buffer), tag.c_str());
strncpy_s(buffer,sizeof(buffer), tag.c_str(), sizeof(buffer));
if (ImGui::InputText("Tag", buffer, sizeof(buffer)))
{
tag = std::string(buffer);
@ -368,7 +368,7 @@ namespace Hazel
bool setStyleFlag = false;
static char buffer[64] = {};
snprintf(buffer, sizeof(buffer), "%s", component.ClassName.c_str());
strcpy_s(buffer, sizeof(buffer), component.ClassName.c_str());
if (!scriptClassExists)
{
@ -384,7 +384,7 @@ namespace Hazel
// Fields
Ref<ScriptInstance> scriptInstance = ScriptEngine::GetEntityScriptInstance(entity.GetUUID());
const Ref<ScriptInstance> scriptInstance = ScriptEngine::GetEntityScriptInstance(entity.GetUUID());
const bool sceneRunning = scene->IsRunning();
if (sceneRunning)