resolving issue #12

Former-commit-id: eee32f1d3b74a431626888ab32166e0cad14f522
Former-commit-id: e58fecf50f193d695f7a7852117183486a12cc62
This commit is contained in:
Song Minjae
2017-02-14 23:25:18 +09:00
parent 5d7349386e
commit 1c0b969078
2 changed files with 54 additions and 101 deletions

View File

@@ -1028,59 +1028,35 @@ open class ActorWithSprite(renderOrder: ActorOrder, val immobileBody: Boolean =
if (isVisible && spriteGlow != null) { if (isVisible && spriteGlow != null) {
blendLightenOnly() blendLightenOnly()
if (!sprite!!.flippedHorizontal()) { val offsetX = if (!spriteGlow!!.flippedHorizontal())
val offsetX = hitboxTranslateX * scale hitboxTranslateX * scale
else
spriteGlow!!.cellWidth * scale - (hitbox.width + hitboxTranslateX * scale)
if (MapCamera.xCentre > leftsidePadding && centrePosPoint.x <= rightsidePadding) { val offsetY = spriteGlow!!.cellHeight * scale - hitbox.height - hitboxTranslateY * scale - 2
// camera center neg, actor center pos
spriteGlow!!.render(g, if (MapCamera.xCentre > leftsidePadding && centrePosPoint.x <= rightsidePadding) {
(hitbox.posX - offsetX).toFloat() + world.width * TILE_SIZE, // camera center neg, actor center pos
(hitbox.posY + hitboxTranslateY * scale).toFloat(), spriteGlow!!.render(g,
(scale).toFloat() (hitbox.posX - offsetX).toFloat() + world.width * TILE_SIZE,
) (hitbox.posY - offsetY).toFloat(),
} (scale).toFloat()
else if (MapCamera.xCentre < rightsidePadding && centrePosPoint.x >= leftsidePadding) { )
// camera center pos, actor center neg }
spriteGlow!!.render(g, else if (MapCamera.xCentre < rightsidePadding && centrePosPoint.x >= leftsidePadding) {
(hitbox.posX - offsetX).toFloat() - world.width * TILE_SIZE, // camera center pos, actor center neg
(hitbox.posY + hitboxTranslateY * scale).toFloat(), spriteGlow!!.render(g,
(scale).toFloat() (hitbox.posX - offsetX).toFloat() - world.width * TILE_SIZE,
) (hitbox.posY - offsetY).toFloat(),
} (scale).toFloat()
else { )
sprite!!.render(g,
(hitbox.posX - offsetX).toFloat(),
(hitbox.posY + hitboxTranslateY * scale).toFloat(),
(scale).toFloat()
)
}
} }
else { else {
val offsetX = spriteGlow!!.cellWidth - (hitbox.width + hitboxTranslateX * scale) spriteGlow!!.render(g,
(hitbox.posX - offsetX).toFloat(),
if (MapCamera.xCentre > leftsidePadding && centrePosPoint.x <= rightsidePadding) { (hitbox.posY - offsetY).toFloat(),
// camera center neg, actor center pos (scale).toFloat()
spriteGlow!!.render(g, )
(hitbox.posX - offsetX).toFloat() + world.width * TILE_SIZE,
(hitbox.posY + hitboxTranslateY * scale).toFloat(),
(scale).toFloat()
)
}
else if (MapCamera.xCentre < rightsidePadding && centrePosPoint.x >= leftsidePadding) {
// camera center pos, actor center neg
spriteGlow!!.render(g,
(hitbox.posX - offsetX).toFloat() - world.width * TILE_SIZE,
(hitbox.posY + hitboxTranslateY * scale).toFloat(),
(scale).toFloat()
)
}
else {
spriteGlow!!.render(g,
(hitbox.posX - offsetX).toFloat(),
(hitbox.posY + hitboxTranslateY * scale).toFloat(),
(scale).toFloat()
)
}
} }
} }
} }
@@ -1097,60 +1073,37 @@ open class ActorWithSprite(renderOrder: ActorOrder, val immobileBody: Boolean =
BLEND_SCREEN -> blendScreen() BLEND_SCREEN -> blendScreen()
} }
if (!sprite!!.flippedHorizontal()) { val offsetX = if (!sprite!!.flippedHorizontal())
val offsetX = hitboxTranslateX * scale hitboxTranslateX * scale
else
sprite!!.cellWidth * scale - (hitbox.width + hitboxTranslateX * scale)
if (MapCamera.xCentre > leftsidePadding && centrePosPoint.x <= rightsidePadding) { val offsetY = sprite!!.cellHeight * scale - hitbox.height - hitboxTranslateY * scale - 2
// camera center neg, actor center pos
sprite!!.render(g, if (MapCamera.xCentre > leftsidePadding && centrePosPoint.x <= rightsidePadding) {
(hitbox.posX - offsetX).toFloat() + world.width * TILE_SIZE, // camera center neg, actor center pos
(hitbox.posY + hitboxTranslateY * scale).toFloat(), sprite!!.render(g,
(scale).toFloat() (hitbox.posX - offsetX).toFloat() + world.width * TILE_SIZE,
) (hitbox.posY - offsetY).toFloat(),
} (scale).toFloat()
else if (MapCamera.xCentre < rightsidePadding && centrePosPoint.x >= leftsidePadding) { )
// camera center pos, actor center neg }
sprite!!.render(g, else if (MapCamera.xCentre < rightsidePadding && centrePosPoint.x >= leftsidePadding) {
(hitbox.posX - offsetX).toFloat() - world.width * TILE_SIZE, // camera center pos, actor center neg
(hitbox.posY + hitboxTranslateY * scale).toFloat(), sprite!!.render(g,
(scale).toFloat() (hitbox.posX - offsetX).toFloat() - world.width * TILE_SIZE,
) (hitbox.posY - offsetY).toFloat(),
} (scale).toFloat()
else { )
sprite!!.render(g,
(hitbox.posX - offsetX).toFloat(),
(hitbox.posY + hitboxTranslateY * scale).toFloat(),
(scale).toFloat()
)
}
} }
else { else {
val offsetX = sprite!!.cellWidth - (hitbox.width + hitboxTranslateX * scale) sprite!!.render(g,
(hitbox.posX - offsetX).toFloat(),
if (MapCamera.xCentre > leftsidePadding && centrePosPoint.x <= rightsidePadding) { (hitbox.posY - offsetY).toFloat(),
// camera center neg, actor center pos (scale).toFloat()
sprite!!.render(g, )
(hitbox.posX - offsetX).toFloat() + world.width * TILE_SIZE,
(hitbox.posY + hitboxTranslateY * scale).toFloat(),
(scale).toFloat()
)
}
else if (MapCamera.xCentre < rightsidePadding && centrePosPoint.x >= leftsidePadding) {
// camera center pos, actor center neg
sprite!!.render(g,
(hitbox.posX - offsetX).toFloat() - world.width * TILE_SIZE,
(hitbox.posY + hitboxTranslateY * scale).toFloat(),
(scale).toFloat()
)
}
else {
sprite!!.render(g,
(hitbox.posX - offsetX).toFloat(),
(hitbox.posY + hitboxTranslateY * scale).toFloat(),
(scale).toFloat()
)
}
} }
} }
} }

View File

@@ -64,7 +64,7 @@ object PlayerBuilderSigrid {
//p.actorValue["__selectedtile"] = 147 // test code; replace with <tile_item>.primaryUse(gc, delta) //p.actorValue["__selectedtile"] = 147 // test code; replace with <tile_item>.primaryUse(gc, delta)
p.actorValue["__aimhelper"] = true // TODO when you'll gonna implement it? p.actorValue["__aimhelper"] = true // TODO when you'll gonna implement it?
p.setHitboxDimension(15, p.actorValue.getAsInt(AVKey.BASEHEIGHT)!!, 11, -2) // FIXME offsetY of -2: Have no idea about the error; it's just supposed to be zero p.setHitboxDimension(15, p.actorValue.getAsInt(AVKey.BASEHEIGHT)!!, 11, 0) // FIXME offsetY of -2: Have no idea about the error; it's just supposed to be zero
p.inventory = ActorInventory(0x7FFFFFFF, true) p.inventory = ActorInventory(0x7FFFFFFF, true)