This commit is contained in:
klikev 2024-08-31 19:38:24 +02:00
parent 6cd16d5217
commit 17625c305e
3 changed files with 42 additions and 17 deletions

View File

@ -40,46 +40,41 @@ body{
.flexbox{ .flexbox{
display: flex; display: flex;
flex-direction: row; flex-direction: row;
justify-content: space-between;
} }
#rechnungen{ #rechnungen{
padding: 0px; padding: 0px;
position: relative; position: relative;
top: 1px; top: 1px;
justify-content: space-between;
width: 100%;
} }
#rechnung1, #rechnung2 { #rechnung1, #rechnung2 {
width: 20%; width: 10%;
padding: 20px; padding: 20px;
text-align: center; text-align: center;
z-index: 10; z-index: 10;
position: relative; position: relative;
display: inline-block;
} }
#rechnung1{ #rechnung1{
background-color: rgb(0, 225, 255); background-color: rgb(0, 225, 255);
border-radius: 15px; border-radius: 15px;
outline: 8px solid black; outline: 8px solid black;
margin-left: auto; left: 20px;
margin-right: 100px;
} }
#rechnung2{ #rechnung2{
background-color: red; background-color: red;
border-radius: 15px; border-radius: 15px;
outline: 8px solid black; outline: 8px solid black;
margin-left: 100px; right: 20px;
margin-right: auto;
}
#rechnung1 img, #rechnung2 img {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
z-index: -1;
width: 100%;
height: 100%;
object-fit: cover;
} }
#fuchsZahl{ #fuchsZahl{
padding-left: 100px; padding-left: 100px;
font-size: 30px; font-size: 30px;
width: 10%;
} }
#hitbox1, #hitbox2{
width: 50px;
height: 10px;
}

View File

@ -13,10 +13,12 @@
<div id="rechnung1"> <div id="rechnung1">
<div id="rechnung1Text">*5</div> <div id="rechnung1Text">*5</div>
<div id="hitbox1"></div>
</div> </div>
<div id="rechnung2"> <div id="rechnung2">
<div id="rechnung2Text">+5</div> <div id="rechnung2Text">+5</div>
<div id="hitbox2"></div>
</div> </div>
</div> </div>

View File

@ -25,10 +25,16 @@ let gesamtzahlRechnungen = 5;
//Die Fuchszahl die dem Spieler angezeigt wird //Die Fuchszahl die dem Spieler angezeigt wird
const fuchsZahl = document.querySelector("#fuchsZahl"); const fuchsZahl = document.querySelector("#fuchsZahl");
//Elemete für überlappungs Check
const fuchsImg = document.querySelector("#fuchs img");
const rechnung1Hitbox = document.querySelector("#hitbox1");
const rechnung2Hitbox = document.querySelector("#hitbox2");
rechnungenSpawn(maxZahl,maxMal,maxDurch); rechnungenSpawn(maxZahl,maxMal,maxDurch);
//wie viele Rechnungen bisher gespawed sind //wie viele Rechnungen bisher gespawed sind
let counterRechnungen = 1; let counterRechnungen = 1;
//rechnung berührt?
let bereitsEinmalOverlappt = false;
//returned den int in der Rechnung, nur die zahl ohne rechenzeichen //returned den int in der Rechnung, nur die zahl ohne rechenzeichen
function rechnung1Int(){ function rechnung1Int(){
@ -61,10 +67,10 @@ function rechnungMoven(speed,maxtiefe){
let nextTop = rechnungenTop + 10 * speed; let nextTop = rechnungenTop + 10 * speed;
rechnungen.style.top = nextTop + "px"; rechnungen.style.top = nextTop + "px";
if(nextTop > maxtiefe){ if(nextTop > maxtiefe){
fuchsZahl.innerText = ergebnis(parseInt(fuchsZahl.innerText),rechnung1Int(),rechnung1Zeichen()); //DIES IST ZUM TESTEN SPÄTER RAUSNEHMEN!!!
rechnungen.style.top = rechnungenTopStart + "px"; rechnungen.style.top = rechnungenTopStart + "px";
rechnungenTop = rechnungenTopStart; rechnungenTop = rechnungenTopStart;
rechnungenSpawn(maxZahl,maxMal,maxDurch); rechnungenSpawn(maxZahl,maxMal,maxDurch);
bereitsEinmalOverlappt = false;
counterRechnungen++; counterRechnungen++;
}else{ }else{
rechnungenTop = nextTop; rechnungenTop = nextTop;
@ -96,6 +102,24 @@ function rechnungenSpawn(maxzahl,maxMal,maxDurch){
} }
rechnung2Text.innerText = rechenzeichen[index] + randomZahl.toString(); rechnung2Text.innerText = rechenzeichen[index] + randomZahl.toString();
} }
function checkOverlap(objekt1, objekt2) {
const rect1 = objekt1.getBoundingClientRect(); //sorgt dafür, dass man die position der grenzen des Elements bekommt
const rect2 = objekt2.getBoundingClientRect();
return !(rect1.right < rect2.left || rect1.left > rect2.right || rect1.bottom < rect2.top || rect1.top > rect2.bottom); //true wenn die objekte überlappen
}
function rechne(){
if(checkOverlap(fuchsImg,rechnung1Hitbox)){
fuchsZahl.innerText = ergebnis(parseInt(fuchsZahl.innerText),rechnung1Int(),rechnung1Zeichen());
console.log("Rechnung 1");
bereitsEinmalOverlappt = true;
}
if(checkOverlap(fuchs,rechnung2Hitbox)){
fuchsZahl.innerText = ergebnis(parseInt(fuchsZahl.innerText),rechnung2Int(),rechnung2Zeichen());
console.log("Rechnung 2");
bereitsEinmalOverlappt = true;
}
}
function ergebnis(zahl1,zahl2,rechenzeichen){ function ergebnis(zahl1,zahl2,rechenzeichen){
if(rechenzeichen == '+'){ if(rechenzeichen == '+'){
return zahl1 + zahl2; return zahl1 + zahl2;
@ -114,5 +138,9 @@ function ergebnis(zahl1,zahl2,rechenzeichen){
setInterval(()=>{ setInterval(()=>{
if(counterRechnungen <= gesamtzahlRechnungen){ if(counterRechnungen <= gesamtzahlRechnungen){
rechnungMoven(speedRechnungen,maxTiefeRechunngen); rechnungMoven(speedRechnungen,maxTiefeRechunngen);
if(!bereitsEinmalOverlappt){
rechne();
}
} }
}, 10); }, 10);