Wie csv Datei auslesen und in amCharts einfügen?

Hi,

ich habe amCharts ausprobiert mit ein paar statischen Werten. Das sieht ungefähr so aus:

  // Create chart instance
            var chart = am4core.create("chartdiv2", am4charts.XYChart);
            
            // Add data
            chart.data = [{
              "ax": 5,
              "ay": 20
            
            }, {
              "ax": 2,
              "ay": 1.3
             
            }, {
              "ax": 3,
              "ay": 2.3,
              "bx": 3,
              "by": 5.1
            }, {
              "ax": 4,
              "ay": 2.8,
              "bx": 4,
              "by": 5.3
            }, {
              "ax": 5,
              "ay": 3.5,
              "bx": 5,
              "by": 6.1
            }, {
              "ax": 6,
              "ay": 5.1,
              "bx": 6,
              "by": 8.3
            }, {
              "ax": 7,
              "ay": 6.7,
              "bx": 7,
              "by": 10.5
            }, {
              "ax": 8,
              "ay": 8,
              "bx": 8,
              "by": 12.3
            }, {
              "ax": 9,
              "ay": 8.9,
              "bx": 9,
              "by": 14.5
            }, {
              "ax": 10,
              "ay": 9.7,
              "bx": 10,
              "by": 15
            }, {
              "ax": 11,
              "ay": 10.4,
              "bx": 11,
              "by": 18.8
            }, {
              "ax": 12,
              "ay": 11.7,
              "bx": 12,
              "by": 19
            }];
           

Jetzt würde ich die Werte gerne aus einer csv Datei auslesen. Ich habe mir dieses Beispiel angeschaut, aber ich verstehe nicht ganz, wie das funktioniert. Die csv Datei ist lokal im selben Ordner wie mein HTML-File.

Wie spiel ich die CSV-Daten ein?

Computer, Programmieren, JavaScript, csv
Wie bekomme ich eine Kollisionsbehandlung hin?

Hi Leute :) Ich bin dabei ein kleines Jump&Run in Java zu programmieren und bin nun schon seit geraumer Zeit an der Kollisionsauflösung hängengeblieben. Die Erkennung von Kollisionen habe ich bereits gelöst. Ich habe nun schon das halbe Internet abgesucht, bin aber nicht schlauer geworden. Könnt ihr mir helfen? Ich habe bisher eine HALBWEGS funktionierende Kollisionserkennung hinbekommen.

Gegeben sind mir: -Position des Spielers(px, py), -Größe des Spielers(playerSize), -Pos. der Hitbox(bx, by), -Seitenlänge der Hitbox(boxSize), -Bewegungsrichtung des Spielers(movex, movey), -Zielposition des Spielers ohne Einbezug der Kollision(destx, desty), -Geschwindigkeit des Spielers(vel) --- alles vom Typ "int"

Das Problem: so wie ich das gelöst habe ist die Auflösung fehlerhaft. Wenn ich geradewegs auf die Hitbox zukomme mit einer Geschwindigkeit von z.B. 5 Pixel pro Frame und ich rage bei der Kollision so in die Hitbox hinein, dass der x-Anteil größer ist als der y-Anteil, dann wird es nach y aufgelöst.

Ich wollte in jedem Schleifendurchlauf die Kollision mit allen überlappenden Tiles so auflösen: Mein bisheriger Code:

if(intersect(...)){ //wenn die Kollision mit der aktuellen Box feststeht
int tilex = bx
int tiley = by
                    
int yover = desty + playerSize - by;        //positiv wenn überlappung
int yunder = by + boxSize - desty;      //positiv wenn überlappung
int xleft = xdest + playerSize - bx;        //positiv wenn überlappung
int xright = bx + boxSize- destx;       //positiv wenn überlappung
                    
boolean left = false, right = false, top = false, bottom = false;  

//Überragt der Spieler die obere, untere, linke oder Rechte Seite der Box 
                    
if(desty < by) top = true;
if(desty + playerSize > by + boxSize) bottom = true;
if(destx < bx) left = true;
if(destx + playerSize > bx + boxSize) right = true;
                    
if(top && !right && !left) desty = by - playerSize;
if(bottom && !right && !left) desty = by + boxSize;
if(left && !top && !bottom) destx = bx - playerSize;
if(right && !top && !bottom) destx = bx + boxSize;
                    
if(top && right){
    if(yover < xright) desty = by - playerSize;
    if(yover > xright) destx = tilex + boxSize;
}
if(top && left){
    if(yover < xleft) desty = by - playerSize;
    if(yover > xleft) destx = bx - playerSize;
}
if(bottom && left){
    if(yunder < xleft) desty = by + boxSize;
    if(yunder > xleft) destx = bx - playerSize;
}
if(bottom && right){
    if(yunder < xright) desty = by + boxSize;
    if(yunder > xright) destx = bx + boxSize;
}
}

Meine Frage ist nun: Wie bekomme ich so eine realistische und genaue Kollisionsbehandlung hin (mit destx und desty als Zielpositionen)? Es geht mir dabei nicht um einwandfreies Java, es zählt nur die Logik dahinter (von mir aus auch Pseudo-code).

Vielen Dank im Voraus :)

Programmieren, Java, Spiele programmieren
Mathematik: Warum gehen verschiedene Taschenrechner mit der Verwendung der Prozenttaste (%) unterschiedlich um?

Mir ist aufgefallen, dass verschiedene Taschenrechner mit der Verwendung der Prozenttaste (%) unterschiedlich umgehen:

1) Ubuntu Gnome-Calculator

100 + 10 % = 100,1

100 – 10 % = 99,9

100 × 10 % = 10

100 ÷ 10 % = 1000

2) Windows 10 Rechner-App

100 + 10 % = 110

100 – 10 % = 90

100 × 10 % (Zwischenanzeige: 0,1) = 10

100 ÷ 10 % (Zwischenanzeige: 0,1) = 1.000

3) Android Samsung-Calculator-App

100 + 10 % = 110

100 – 10 % = 90

100 × 10 % = 10

100 ÷ 10 % = 1.000

4) Apple iOS-Rechner-App

100 + 10 % = 110

100 – 10 % = 90

100 × 10 % (Zwischenanzeige: 0,1) = 10

100 ÷ 10 % (Zwischenanzeige: 0,1) = 1.000

5) Sharp EL-531WH Advanced D.A.L. (Wissenschaftlicher Rechner)

100 + 10 % (Zwischenanzeige: 110) = 110

100 – 10 % (Zwischenanzeige: 90) = 90

100 × 10 % (Zwischenanzeige: 10) = 1‘000

100 ÷ 10 % (Zwischenanzeige: 1‘000) = 10

6) Casio FX-991DE Plus Natural-V.P.A.M. (Technisch-wissenschaftlicher Rechner)

100 + 10 % = 100,1 (oder Bruchzahl: 1001/10)

100 – 10 % = 99,9 (oder Bruchzahl: 999/10)

100 × 10 % = 10

100 ÷ 10 % = 1000

7) Casio HR-8TEC Euro & Tax (Druckender Tischrechner)

100 + 10 % (Zwischenanzeige: 111,1 [periodisch]) = 111,1 (periodisch)

100 – 10 % (Zwischenanzeige: 900) = 900

100 × 10 % (Zwischenanzeige: 10) = 10

100 ÷ 10 % (Zwischenanzeige: 1‘000) = 1‘000

8) Zum Vergleich: Rechenweg mit dezimaler Zahlen-/Ziffernschreibweise

100 × 1,10 = 110

100 × 0,90 = 90

100 ÷ 1,10 = 90,90 (periodisch; oder Bruchzahl: 1000/11)

100 ÷ 0,90 = 111,1 (periodisch; oder Bruchzahl: 1000/9)

Frage: Warum ist das so und welche Regeln befolgen die verschiedenen Rechner? Gibt es noch andere Rechenoperationen, die verschiedene Taschenrechner unterschiedlich ausführen? Vielen Dank!

Computer, Mathematik, Technik, Elektronik, Rechner, Berechnung, Formel, Logik, Prozent, Taschenrechner, Technologie

Was möchtest Du wissen?