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