-
Posts
2,411 -
Joined
-
Last visited
Content Type
Blogs
Forums
Store
Gallery
Videos
Downloads
Posts posted by SpiderPig
-
-
Its been a while since I was tackling texture arrays & atlases. I did manage to get the arrays working in a way, but not exactly how I wanted them too work. As far as getting your texture to rotate, have you tried swapping dx and dy? Is that what you mean by getting them to flip 90°? I'm away from my PC at the moment so I'm unable to test it and I'm just going off memory. ?
-
2
-
-
You might have to decrease your brush size, that may help.
-
A multiplication operator for Vec4 would be nice. E.g. Vec4() * Vec4()
-
1
-
-
Instead of the single UpdatePhysics() hook in LUA and the Actors, how about the same hooks that are in newton? PreUpdate() and PostUpdate(). I'm finding them very useful.
-
I like how he puts the box on his head
Good job.
-
1
-
-
If you change the method they will be available. Those options don't apply to Average Normal.
-
1
-
-
What you'll need is an Actor in C++. The script is basically an Actor (but in LUA) that attaches to an Entity. An Actor is a class in C++ that attaches to an Entity.
Look in the Actor.h and Actor.cpp files for Leadwerks. You derive from the Actor class like this. I named mine cBaseActor, but you can name it anything you like.
class cBaseActor : public Actor { private: public: cBaseActor(); ~cBaseActor(); //reDeclare the functions found in Actor.h, create a BaseActor.cpp and define your functions there like in the script void Attach(); virtual void UpdateWorld(); virtual void UpdatePhysics(); virtual void Collision(Entity* ent, const Vec3& position, const Vec3& normal, float speed); virtual void UpdateMatrix(); virtual void PostRender(Context* context); }
cBasActor* _actor = new cBaseActor(); myEntity->SetActor(_actor);
-
4 minutes ago, wadaltmon said:
How low are you talking? My masses are at 0.5. Perhaps setting the friction of the joint could work?
Yeah I set mine to 0.1 but it wasn't perfect. Lowering the friction of the kinematic joint changes how it effects the rotation and position of it's child.
-
As in when using SetTargetPosition()? I found using a very low mass made it accelerate and de-accelerate a lot faster.
-
Quote
((NewtonDynamicsPhysicsDriver*)(_currentPhysicsDriver))->collisionWorld
Thought I'd update this here too, the above code doesn't get the correct newton world. The code below does;
NewtonWorld* GetNewtonWorld() { auto _world = World::GetCurrent(); auto _simulation = (NewtonDynamicsSimulation*)_world->simulation; return _simulation->newtonworld; }
-
Thanks! Worked perfectly.
-
Thank you! That answer led me to finding the problem. This is how I was getting the NewtonWorld;
NewtonWorld* GetNewtonWorld() { return ((NewtonDynamicsPhysicsDriver*)NewtonDynamicsPhysicsDriver::GetCurrent())->collisionWorld; }
Which worked for a lot of things but it didn't match when I got the world like this;
Model* bn = Model::Box(); mdl->SetShape(Shape::Box()); auto body = ((NewtonDynamicsBody*)mdl->body)->body; MainFrame::newtonWorld = NewtonBodyGetWorld(body);
With the later the callbacks worked!
QuoteAfter looking through the Newton SDK I saw a couple of hooks; PreUpdate() and PostUpdate() and I was wondering at what point is the UpdatePhysics() hook called? Is it before or after physics has been calculated / applied?
I take it then this is a callback in UpdateWorld()? Updating the physics when the timing is correct?
-
So once again I am attempting to break things - @Josh I have question for you... I am using Newton functions to add a PreUpdate callback to the newton world but the callbacks are not being called unless I call NewtonUpdate myself, is World::Update() not calling NewtonUpdate?
-
It could be that the character controller dosnt like being inside another physics shape. You may have to find a different way to stop your held item from hitting your player. Maybe a relative height limit?
-
Not sure exactly but you could try calling these three lines after moving your heldObject and just before Time::Update();
....... player->SetInput(mouseX, walk, strafe, jump); carryPivot->SetInput(mouseX, walk * 2, jump); cam->SetRotation(mouseY, 0, 0); Time::Update();
SetInput() uses physics for controlling the character controller and shouldn't break the simulation. I take it as your moving your mouse is still being held down?
-
I think I get what you're trying to do, but are you able to post a video of what's happening?
-
After looking through the Newton SDK I saw a couple of hooks; PreUpdate() and PostUpdate() and I was wondering at what point is the UpdatePhysics() hook called? Is it before or after physics has been calculated / applied?
-
1
-
-
Yeah I'd like to see every function documented and explained. And if it isn't officially supported just have it written at the top of the page.
-
Yeah that's what I was finding too. I just leave it at 0,0,0.
-
As Josh said in the link, it's the offset from the child entity but it cant be changed once created. Probably best to use a kinematic joint on a pivot. Then parent the picked entity to that pivot. Then set the picked entities global position to that of the pivots + an offset.
-
What exactly are you trying to do? Are you trying to rotate the entity at the picked position?
-
https://www.leadwerks.com/community/topic/18966-kinematic-position/?tab=comments#comment-118400
I think the joint is only a constraint, rather than an entity that can be moved.
-
On the file editing side, if your game is with Steam and someone does manage to edit a file and change the way the game plays, I would think Steam will see that the bits no longer match and your game is in need of an update? Which will reset everything.
The multiplier side of is vulnerable.
-
5 hours ago, TheConceptBoy said:
Oh and from this point on, we are loading models and meshes inside the zombie actor class on Attach() right? When we detach, I believe I read somewhere that the engine handles removal of created instances automatically? Models. Sounds, Physics, Shapes?
The best way is to load them outside of the actor class. Then you attach the actor to each loaded zombie entity. If you load them in the Attach function you would have to create a separate object (maybe a pivot) and assign the actor class to that pivot so that the actor functions are called.
ifstream
in Programming
Posted
Try including <iostream.h> in your project.
I think thats the right header... I'm not sure...
Leadwerks also has an inbuilt filesystem, have you tried using that?