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

@ -127,13 +127,7 @@ There's also an easy mode for kids (slower ball) and a color-blind mode (no colo
# Roadmap
The "engine" could be better
- handle high combo better
- 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
- 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

View file

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

View file

@ -1432,35 +1432,19 @@ function ballTick(ball, delta) {
if (!ball.hitSinceBounce) {
runStatistics.misses++
levelMisses++;
const loss = resetCombo(ball.x, ball.y)
if (ball.bouncesList?.length) {
ball.bouncesList.push({
x: ball.previousx,
y: ball.previousy
})
for (si = 0; si < ball.bouncesList.length - 1; si++) {
// segement
const start = ball.bouncesList[si]
const end = ball.bouncesList[si + 1]
const distance = distanceBetween(start, end)
const parts = distance / 30
for (var i = 0; i < parts; i++) {
resetCombo(ball.x, ball.y)
flashes.push({
type: "particle",
duration: 200,
ethereal: true,
type: "text",
text: 'miss',
duration: 500,
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,
size: puckHeight * 1.5,
color: 'red',
x: puck,
y: gameZoneHeight - puckHeight * 2,
});
}
}
}
}
runStatistics.puck_bounces++
@ -1867,7 +1851,9 @@ function render() {
scoreInfo += "🖤 ";
}
scoreInfo += score.toString();
scoreInfo += 'L'+(currentLevel+1)+'/'+max_levels()+' ';
scoreInfo += '$'+score.toString();
scoreDisplay.innerText = scoreInfo;
// Clear
if (!isSettingOn("basic") && !level.color && level.svg && !level.black_puck) {
@ -3003,6 +2989,7 @@ function recordOneFrame() {
return
}
if (!running) return;
if (!captureStream) return;
drawMainCanvasOnSmallCanvas()
// Start recording after you hit something
if (levelSpawnedCoins && levelGif) {

View file

@ -9,17 +9,17 @@
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<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.">
<link rel="stylesheet" href="style.css?v=29011564" />
<link rel="stylesheet" href="style.css?v=29013936" />
<link rel="icon" href="./icon.svg" />
</head>
<body>
<button id="menu"><span> menu</span></button>
<button id="score"></button>
<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="levels.js?v=29011564"></script>
<script src="game.js?v=29011564"></script>
<script src="levels.js?v=29013936"></script>
<script src="game.js?v=29013936"></script>
</body>