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/06/06 22:05] – [Demo-Programm zur Methode follow] Martin Pabstapi:documentation:spiele:worldtransformations [2021/12/29 11:29] (aktuell) – Externe Bearbeitung 127.0.0.1
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.1623009939.txt.gz · Zuletzt geändert: 2021/12/29 11:29 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki