cloth wind rippling
parent
311e263390
commit
5f018e76ba
|
@ -351,6 +351,8 @@ typedef struct Silkworm_Context
|
||||||
float yBound;
|
float yBound;
|
||||||
uint32_t clothDensity;
|
uint32_t clothDensity;
|
||||||
|
|
||||||
|
float timeElapsed;
|
||||||
|
|
||||||
uint8_t* currentBufferAddress; /* GM doesnt let you pass more than 4 arguments with different types lol */
|
uint8_t* currentBufferAddress; /* GM doesnt let you pass more than 4 arguments with different types lol */
|
||||||
|
|
||||||
/* keep track of these so can do callbacks */
|
/* keep track of these so can do callbacks */
|
||||||
|
@ -403,6 +405,7 @@ void Silkworm_Init()
|
||||||
context->xBound = 1000;
|
context->xBound = 1000;
|
||||||
context->yBound = 1000;
|
context->yBound = 1000;
|
||||||
context->clothDensity = 4;
|
context->clothDensity = 4;
|
||||||
|
context->timeElapsed = 0;
|
||||||
|
|
||||||
context->nodeDestructionDataCapacity = 16;
|
context->nodeDestructionDataCapacity = 16;
|
||||||
context->nodeDestructionData = malloc(sizeof(Silkworm_Vector2) * context->nodeDestructionDataCapacity);
|
context->nodeDestructionData = malloc(sizeof(Silkworm_Vector2) * context->nodeDestructionDataCapacity);
|
||||||
|
@ -731,6 +734,8 @@ void Silkworm_Update(double deltaTime)
|
||||||
}
|
}
|
||||||
|
|
||||||
Silkworm_PerformDestroys();
|
Silkworm_PerformDestroys();
|
||||||
|
|
||||||
|
context->timeElapsed += delta;
|
||||||
}
|
}
|
||||||
|
|
||||||
double Silkworm_CreateNode(double xPosition, double yPosition, double mass, double friction, double radius, double pushFactor, double windFactor)
|
double Silkworm_CreateNode(double xPosition, double yPosition, double mass, double friction, double radius, double pushFactor, double windFactor)
|
||||||
|
@ -1084,8 +1089,8 @@ void Silkworm_ApplyWind(double xSpeed, double ySpeed)
|
||||||
|
|
||||||
if (node != NULL && !node->pinned)
|
if (node != NULL && !node->pinned)
|
||||||
{
|
{
|
||||||
node->position.x += (float)xSpeed * 0.025f * node->windFactor;
|
node->position.x += (0.5f * sinf(context->timeElapsed / 15 + node->position.y / 2) + 0.5f) * (float)xSpeed * 0.05f * node->windFactor;
|
||||||
node->position.y += (float)ySpeed * 0.025f * node->windFactor;
|
node->position.y += (0.5f * sinf(context->timeElapsed / 15 + node->position.x / 3) + 0.5f) * (float)ySpeed * 0.05f * node->windFactor;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1977,6 +1982,8 @@ void Silkworm_ClearAll()
|
||||||
}
|
}
|
||||||
|
|
||||||
Silkworm_PerformDestroys();
|
Silkworm_PerformDestroys();
|
||||||
|
|
||||||
|
context->timeElapsed = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Silkworm_Finish()
|
void Silkworm_Finish()
|
||||||
|
|
Loading…
Reference in New Issue