Hüpfen in verschiedenen Display Größen

  • 1 Antworten
  • Letztes Antwortdatum
K

knuppel

Neues Mitglied
0
Hallo,

ich habe ein Projekt, bei der eine Box über Hindernisse hüpfen soll. Das Problem ist, dass die Box bei verschiedenen Display Größen unterschiedlich weit hüpft. Habe natürlich alles in Abhängigkeit der Display Größe programmiert.

Das Beispiel ist in Processing programmiert. DisplayWidth=width und DisplayHeight=height sind die ermittelten Display Größen:
Code:
int rgb1, rgb2, rgb3;
float x, y, w, h, position, oben, unten, velocity, a, yy2;
int ltime, ctime;
float etime;
float jumc, inc;
boolean jumping;
float boxwidth, boxheight;
int MAX_INCR = 15;
 
void setup() {
  size(displayWidth, displayHeight);
  //size(800, 600);
  
  // These don't change over time and are already global, so can be moved safely here
  boxwidth=width*0.02;
  boxheight=width*0.02;
  oben=height*0.35-boxheight;
  unten=height*0.7-boxheight; 
 
  rgb1=247;
  rgb2=234;
  rgb3=112;
 
  x=0.7*width;
  y=0.5*height;
  w=0.05*width;
  h=height;
  
  inc = (PI / width) * 10.0 * w / MAX_INCR;
  println(w + " " + inc);
}
 
void draw() {
//  background(0);
  rect(x, y, w, h);
  //speed=0.019*width;
  //i=i+speed;
 
  velocity=width*0.007;
 
  ctime = millis();
  etime = (ctime - ltime)/10;
  ltime = ctime;
  position += velocity*etime;
 
  //a = a + inc;
 
  if (mousePressed && !jumping) jumping = true;
  if (jumping)
  {
    jumc += 1;
    if (a > PI) {
      jumping = false;
      a = 0;
      jumc = 0;
    }
    yy2 = unten - abs(sin(a)) * height * 0.25;
    println(yy2);
    //yy2=unten+sin(a)*210.0;1
 
    a += inc;
  } else { 
    yy2 = unten;
    a = 0;
  }
  rect(position, yy2, boxwidth, boxheight);
  if (position > width) position = 0;
}
 
Zuletzt bearbeitet von einem Moderator:
Für deinen Code solltest du übrigens die [ Code] Tags benutzen dann ist der besser lesbar.

Was heißt denn unterschiedlich weit?
Bei einem breiten Display springt die Box natürlich weiter weil du die Breite wenn ich das richtig sehe als Ausgangspunkt für deine Berechnung nutzt.
 
Zurück
Oben Unten