Files
FriceDemo/old/Demo7.java
T
ice1000 8e8ab3cba9 淦
2017-12-05 12:02:07 +08:00

56 lines
1.7 KiB
Java

import org.frice.Game;
import org.frice.anim.move.AccelerateMove;
import org.frice.anim.move.SimpleMove;
import org.frice.obj.SideEffect;
import org.frice.obj.sub.ShapeObject;
import org.frice.resource.graphics.ColorResource;
import org.frice.utils.FileUtils;
import org.frice.utils.shape.FCircle;
import org.frice.utils.shape.FRectangle;
import org.frice.utils.time.FTimer;
import static org.frice.Initializer.launch;
public class Demo7 extends Game {
public static void main(String[] args) {
launch(Demo7.class);
}
private FTimer timer = new FTimer(3000);
private ShapeObject object;
private SideEffect gameOver = () -> {
new Thread(() -> FileUtils.image2File(getScreenCut().getImage(), "截屏.png")).start();
dialogShow("Game Over");
System.exit(0);
};
@Override public void onInit() {
setSize(500, 800);
setTitle("Flappy bird demo by ice1000");
object = new ShapeObject(ColorResource.宝强绿, new FCircle(20), 50, 200) {{
addAnim(AccelerateMove.getGravity());
}};
addObject(object);
addKeyListener(null, e -> {
object.stopAnims();
object.addAnim(AccelerateMove.getGravity());
object.addAnim(new SimpleMove(0, -400));
}, null);
}
@Override public void onRefresh() {
if (object.getY() > getHeight() + 20) gameOver.invoke();
if (timer.ended()) addObject(getObj((int) (Math.random() * 400)));
}
private ShapeObject[] getObj(int height) {
return new ShapeObject[]{new ShapeObject(ColorResource.教主黄, new FRectangle(50, height), 550, 0) {{
addAnim(new SimpleMove(-150, 0));
addCollider(object, gameOver);
}}, new ShapeObject(ColorResource.教主黄, new FRectangle(50, getHeight() - height - 400), 550, height + 400) {{
addAnim(new SimpleMove(-150, 0));
addCollider(object, gameOver);
}}};
}
}