Skip to content

Releases: openpatch/scratch-for-java

v2.0.0

26 Nov 21:28
ac0f71e
Compare
Choose a tag to compare

The Processing library Scratch changed owners. It is now hosted under the OpenPatch organization, therefore the package name change. You can now access the classes of this library like so:

import org.openpatch.scratch.*

v1.15.0

25 Nov 07:49
bb6f470
Compare
Choose a tag to compare

The Standalone Release

This release does not change the behaviour of the Processing library!

You can now use the scratch-standalone.jar for using this library in any Java environment. When you use this library outside of processing, you have to create a new object of the class ScratchStage. The init-method will only work in Processing.

import eu.barkmin.processing.scratch.*;

public class MyProgram
{
    public MyProgram() {
        ScratchStage s = new ScratchStage(800, 400);
        s.addSprite(new Cat());   
    }
}

class Cat extends ScratchSprite
{
  public Cat() {
    this.addCostume("sitzen", "sprites/cat.png");
    this.setOnEdgeBounce(true);
  }
  
  public void run() {
      this.move(1);
  }
}

You can also use this library outside of Processing in a more imperative way, similar to Shapes and Sprites. For this to work, the wait-method was added to the ScratchStage class.

import eu.barkmin.processing.scratch.*;

public class MyProgram
{
    public MyProgram() {
        ScratchStage s = new ScratchStage(400, 400);
        ScratchSprite cat = new ScratchSprite(
            "sitzen", "sprites/cat.png"
        );
        s.addSprite(cat);
        
        cat.setOnEdgeBounce(true);
        
        while(!s.isKeyPressed(27)) {
            cat.move(1);
            s.wait(100);
        }
    }
}

v1.14.2

12 May 20:33
Compare
Choose a tag to compare
  • Remove System.out.print statements

v1.14.1

12 May 13:16
Compare
Choose a tag to compare
  • improve ScratchText rendering

v1.14.0

11 May 23:33
Compare
Choose a tag to compare
  • add think and say to ScratchSprite
  • add display to ScratchStage
  • add whenClicked to Sprite
  • add whenBackdropSwitches to Sprite

v1.13.1

03 May 09:28
Compare
Choose a tag to compare
  • Optimize image loading

v1.13.0

02 May 11:38
Compare
Choose a tag to compare
  • add stage.removeSprites
  • add stage.findSprites
  • use CopyOnWriteArrayList instead of ArrayList

v1.12.0

25 Oct 07:40
Compare
Choose a tag to compare

Changelog

  • Enhancement: Add pickRandom method 2821c70
  • Enhancement: Add ScratchAnimatedSprite 3e02e91
  • Enhancement: Allow pressing two keys simultaneously ffa504b
  • Fix: Transparency detection 8f5bd06
  • Fix: Null pointer exception when sound is loading 081680c

v1.11.0

23 Oct 07:30
Compare
Choose a tag to compare

Changelog

  • add method raiseSprite to stage
  • add method lowerSprite to stage
  • add method removeBackdrop to stage
  • update docs

v1.10.0

18 Oct 13:31
Compare
Choose a tag to compare

Simplify the usage of sprites by remove the usage of super.

You can now simply add a sprite to the stage by stage.addSprite(sprite). This means that the draw method of the sprite will be implicit called. To change the behavior of the sprite override the run-method.

Before (and still possible):

MySprite mySprite;

void setup() {
    ScratchStage.init(this);
    mySprite = new MySprite();
}

void draw() {
   mySprite.draw();
}

class MySprite extends ScratchSprite {
   void draw() {
       super.draw();
       this.move();
   }
}

After:

ScratchStage stage;

void setup() {
    ScratchStage.init(this);
    stage = ScratchStage.getInstance()
    stage.addSprite(new MySprite());
}

void draw() {}

class MySprite extends ScratchSprite {
   void run() {
       this.move();
   }
}

Changelog

  • Add method run to ScratchSprite
  • Add method whenKeyPressed to ScratchSprite
  • Add method whenMouseMoved to ScratchSprite
  • Add method addSprite to ScratchStage
  • Add methode removeSprite to ScratchStage