Added physics-related functions to Entity and mouse clicks vs holds

This commit is contained in:
grayson committed 2021-11-02 01:41:53 -05:00
1 parent 43c3d3930f
commit 3e403681a3
12 files changed
+174 -46

No files matched your search

+26 -5
View File
@@ -9,8 +9,9 @@ void MainState::onEnter() {
test.setPosition(nf::Vec3(0.0, 1.5, -5.0));
plane.create(nf::BaseAssets::plane);
plane.setScale(20.0);
text.create("This is a test text.", nf::Vec2(0.1, 0.025), nf::Vec3(0.8));
text.create("", nf::Vec2(0.1, 0.025), nf::Vec3(0.8));
text.centered(true);
gravText.create("", nf::Vec2(0.025, 0.2), nf::Vec3(0.8), 1.0f, 0.5f);
uiTex.create(nf::BaseAssets::logo, nf::Vec2(0.025, 0.025), 0.5);
button.create(nf::Vec2(0.8, 0.025), "Reset");
button2.create(nf::Vec2(0.6, 0.025), "Play Sound");
@@ -29,12 +30,15 @@ void MainState::onEnter() {
for (int y = 0; y < 5; y++) {
for (int z = 0; z < 5; z++) {
entities.push_back(new nf::Entity);
entities.back()->create(nf::BaseAssets::sphere, nf::Entity::Type::DYNAMIC);
entities.back()->create(ap["2mats.obj"], nf::Entity::Type::DYNAMIC);
entities.back()->setPosition(nf::Vec3(5.0 + x * 2.05, 1.0 + y * 2.05, -5.0 + z * 2.05));
}
}
}
grav = 2.0f;
setGravity(grav);
camera->setPosition(-20.0, 5.0, 0.0);
camera->setRotation(85.0, 0.0);
}
@@ -76,12 +80,28 @@ void MainState::update(float deltaTime) {
sound2.stop();
}
if (app->isKeyPressed(NFI_K)) {
if (app->isMouseClicked(NFI_LEFTMOUSE) || app->isMouseHeld(NFI_RIGHTMOUSE)) {
entities.push_back(new nf::Entity);
entities.back()->create(ap["2mats.obj"], nf::Entity::Type::DYNAMIC);
entities.back()->setPosition(camera->getPosition());
entities.back()->create(nf::BaseAssets::sphere, nf::Entity::Type::DYNAMIC);
entities.back()->setPosition(camera->getPosition() + camera->getRotation() * 5.0);
entities.back()->setVelocity(camera->getRotation() * 100.0f);
entities.back()->setMass(1000.0f);
}
if (app->isKeyHeld(NFI_UP)) {
grav += 0.05f;
setGravity(grav);
}
if (app->isKeyHeld(NFI_DOWN)) {
grav -= 0.05f;
setGravity(grav);
}
if (app->isKeyPressed(NFI_T)) {
grav = 1.0f;
setGravity(1.0f);
}
gravText.setText("Gravity Scale: " + std::to_string(grav));
if (app->isKeyPressed(NFI_ESCAPE))
app->quit();
}
@@ -93,6 +113,7 @@ void MainState::render(nf::Renderer& renderer) {
renderer.render(light2);
renderer.render(light3);
renderer.render(text);
renderer.render(gravText);
renderer.render(uiTex);
renderer.render(button);
renderer.render(button2);
+3
View File
@@ -16,6 +16,7 @@ private:
nf::Entity test;
nf::Entity plane;
nf::Text text;
nf::Text gravText;
nf::UITexture uiTex;
nf::Button button;
nf::Button button2;
@@ -27,5 +28,7 @@ private:
nf::Sound sound;
nf::Sound sound2;
float grav;
std::vector<nf::Entity*> entities;
};