Botones de compartir
This commit is contained in:
parent
8807e24baf
commit
54724864a0
6 changed files with 69 additions and 1 deletions
|
@ -1,5 +1,7 @@
|
||||||
import botonComenzar from "./assets/Comenzar.png";
|
import botonComenzar from "./assets/Comenzar.png";
|
||||||
import botonSiguiente from "./assets/Siguiente.png";
|
import botonSiguiente from "./assets/Siguiente.png";
|
||||||
|
import botonCompartirPerdiste from "./assets/Comparti_2.png";
|
||||||
|
import botonCompartirFelicitaciones from "./assets/Comparti_1.png";
|
||||||
import logoFPGFDTBlanco from "./assets/Logo Blanco.png";
|
import logoFPGFDTBlanco from "./assets/Logo Blanco.png";
|
||||||
import logoSalvaLaCostanera from "./assets/SalvaCostanera.png";
|
import logoSalvaLaCostanera from "./assets/SalvaCostanera.png";
|
||||||
import logoSalvaLaCostaneraCostado from "./assets/Salva2.png";
|
import logoSalvaLaCostaneraCostado from "./assets/Salva2.png";
|
||||||
|
@ -39,6 +41,8 @@ function loadImage(url: string): Promise<HTMLImageElement> {
|
||||||
export const assetUrls = {
|
export const assetUrls = {
|
||||||
botonComenzar,
|
botonComenzar,
|
||||||
botonSiguiente,
|
botonSiguiente,
|
||||||
|
botonCompartirPerdiste,
|
||||||
|
botonCompartirFelicitaciones,
|
||||||
logoFPGFDTBlanco,
|
logoFPGFDTBlanco,
|
||||||
logoSalvaLaCostanera,
|
logoSalvaLaCostanera,
|
||||||
logoSalvaLaCostaneraCostado,
|
logoSalvaLaCostaneraCostado,
|
||||||
|
|
BIN
src/assets/Comparti_1.png
Normal file
BIN
src/assets/Comparti_1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.8 KiB |
BIN
src/assets/Comparti_2.png
Normal file
BIN
src/assets/Comparti_2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.9 KiB |
|
@ -6,8 +6,11 @@ import {
|
||||||
drawText,
|
drawText,
|
||||||
isMobile,
|
isMobile,
|
||||||
isTouching,
|
isTouching,
|
||||||
|
posInBox,
|
||||||
randomFromArray,
|
randomFromArray,
|
||||||
|
share,
|
||||||
} from "./utils";
|
} from "./utils";
|
||||||
|
import * as welcome from "./welcome";
|
||||||
|
|
||||||
const ENEMIES_NUM = 12;
|
const ENEMIES_NUM = 12;
|
||||||
const SEED_COOLDOWN = 300;
|
const SEED_COOLDOWN = 300;
|
||||||
|
@ -91,8 +94,40 @@ function touchControls(juego: Juego<State>): {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function shareButton(juego: Juego<State>): {
|
||||||
|
box: Box;
|
||||||
|
sprite: Sprite;
|
||||||
|
} {
|
||||||
|
const sprite =
|
||||||
|
juego.state.has === "won"
|
||||||
|
? juego.sprites.botonCompartirFelicitaciones
|
||||||
|
: juego.sprites.botonCompartirPerdiste;
|
||||||
|
|
||||||
|
const width = sprite.getWidth(juego);
|
||||||
|
const height = sprite.getHeight(juego);
|
||||||
|
return {
|
||||||
|
box: {
|
||||||
|
x: juego.canvas.width / 2 - width / 2,
|
||||||
|
y: juego.canvas.height * 0.9 - height,
|
||||||
|
width,
|
||||||
|
height,
|
||||||
|
},
|
||||||
|
sprite,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
export function update(juego: Juego<State>, dt: number) {
|
export function update(juego: Juego<State>, dt: number) {
|
||||||
if (juego.state.has) return;
|
if (juego.state.has) {
|
||||||
|
const button = shareButton(juego);
|
||||||
|
if (
|
||||||
|
isTouching(juego, button.box) ||
|
||||||
|
(juego.mouse.down && posInBox(button.box, juego.mouse))
|
||||||
|
) {
|
||||||
|
share();
|
||||||
|
(juego as Juego<AllState>).state = welcome.createState();
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
juego.state.time -= dt;
|
juego.state.time -= dt;
|
||||||
if (juego.state.time < 0) {
|
if (juego.state.time < 0) {
|
||||||
|
@ -444,5 +479,7 @@ export function draw(juego: Juego<State>, timestamp: number) {
|
||||||
juego.canvas.height * 0.1
|
juego.canvas.height * 0.1
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
const button = shareButton(juego);
|
||||||
|
button.sprite.draw(juego, button.box.x, button.box.y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
11
src/main.ts
11
src/main.ts
|
@ -17,6 +17,8 @@ export type Juego<T extends State> = {
|
||||||
[key in
|
[key in
|
||||||
| "botonSiguiente"
|
| "botonSiguiente"
|
||||||
| "botonComenzar"
|
| "botonComenzar"
|
||||||
|
| "botonCompartirPerdiste"
|
||||||
|
| "botonCompartirFelicitaciones"
|
||||||
| "logoFPGFDTBlanco"
|
| "logoFPGFDTBlanco"
|
||||||
| "logoSalvaLaCostaneraGrande"
|
| "logoSalvaLaCostaneraGrande"
|
||||||
| "logoSalvaLaCostaneraCostado"
|
| "logoSalvaLaCostaneraCostado"
|
||||||
|
@ -123,6 +125,15 @@ async function initJuego() {
|
||||||
botonSiguiente: loadSprite(assets.botonSiguiente, {
|
botonSiguiente: loadSprite(assets.botonSiguiente, {
|
||||||
height: (juego) => juego.canvas.height / 8,
|
height: (juego) => juego.canvas.height / 8,
|
||||||
}),
|
}),
|
||||||
|
botonCompartirPerdiste: loadSprite(assets.botonCompartirPerdiste, {
|
||||||
|
height: (juego) => juego.canvas.height / 8,
|
||||||
|
}),
|
||||||
|
botonCompartirFelicitaciones: loadSprite(
|
||||||
|
assets.botonCompartirFelicitaciones,
|
||||||
|
{
|
||||||
|
height: (juego) => juego.canvas.height / 8,
|
||||||
|
}
|
||||||
|
),
|
||||||
logoFPGFDTBlanco: loadSprite(assets.logoFPGFDTBlanco, {
|
logoFPGFDTBlanco: loadSprite(assets.logoFPGFDTBlanco, {
|
||||||
height: (juego) => juego.canvas.height / 6,
|
height: (juego) => juego.canvas.height / 6,
|
||||||
}),
|
}),
|
||||||
|
|
16
src/utils.ts
16
src/utils.ts
|
@ -75,3 +75,19 @@ export function isTouching(juego: Juego<any>, box: Box): boolean {
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function share() {
|
||||||
|
const text =
|
||||||
|
"¿Sabías que Larreta quiere vender la Costanera para construir un mega emprendimiento inmobiliario de lujo? Estamos juntando firmas para frenarlo, ya vamos 20 mil y nos faltan 20 mil más. ¿Te animas a jugar a este videojuego para salvar la costanera?";
|
||||||
|
try {
|
||||||
|
await navigator.share({
|
||||||
|
title: "Salvá la Costanera",
|
||||||
|
url: location.href,
|
||||||
|
text,
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
location.href = `https://api.whatsapp.com/send?text=${encodeURIComponent(
|
||||||
|
text + " " + location.href
|
||||||
|
)}`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue