Ashley thanks again for the in-depth reply. I'm not implying in the least that any of this is simple and uncomplicated, and I know you're a genius programmer, and I'm super thankful for C2, and the community and your guidance.
I think I understand now the limitations of half pixels.
I agree with you, high quality and pixel rounding off *does* solve the smooth scrolling problem. But it introduces subpixel movement.
But you say this can be prevented too, by enabling and disabling the movement? Would you mind helping me out a bit? Your solution is
* high quality full screen scaling
* pixel rounding = off
* tickcount%2 = 0 (even ticks) -> Platform enabled,
else: plaform disabled
Is that right? I can't get it to do what we're after. Am I doing something wrong?
Let me define the new problem that high quality + pixel rounding off creates for me:
It does preserve the blocky sprite style. But it allows sub-pixel movement, which destroys pixelart completely, as do rotated non-square pixels.
Retro platformers, and neo-retro platformers like Shovel Knight (coded in a custom C engine) don't allow sub-pixel movement.
As is evident from studying this Shovel Knight gif, no sub-pixel positions occur at all, even when scrolling
You probably had an amiga or speccy growing up. Their respective emulators can handle unwavering fps and pre-FPU pixel-perfect position calculations admirably.
I promise I'm not asking you to code my game for me, I'm just completely baffled. If you're saying C2 isn't to blame, then it's capable of doing what I want, and I just can't see a way to do it. That's why I'm asking for help, we'll make a perfect capx and save it as a template and bury this stupid issue forever.
Would it help if I kept a decimal value position stored in a variable and only move the player when its integer is >0? Then subtract the integer and keep the float, which will continue to increment in irregular ways (because of dt). That way there's no brute force rounding, and even 0.5 increments will only affect movement in a predetermined way.
Is that a good direction to go? I'm probably not clever enough for all this. But if you tell me it's possible, I'm determined to get proper pixel-quantized movement without crippling rounding and smooth scrolling with no sub-pixel movement.
thanks again for your time, I know I'm a super small niche of C2 clients