Automatic deploy 29013936

This commit is contained in:
Renan LE CARO 2025-03-01 14:36:44 +01:00
parent 5860e6119e
commit 365b5c5de2
4 changed files with 29 additions and 48 deletions

View file

@ -126,14 +126,8 @@ There's also an easy mode for kids (slower ball) and a color-blind mode (no colo
# Roadmap # Roadmap
The "engine" could be better The "engine" could be better
- handle high combo better - apk version soft locks at start.
- avoid coin clip through puck
- upgrade that boost coins +x% should change number of spawned coins
- explain the miss thing better
- apk version soft locks at start.
- add particles for respawn bricks
- remove color blind mode and just highlight bricks of the wrong color in the render with a pattern or something.
- replace "menu" by "L2/7" once you pass level 1 - replace "menu" by "L2/7" once you pass level 1
- shinier coins by applying glow to them ? - shinier coins by applying glow to them ?
- It's a bit confusing at first to grasp that one upgrade is applied randomly at the start of the game - It's a bit confusing at first to grasp that one upgrade is applied randomly at the start of the game

View file

@ -11,8 +11,8 @@ android {
applicationId = "me.lecaro.breakout" applicationId = "me.lecaro.breakout"
minSdk = 21 minSdk = 21
targetSdk = 34 targetSdk = 34
versionCode = 29011564 versionCode = 29013936
versionName = "29011564" versionName = "29013936"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables { vectorDrawables {
useSupportLibrary = true useSupportLibrary = true

View file

@ -1180,10 +1180,10 @@ function tick() {
coin.vy *= ratio; coin.vy *= ratio;
coin.vx *= ratio; coin.vx *= ratio;
if(coin.vx>7*baseSpeed) coin.vx=7*baseSpeed if (coin.vx > 7 * baseSpeed) coin.vx = 7 * baseSpeed
if(coin.vx<-7*baseSpeed) coin.vx=-7*baseSpeed if (coin.vx < -7 * baseSpeed) coin.vx = -7 * baseSpeed
if(coin.vy>7*baseSpeed) coin.vy=7*baseSpeed if (coin.vy > 7 * baseSpeed) coin.vy = 7 * baseSpeed
if(coin.vy<-7*baseSpeed) coin.vy=-7*baseSpeed if (coin.vy < -7 * baseSpeed) coin.vy = -7 * baseSpeed
coin.a += coin.sa coin.a += coin.sa
// Gravity // Gravity
@ -1432,35 +1432,19 @@ function ballTick(ball, delta) {
if (!ball.hitSinceBounce) { if (!ball.hitSinceBounce) {
runStatistics.misses++ runStatistics.misses++
levelMisses++; levelMisses++;
const loss = resetCombo(ball.x, ball.y) resetCombo(ball.x, ball.y)
if (ball.bouncesList?.length) { flashes.push({
ball.bouncesList.push({ type: "text",
x: ball.previousx, text: 'miss',
y: ball.previousy duration: 500,
}) time: levelTime,
for (si = 0; si < ball.bouncesList.length - 1; si++) { size: puckHeight * 1.5,
// segement color: 'red',
const start = ball.bouncesList[si] x: puck,
const end = ball.bouncesList[si + 1] y: gameZoneHeight - puckHeight * 2,
const distance = distanceBetween(start, end)
});
const parts = distance / 30
for (var i = 0; i < parts; i++) {
flashes.push({
type: "particle",
duration: 200,
ethereal: true,
time: levelTime,
size: coinSize / 2,
color: loss ? 'red' : ball.color,
x: start.x + (i / (parts - 1)) * (end.x - start.x),
y: start.y + (i / (parts - 1)) * (end.y - start.y),
vx: (Math.random() - 0.5) * baseSpeed,
vy: (Math.random() - 0.5) * baseSpeed,
});
}
}
}
} }
runStatistics.puck_bounces++ runStatistics.puck_bounces++
@ -1867,7 +1851,9 @@ function render() {
scoreInfo += "🖤 "; scoreInfo += "🖤 ";
} }
scoreInfo += score.toString(); scoreInfo += 'L'+(currentLevel+1)+'/'+max_levels()+' ';
scoreInfo += '$'+score.toString();
scoreDisplay.innerText = scoreInfo; scoreDisplay.innerText = scoreInfo;
// Clear // Clear
if (!isSettingOn("basic") && !level.color && level.svg && !level.black_puck) { if (!isSettingOn("basic") && !level.color && level.svg && !level.black_puck) {
@ -2742,7 +2728,7 @@ async function openSettingsPanel() {
name, name,
max, max,
help, id, help, id,
threshold, icon, tryout,fullHelp threshold, icon, tryout, fullHelp
}) => ({ }) => ({
text: name, text: name,
help: ts >= threshold ? fullHelp || help : `Unlocks at total score ${threshold}.`, help: ts >= threshold ? fullHelp || help : `Unlocks at total score ${threshold}.`,
@ -3003,6 +2989,7 @@ function recordOneFrame() {
return return
} }
if (!running) return; if (!running) return;
if (!captureStream) return;
drawMainCanvasOnSmallCanvas() drawMainCanvasOnSmallCanvas()
// Start recording after you hit something // Start recording after you hit something
if (levelSpawnedCoins && levelGif) { if (levelSpawnedCoins && levelGif) {

View file

@ -9,17 +9,17 @@
<meta http-equiv="X-UA-Compatible" content="ie=edge" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Breakout 71</title> <title>Breakout 71</title>
<meta name="description" content="A breakout game with roguelite mechanics. Break bricks, catch coins, pick upgrades, repeat. Play for free on mobile and desktop."> <meta name="description" content="A breakout game with roguelite mechanics. Break bricks, catch coins, pick upgrades, repeat. Play for free on mobile and desktop.">
<link rel="stylesheet" href="style.css?v=29011564" /> <link rel="stylesheet" href="style.css?v=29013936" />
<link rel="icon" href="./icon.svg" /> <link rel="icon" href="./icon.svg" />
</head> </head>
<body> <body>
<button id="menu"><span> menu</span></button> <button id="menu"><span> menu</span></button>
<button id="score"></button> <button id="score"></button>
<canvas id="game"></canvas> <canvas id="game"></canvas>
<script>window.appVersion="?v=29011564".slice(3)</script> <script>window.appVersion="?v=29013936".slice(3)</script>
<script src="gif.js"></script> <script src="gif.js"></script>
<script src="levels.js?v=29011564"></script> <script src="levels.js?v=29013936"></script>
<script src="game.js?v=29011564"></script> <script src="game.js?v=29013936"></script>
</body> </body>