kitao / pyxel

A retro game engine for Python
MIT License
14.77k stars 830 forks source link

API for moving window #387

Closed zoeleu closed 2 years ago

zoeleu commented 2 years ago

This API would also be useful for more dynamic movement in games.

An example where this is used is in Rythm Doctor, theres this scene where the screen moves with the player to create immersion.

merwok commented 2 years ago

Do you mean the camera function? https://github.com/kitao/pyxel/#graphics

zoeleu commented 2 years ago

Do you mean the camera function? https://github.com/kitao/pyxel/#graphics

no, I mean the actual game window in the OS

merwok commented 2 years ago

Ah, that seems hard to do in a cross-platform way, and probably undesireable for UI / accessibility reasons.

Fun idea though!

zoeleu commented 2 years ago

probably undesireable for UI / accessibility reasons

Isn't that up to the game devs?

zoeleu commented 2 years ago

SDL has an API for moving windows. That's as cross platform as it gets.

http://wiki.libsdl.org/SDL_SetWindowPosition

kitao commented 2 years ago

I know SDL2 has such kind of API. But whether it works or not depends user's environment and I'd like to avoid such kind of tricky application on Pyxel. So I will not add this API.

zoeleu commented 2 years ago

user's environment

The three supported environments, windows mac and linux, have support for the API.

kitao commented 2 years ago

Yes, but display’s resolutions are different. And some users use multiple displays. I would like to avoid an title user created doesn’t work correctly on other user’s environment.

2022年5月1日(日) 7:57 Mattéo Turini @.***>:

user's environment

The three supported environments, windows mac and linux, have support for the API.

— Reply to this email directly, view it on GitHub https://github.com/kitao/pyxel/issues/387#issuecomment-1114067410, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFFXEXWIQ22SKL6VABYOF3VHW3D7ANCNFSM5SKEIFTA . You are receiving this because you modified the open/close state.Message ID: @.***>

zoeleu commented 2 years ago

Treat the displays as one big display.

display’s resolutions are different.

That is why there should be a display resolution API too

kitao commented 2 years ago

I understand the necessity of the resolution API. But Pyxel's design policy is that users don't need to care about environments they don't have and the same code should work almost the same on various environments for simplicity. Display-related APIs are against the policy and too complicated to guarantee user's apps work correctly. That's the reason I don't implement them. (And of course you have the right to fork and modify Pyxel!)

2022年5月2日(月) 0:15 Mattéo Turini @.***>:

Treat the displays as one big display.

display’s resolutions are different.

That is why there should be a display resolution API too

— Reply to this email directly, view it on GitHub https://github.com/kitao/pyxel/issues/387#issuecomment-1114263401, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFFXEUNFRAOIVH7KECFOGDVH2NY3ANCNFSM5SKEIFTA . You are receiving this because you modified the open/close state.Message ID: @.***>