Alt+Enter Glitch/eo

La cimo de Alt+Enter estas cimo en kiu uzado de la "plenekran-baskuliga" klavkombino renversus la ludanton aŭ interrompus komandon  dum intersceno. Kvankam la cimo nomiĝas "Alt+Enter", ajna klavkombino kiu baskuligas plenekranan reĝimon, inkluzive Alt+F kaj F11 (en 2.3) produktos la saman efikon.

Pli specife, okazigi tiun cimon rezultos ke la ludo premos AGBUTONON por la ludanto, kiu premadiĝos ĝis la sekva malfruigo en la intersceno. Do, se ri estis staranta sur surfaco, aŭ estis 3 kadroj for de suriĝi al surfaco (Renversiĝa bufrado) kiam la AGBUTONA premo okazis, ri renversiĝos. La komando  premos maldekstron aŭ dekstron por la ludanto kaj kreas sian propran malfruigon, do se la cimo okazas dum , la maldekstra kaj dekstra enigoj ambaŭ elteniĝos.

Kondiĉoj
Por ke la cimo efiku, (1) la klavkombino aŭ klavpremo devas okazi dum malfruigo en skripto, kiu daŭras pli ol 1 kadron, kaj (2) la ludanto devas havi regpovon dum la intersceno ( devas esti agordita al vera).

Se la klavkombino estas premita dum oni ne estas en intersceno, ĝi ne renversos la ludanton, sed preventos la ludanton de moviĝi dekstren aŭ malen se tiuj klavoj premadiĝis dum la baskulig-klavkombino estis premita.

Kondiĉo 1 malebligas ajnan malfruigon en intersceno kiu okazas pro uzi  aŭ   dum interscena stri- aŭ malklariĝ-animacio. Tio estas ĉar tiuj komandoj fakte malfruigas dum 1 kadro ĉiun kadron se la animacio ne estas finita, kaj do, anstataŭ esti 15-kadra malfruigo, ĝi konsistas el dekkvin 1-kadraj malfruigoj.

Kondiĉo 2 malebligas povi fari tiun ĉi cimon dum invitoj "- Premu AGBUTONON por daŭri -" en intersceno, ĉar kutime kiam tiuj invitoj aktiviĝas, la regpovo de la ludanto ankaŭ estas forprenita. Tamen, eblas akiri la inviton dum ankoraŭ havante regpovon (Noflip). Okaze de fari do, la ludanto ne povus renversiĝi, sed ria  ankoraŭ povus esti interrompita.

Analizo de kodo
De la komenca enmeto de la deponejo de VVVVVV, | linio 276 de:

if(key.toggleFullscreen) {			if(!gameScreen.isWindowed) {				//SDL_WM_GrabInput(SDL_GRAB_ON); SDL_ShowCursor(SDL_DISABLE); SDL_ShowCursor(SDL_ENABLE); }			else {				SDL_ShowCursor(SDL_ENABLE); }

if(game.gamestate == EDITORMODE) {				SDL_ShowCursor(SDL_ENABLE); }

gameScreen.toggleFullScreen; game.fullscreen = !game.fullscreen; key.toggleFullscreen = false;

key.keymap.clear; //we lost the input due to a new window. game.press_left = false; game.press_right = false; game.press_action = true; game.press_map = false; printf("Error: failed: %s\n", SDL_GetError);

}

Tiuj ĉi kvar linioj kaŭzas la cimon:

game.press_left = false; game.press_right = false; game.press_action = true; game.press_map = false;

kaj  uziĝas kiam ajn la ludanto moviĝas maldekstren aŭ dekstren, kaj ili uziĝas aŭtomate por marŝigi la ludanton (mal)dekstren dum interscenoj. Do, agordi ilin al malvera interrompos la marŝon. Agordi  al vera renversos la ludanton dum intersceno kvankam ri devus ne povi.

It seems that the original developer thought inputs from the old window would "stick" and be held down if fullscreen was toggled, as indicated by the comment. However, it is sufficient to clear the keymap, and wholly unnecessary to mess with other input variables when toggling fullscreen.

Additionally, " " will always appear in the console, despite there not being an error with the fullscreen toggle. This unnecessary print has been removed in 2.3.