Benutzer-Werkzeuge

Webseiten-Werkzeuge


api:documentation:spiele:worldtransformations

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
api:documentation:spiele:worldtransformations [2021/05/31 10:07] – [Demo-Programm zur Methode follow] Martin Pabstapi:documentation:spiele:worldtransformations [2021/12/29 11:29] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 118: Zeile 118:
  
 **Vielen Dank an Jürgen Horzella für die Programmvorlage!** \\ \\  **Vielen Dank an Jürgen Horzella für die Programmvorlage!** \\ \\ 
-Steuere den grünen Helden mit den **Pfeiltasten**!+Steuere den Helden mit den **Pfeiltasten**!
  
 <HTML> <HTML>
Zeile 164: Zeile 164:
              
       for(int i = 0; i < 40; i++) {       for(int i = 0; i < 40; i++) {
-         Sprite star = new Sprite(Random.randdouble(-500, 1500), Random.randint(300, 500), SpriteLibrary.Plattforms, 144); +         Sprite star = new Sprite(Random.randdouble(-500, 1500), Random.randint(300, 500), SpriteLibrary.Plattforms, 176); 
          stars.add(star);          stars.add(star);
       }       }
              
-      spielfigur = new Sprite(200400, SpriteLibrary.Characters_1, 0);+      spielfigur = new Sprite(500100, SpriteLibrary.Characters_1, 0);
       vx = 0;       vx = 0;
       vy = 0;       vy = 0;
Zeile 196: Zeile 196:
  
       if(spielfigur.collidesWith(bombe)) {       if(spielfigur.collidesWith(bombe)) {
-         spielfigur.moveTo(200400);+         spielfigur.moveTo(500100);
       }       }
                          
Zeile 263: Zeile 263:
  
 </HTML> </HTML>
 +
 +
 +===== Zyklisch-parallaktisches Scrollen =====
 +{{ youtube>mRgC7BJcK78?large }}
 +
 +<HTML>
 +
 +<div class="java-online" style="height: 450px; width: 100%" data-java-online="{'withBottomPanel': true, 'id': 'CyclicParalacticScroller', 'speed': 'max'}">
 +
 +<script type="text/plain" title="CyclicBackgroundTest.java">
 +new CyclicBackgroundTest();
 +
 +class CyclicBackgroundTest extends Actor {
 +   
 +   CyclicBackground cb1;
 +   CyclicBackground cb2;
 +   CyclicBackground cb3;
 +   
 +   int time = 0;
 +
 +   CyclicBackgroundTest() {
 +      cb1 = new CyclicBackground(new Sprite(0, 0, SpriteLibrary.Background, 2));
 +      cb2 = new CyclicBackground(new Sprite(0, 0, SpriteLibrary.Background, 1));
 +      cb3 = new CyclicBackground(new Sprite(0, 0, SpriteLibrary.Background, 0));
 +   }
 +
 +   public void act() {
 +      time++;
 +      cb1.setPosition(-time, 0);
 +      cb2.setPosition(-time * 2, 200);
 +      cb3.setPosition(-time * 4, 400);
 +   }
 +
 +}
 +</script>
 +<script type="text/plain" title="CyclicBackground.java">
 +class CyclicBackground extends Group {
 +   
 +   Sprite[] images;
 +   double spriteWidth;
 +
 +   CyclicBackground(Sprite image) {
 +      spriteWidth = image.getWidth();
 +      int count = Math.ceil(getWorld().getWidth() / spriteWidth) + 1;
 +      images = new Sprite[count];
 +      image.defineCenterRelative(0, 0);
 +      images[0] = image;
 +      add(image);
 +      for(int i = 1; i < count; i++) {
 +         images[i] = image.copy();
 +         add(images[i]);
 +      }
 +   }
 +
 +   void setPosition(double left, double top) {
 +      if(left > 0) {
 +         left -= Math.ceil(-left / spriteWidth) * spriteWidth;
 +      }
 +      
 +      double x = left + Math.floor(-left / spriteWidth) * spriteWidth;
 +      for(int i = 0; i < images.length; i++){
 +         images[i].moveTo(x, top);
 +         x += spriteWidth;
 +      }
 +   }
 +
 +
 +}
 +</script>
 +
 +</div>
 +
 +</HTML>
 +
 +
api/documentation/spiele/worldtransformations.1622448477.txt.gz · Zuletzt geändert: 2021/12/29 11:29 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki