7c5ce9dcb9
Build and deploy / deploy (push) Successful in 36s
- Écran de fin (score + Rejouer) déplacé en overlay par-dessus le jeu (fond assombri, carte animée, confettis) plutôt qu'en dessous. - Battement d'ailes repensé : cycle continu en boucle (visible même au repos, sans taper) + battement plus ample au tap qui prend le dessus brièvement. L'ancienne version ne bougeait qu'au moment du tap et retombait trop vite pour être perceptible en jeu réel. - Corrige une aile qui semblait ne pas bouger : les deux ailes utilisaient des teintes différentes et l'une passait partiellement derrière le corps ; elles sont maintenant identiques et toutes deux dessinées au-dessus du corps. Corrige au passage un signe de rotation inversé. - Corrige le contraste de plusieurs textes (« Ton record », instructions, pied de page) qui utilisaient une couleur prévue pour du texte sur marbre alors qu'ils s'affichent sur le fond sombre de la page.
41 lines
1.8 KiB
TypeScript
41 lines
1.8 KiB
TypeScript
// Format classique Flappy Bird : le personnage reste à une position d'écran
|
|
// fixe, le décor défile de droite à gauche (pas de piste qui change de
|
|
// forme selon le jour — parcours procédural à chaque partie, sans graine
|
|
// partagée, puisqu'il n'y a plus de comparaison "même tracé pour tous").
|
|
export const VIEWPORT_WIDTH = 340;
|
|
export const VIEWPORT_HEIGHT = 500;
|
|
|
|
export const GROUND_HEIGHT = 36;
|
|
export const GROUND_Y = VIEWPORT_HEIGHT - GROUND_HEIGHT;
|
|
|
|
export const ICARUS_X = VIEWPORT_WIDTH * 0.3;
|
|
export const ICARUS_RADIUS = 12;
|
|
export const ICARUS_START_Y = VIEWPORT_HEIGHT / 2;
|
|
|
|
export const GRAVITY = 900; // unités/seconde²
|
|
export const FLAP_IMPULSE = -300; // vitesse verticale imposée à chaque battement d'aile
|
|
export const MAX_FALL_SPEED = 480;
|
|
export const TILT_MAX_RADIANS = (45 * Math.PI) / 180;
|
|
|
|
// Animation des ailes (indépendante de l'inclinaison du corps) : un battement
|
|
// continu en boucle (pour que ça se voie même sans taper, dès l'écran de
|
|
// repos) + un battement plus ample et net à chaque tap, qui prend le dessus
|
|
// brièvement sur le cycle continu.
|
|
export const WING_REST_RADIANS = -(20 * Math.PI) / 180;
|
|
export const WING_IDLE_PEAK_RADIANS = (15 * Math.PI) / 180;
|
|
export const WING_IDLE_PERIOD_MS = 480;
|
|
export const WING_FLAP_MAX_RADIANS = (75 * Math.PI) / 180;
|
|
export const WING_FLAP_ANIM_MS = 260;
|
|
|
|
export const FORWARD_SPEED = 130; // unités/seconde, vitesse de défilement des colonnes
|
|
export const COLUMN_WIDTH = 46;
|
|
export const COLUMN_GAP = 128;
|
|
export const COLUMN_SPACING = 210;
|
|
export const COLUMN_GAP_MARGIN = 50; // distance mini entre le centre du trou et le sol/plafond
|
|
|
|
export const FIXED_DT_MS = 1000 / 60;
|
|
export const MAX_FRAME_DT_MS = 250; // évite la "spirale de la mort" après un onglet en arrière-plan
|
|
|
|
export const MIN_SCORE = 0;
|
|
export const MAX_SCORE = 1000000;
|