MakeCode Kart

Neither, I’m still working (or trying to work) on it. It seems to get harder every time, then I simplify it and it doesn’t work…

Ok! I’m glad it’s still being worked on!

is this still being work on

1 Like

Yeah, @Nome_muito_criativo is this project still being worked on? (Also when you want to ask someone something, mention them in the comment so they read the comment)

I know I’m late but could I help too?

Actually @Kiwiphoenix364, I’m sorry to tell you but I didn’t update it much since you asked last time because I haven’t been accessing MakeCode too much lately (I didn’t even noticed 3 months have already passed).
I made the first mode 7 project in an afternoon, but adding perspective to it in a way that is both simple and doesn’t interfere with the other effect is hard (not even Nintendo did it right), and I couldn’t cope with it. I kinda forgot about it.

2 Likes

@Nome_muito_criativo Ok, I understand, but how did Nintendo do it wrong?

1 Like

They didn’t do it wrong, it was just too unintuitive for a simple project. You had to make a long list of numbers for each line of pixels on the screen (it would need 120 numbers in MakeCode) telling the SNES how to change each mode 7 parameter across the picture.
I was trying to just have an “angle” parameter for how tilted the image should be.

2 Likes

Cool, but couldn’t you just use a color detect at x y block and it could generate a string of numbers directly from a tilemap? (sorry if this is entirely wrong because I don’t know much about mode 7, this is just an idea)

1 Like

No, the parameters I was talking about are the horizontal and vertical stretching done for each line of pixels to simulate perspective, so no way to use tilemaps.
But you gave me an idea…

I meant directly from an image, not a tilemap (I typed the wrong thing), but its probably still not possible with an image anyways :frowning:

is this still being worked on?

why? :sweat_smile:

@Nome_muito_criativo I tried make an engine (entirely new) but IT’S REALLY HARD to do what you did! I’m impressed. This is what I tried to do and with low-res it’s fine (because optimizations), but anything with more texture on screen it just can’t handle. Also if I tried to do rotation in any way it wouldn’t work:
Low-res:

High-res:

I think an extremely efficient code that pre-rendered a small section, rotated it, then put it into perspective might work but it would be almost impossible to get 50fps with three processes running every frame.

I’ve been experimenting with JS recently, and, how would one import an image to do this? Also, there appears to be an error and I’m not sure what variable (or what else to do) to put into that position.

@Kiwiphoenix364 the error is that =+x should be x++

Sorry, my example had confused variable names. Replace “target” with “image” like this:

scene.createRenderable(zLayer, (image: Image, camera: scene.Camera) => {

(Or alternatively, keep that line the same and use “target” instead of “image” in the for loop.)

Thanks @kwx and @richard, I’ve made a VERY basic demo of just a squished image that runs ~100fps on a 6+ year old pc!

No rotation or scaling yet, that would be kind of hard.

1 Like

Quick follow up: I’ve made it render the same thing, but just for the screen instead of a specific image!

I made an extension for this:
kiwiphoenix364/pxt-fake-3d