mirror of
https://gitlab.com/lecarore/breakout71.git
synced 2025-04-21 12:36:15 -04:00
Automatic deploy 29013936
This commit is contained in:
parent
5860e6119e
commit
365b5c5de2
4 changed files with 29 additions and 48 deletions
10
Readme.md
10
Readme.md
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue