Comments (7)
I actually prefer the way gamera
work, which leaves us a way to avoid float number translation.
https://github.com/kikito/gamera/blob/master/gamera.lua#L100-L106
https://github.com/kikito/gamera/blob/master/gamera.lua#L179-L181
from hump.
The problem is that hump.camera translates to a fractional position, which causes artifacts between the tiles, correct?
Rounding the position to the nearest integer by default would work, but introduces two other issues:
- It does only work for scale = 1, and
- Moving the camera becomes jittery.
A quick and dirty solution would add a parameter to camera:attach()
to transform the calculated screen center, e.g. camera:attach(math.floor)
- but I am not yet sure how I feel about that.
The "correct" way would be to add margins in the tile set, but as you said, that might not be practical.
Another solution might be to try the FilterMode 'nearest'.
from hump.
Another solution might be to try the FilterMode 'nearest'.
As far as I know STI uses nearest
when loading tileset, but that doesn't seem to help. Which puzzles me.
from hump.
Can you provide a .love that shows the issue so that I can have a look myself?
from hump.
Actually let me close this for now, I needed a visible viewport anyway so I switched to gamera.
I don't think it's that necessary for hump.camera to support my use-case, while my project do fit into your 2 conditions (we don't scale map, we don't need smooth camera movement), I think it complicates your code quite a bit to support strict non-float position, so yeah if I ran into the issue again I will re-open this with an example .love file.
from hump.
Reopening this: defining a custom viewport when attaching the camera is straightforward to implement and should cover your use-case. Something along the lines of this:
cam:attach(20, 10, 400, 400) -- x,y,width,height
foo()
cam:detach()
from hump.
very cool, I will check it out when available
from hump.
Related Issues (20)
- Documentation typo HOT 1
- Documentation typo in "gamestate" HOT 1
- Timer: After caching timers "to_update", timer:cancel() doesn't apply until next timer:update() HOT 1
- Vector unexpected symbol HOT 1
- bug HOT 4
- [hump.gamestate] textinput callback doesn't work properly HOT 3
- Camera documentation missing explanation about some parameters - worldCoords
- LOVE 11.0 requires extra arguments to setCanvas() at times
- Some minor things outlined in a forum post HOT 1
- hump.signal - crashes when sending "clear", "remove" or any other signals that share a name with a Registry function name. HOT 1
- Is there any maintainer for this repo? HOT 9
- Do I have to manually clear used timers? HOT 1
- [hump.timer] Subject values are not precise to targets after timer has completed HOT 6
- docs: camera:attach doesn't have any of its arguments listed in the docs
- Arguments to atan2 are reversed HOT 1
- [hump.timer] freeze timer HOT 1
- attempt to perform arithmatic on self.x and self.y doesnt work
- attempt to index local 'layer' (a nil value) HOT 1
- Would be nice if there's some method to check if the instance inherits from some class HOT 2
- [hump.signal] stopping signal propagation HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hump.