This is an old revision of the document!
Documentation » Using WinSCP » Basic Tasks »
<!DOCTYPE html>
Advertisement
<head>
<style>
/* Styling für das Spielfeld */
#game {
width: 400px;
height: 400px;
border: 1px solid black;
position: relative;
background-image: url("landscape.png");
background-size: cover;
}
/* Styling für den Spieler */
#player {
width: 50px;
height: 50px;
background-color: blue;
position: absolute;
bottom: 0;
left: 175px;
}
/* Styling für die Plattformen */
.platform {
width: 100px;
height: 20px;
background-color: transparent;
position: absolute;
}
</style>
</head>
<body>
<!-- Das Spielfeld -->
<div id="game">
<!-- Der Spieler -->
<div id="player"></div>
<!-- Die Plattformen -->
<div class="platform" style="top: 60px; left: 0;"></div>
<div class="platform" style="top: 140px; left: 300px;"></div>
<div class="platform" style="top: 220px; left: 150px;"></div>
</div>
<script>
// Der Spieler
var player = document.getElementById("player");
// Die Plattformen
var platforms = document.getElementsByClassName("platform");
// Die Fallgeschwindigkeit des Spielers
var playerVelocity = 0;
// Die Schwerkraft
var gravity = 0.3;
// Flag, ob sich der Spieler auf einer Plattform befindet
var isOnPlatform = false;
// Horizontale Geschwindigkeit des Spielers
var playerHorizontalVelocity = 0;
// Horizontale Bewegungsgeschwindigkeit des Spielers
var playerMovementSpeed = 0.5;
// Spielfunktion, die immer wieder aufgerufen wird
function gameLoop() {
// Schwerkraft anwenden
playerVelocity += gravity;
player.style.top = player.offsetTop + playerVelocity + "px";
// Horizontale Bewegung des Spielers
player.style.left = player.offsetLeft + playerHorizontalVelocity + "px";
// Prüfen, ob der Spieler eine Plattform berührt
for (var i = 0; i < platforms.length; i++) {
var platform = platforms[i];
if (
player.offsetLeft < platform.offsetLeft + platform.offsetWidth &&
player.offsetLeft + player.offsetWidth > platform.offsetLeft &&
player.offsetTop + player.offsetHeight > platform.offsetTop &&
player.offsetTop < platform.offsetTop + platform.offsetHeight
) {
// Spieler berührt Plattform von unten
if (player.offsetTop + player.offsetHeight < platform.offsetTop + platform.offsetHeight) {
player.style.top = platform.offsetTop - player.offsetHeight + "px";
playerVelocity = 0;
isOnPlatform = true;
}
}
}
// Prüfen, ob der Spieler das Spielfeld verlässt
if (player.offsetTop > game.offsetHeight) {
// Spieler ist unten aus dem Spielfeld gefallen
player.style.top = "0px";
playerVelocity = 0;
} else if (player.offsetLeft < 0) {
// Spieler ist links aus dem Spielfeld gefallen
player.style.left = "0px";
} else if (player.offsetLeft + player.offsetWidth > game.offsetWidth) {
// Spieler ist rechts aus dem Spielfeld gefallen
player.style.left = game.offsetWidth - player.offsetWidth + "px";
}
}
// Sprungfunktion
function jump() {
if (isOnPlatform) {
playerVelocity = -10;
isOnPlatform = false;
}
}
// Spielfunktion immer wieder aufrufen
setInterval(gameLoop, 1000 / 60);
// Maus- und Touch-Eingaben abfangen
document.addEventListener("mousedown", jump);
document.addEventListener("touchstart", function(event) {
event.preventDefault();
jump();
}, { passive: false });
document.addEventListener("mousemove", function(event) {
// Mausposition abfangen
var mouseX = event.clientX;
// Horizontale Bewegung des Spielers in Abhängigkeit von der Mausposition
if (mouseX < player.offsetLeft) {
playerHorizontalVelocity = -playerMovementSpeed;
} else if (mouseX > player.offsetLeft + player.offsetWidth) {
playerHorizontalVelocity = playerMovementSpeed;
} else {
playerHorizontalVelocity = 0;
}
});
document.addEventListener("touchmove", function(event) {
// Touchposition abfangen
var touchX = event.touches[0].clientX;
// Horizontale Bewegung des Spielers in Abhängigkeit von der Touchposition
if (touchX < player.offsetLeft) {
playerHorizontalVelocity = -playerMovementSpeed;
} else if (touchX > player.offsetLeft + player.offsetWidth) {
playerHorizontalVelocity = playerMovementSpeed;
} else {
playerHorizontalVelocity = 0;
}
});
document.addEventListener("mouseup", function(event) {
// Mausklick losgelassen
playerHorizontalVelocity = 0;
});
document.addEventListener("touchend", function(event) {
// Touch losgelassen
playerHorizontalVelocity = 0;
});
</script>
</body>
Advertisement