Advertisement
Nojus_Globys

jumping

Jan 31st, 2023
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.76 KB | Software | 0 0
  1. PImage
  2.     lion,
  3.     car;
  4.  
  5. int
  6.     lionX,lionY,
  7.     carX, carY,
  8.  
  9.     lionW, lionH,
  10.     carW, carH,
  11.  
  12.     carSpeed,
  13.  
  14.     lionStep = 1,
  15.     maxStep,
  16.  
  17.     road;
  18.  
  19. boolean flag = true;
  20.  
  21. void setup ( ) {
  22.     size(1280, 740);
  23.     //fullScreen (); // jei noriu, kad programa veiktų visame ekrane (bet man to nereikia)
  24.    
  25.     // lango dydį galima šiek tiek keisti
  26.     // tiesa, dydis pririštas prie aukščio
  27.     // tad jam didėjant, atitinkamai turi didėti ir plotis
  28.     lion = loadImage("data/lion.png");
  29.     car = loadImage("data/car.png");
  30.  
  31.     imageMode (CENTER);
  32.     float size = height / 2500.0;
  33.    
  34.     lionW = (int)(lion.width * size);
  35.     lionH = (int)(lion.height * size);
  36.     carW = (int)(car.width * size);
  37.     carH = (int)(car.height * size);
  38.  
  39.     road = height - height / 4;
  40.  
  41.     lionX = carX = width / 2;
  42.     carY = road;
  43.  
  44.     lionY = road - carH - lionH/2;
  45.    
  46.     carSpeed = width / 80;
  47. }
  48.  
  49. void car ( ) {
  50.     image(car, carX, carY, carW, carH);
  51.     carX += carSpeed;
  52.  
  53.     if (carX - carW > width)
  54.         carX = -carW; // iš esmės, dar šiek tiek ir uždedu, kad tikrai gražiai
  55.         // įlįstų į vieną pusę ir išlįstų iš kitos
  56.     if (
  57.         (carX + carW/2 > lionX - lionW/2) && // automobilis atsitrenkė į liūtą
  58.         (carX - carW/2 < lionX + lionW/2) && // automobilis liūto dar nepravažiavo
  59.         (lionY == road) // liūtas yra ant kelio
  60.     )
  61.         stop();
  62. }
  63.  
  64. void lion ( ) {
  65.     image(lion, lionX, lionY, lionW, lionH);
  66.     lionY += lionStep;
  67.     //if (flag)
  68.         lionStep += 2; // gravitacija turėtų būti tokia pati visiems langams (?)
  69.     //else
  70.     //    lionStep += maxStep / 18;
  71.    
  72.     // iš tiesų galėčiau taip daryti, tik kad dabar tai neturi prasmės
  73.     // nes pačioje pradžioje lionStep didinu per du
  74.    
  75.     // tai reiškia, kad kūnas kildamas į viršų po truputį lėtėja
  76.     // ir leisdamasis žemyn greitėja
  77.     // taip lyg ir veikia gravitacija
  78.    
  79.     if (lionY > road) { // taip, šitas reikalas reikalingas tik pirmam kartui
  80.         if (flag) {
  81.             maxStep = lionStep;
  82.             //println (maxStep, maxStep/18);
  83.             // aš tik šitoje vietoje inicializuoju maxStep (kad žinočiau, kiek man reikia pakilti į viršų)
  84.             flag = false;
  85.         }
  86.         lionY = road; // noriu čia užtikrinti konkrečią vietą, nes lionStep keičiantis
  87.         // gali atsitikti, kad lionY niekad nebus konkretus toks, kokio man reikia
  88.         lionStep = 0;
  89.     }
  90. }
  91.  
  92. void keyPressed ( ) {
  93.     if ((key == ' ') && (lionY == road))
  94.         lionStep = -maxStep; // sakau, kad šoksiu į viršų (šioje vietoje iš tiesų dar nešoku)
  95. }
  96.  
  97. void draw ( ) {
  98.     background(125, 195, 255); // light blue
  99.     lion ();
  100.     car ();
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement