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