1
0

Implement SPHITINFO

This commit is contained in:
otya128
2017-07-22 12:13:03 +09:00
parent 374d635f8a
commit 57ef38a037
2 changed files with 52 additions and 0 deletions

View File

@@ -175,6 +175,9 @@ struct SpriteCollision
short sy;
ushort w;
ushort h;
double vx = 0;
double vy = 0;
bool detection(ref SpriteData sp)
{
if(sp.define && sp.col.mask & mask)
@@ -328,6 +331,18 @@ struct SpriteData
SpriteCollision col;
bool enableCol;
}
struct SpriteHitInfo
{
double time;
double x1 = 0;
double y1 = 0;
double vx1 = 0;
double vy1 = 0;
double x2 = 0;
double y2 = 0;
double vx2 = 0;
double vy2 = 0;
}
class Sprite
{
SpriteDef[] defSPDEFTable;
@@ -1146,6 +1161,7 @@ class Sprite
end = spid(end);
return sphitsp2(id, start, end);
}
SpriteHitInfo spriteHitInfo;
int sphitsp2(int id, int start, int end)
{
if (!sprites[id].enableCol)
@@ -1156,7 +1172,19 @@ class Sprite
{
if(id == start) continue;
if(sprites[start].enableCol && sprites[id].col.detection(sprites[start]))
{
spriteHitInfo.time = 0;
spriteHitInfo.x1 = sprites[id].x;
spriteHitInfo.y1 = sprites[id].y;
spriteHitInfo.vx1 = sprites[id].col.vx;
spriteHitInfo.vy1 = sprites[id].col.vy;
spriteHitInfo.x2 = sprites[start].x;
spriteHitInfo.y2 = sprites[start].y;
spriteHitInfo.vx2 = sprites[start].col.vx;
spriteHitInfo.vy2 = sprites[start].col.vy;
return start;
}
}
return -1;
}