mirror of
https://gitlab.com/lecarore/breakout71.git
synced 2025-04-22 13:06:15 -04:00
Automatic deploy 29013936
This commit is contained in:
parent
5860e6119e
commit
365b5c5de2
4 changed files with 29 additions and 48 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1180,10 +1180,10 @@ function tick() {
|
|||
|
||||
coin.vy *= ratio;
|
||||
coin.vx *= ratio;
|
||||
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.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
|
||||
coin.a += coin.sa
|
||||
|
||||
// Gravity
|
||||
|
@ -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)
|
||||
resetCombo(ball.x, ball.y)
|
||||
flashes.push({
|
||||
type: "text",
|
||||
text: 'miss',
|
||||
duration: 500,
|
||||
time: levelTime,
|
||||
size: puckHeight * 1.5,
|
||||
color: 'red',
|
||||
x: puck,
|
||||
y: gameZoneHeight - puckHeight * 2,
|
||||
|
||||
});
|
||||
|
||||
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++
|
||||
|
@ -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) {
|
||||
|
@ -2742,7 +2728,7 @@ async function openSettingsPanel() {
|
|||
name,
|
||||
max,
|
||||
help, id,
|
||||
threshold, icon, tryout,fullHelp
|
||||
threshold, icon, tryout, fullHelp
|
||||
}) => ({
|
||||
text: name,
|
||||
help: ts >= threshold ? fullHelp || help : `Unlocks at total score ${threshold}.`,
|
||||
|
@ -3003,6 +2989,7 @@ function recordOneFrame() {
|
|||
return
|
||||
}
|
||||
if (!running) return;
|
||||
if (!captureStream) return;
|
||||
drawMainCanvasOnSmallCanvas()
|
||||
// Start recording after you hit something
|
||||
if (levelSpawnedCoins && levelGif) {
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue