123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- class RebusOptionCard extends Object2D
- {
- thumb = null;
- imgName = "";
- isAnswer = false;
- selected = false;
- selectable = true;
- fillColor = new Color(200, 200, 200);
- mouseOver = false;
- mousePress = false;
- _initSignals()
- {
- this.addSignal("selected");
- }
- _setup()
- {
- var sprite = new Sprite2D("sprite", this.thumb);
- sprite.width = 250;
- sprite.height = 250;
- sprite.setPosition(0, -75);
- this.addChild(sprite);
- var area = new Area2D("area", SHAPES.RECT, new Rect(300, 400), true);
- area.connect("mouseEntered", this, "_onMouseEntered");
- area.connect("mouseExited", this, "_onMouseExited");
- this.addChild(area);
- this.addChild(new RebusCardVisualEffect("CardVfx"));
- }
- _update(delta)
- {
- if (this.selectable && this.mouseOver)
- {
- if (InputHandler.mouseIsClicked)
- {
- this.selected = true;
- this.selectable = false;
- this.emitSignal("selected", this.isAnswer);
- }
- if (InputHandler.mouseIsPressed)
- {
- this.scale.x = max(this.scale.x - 3.0 * delta, 0.95);
- this.scale.y = max(this.scale.y - 3.0 * delta, 0.95);
- }
- else
- {
- this.scale.x = min(this.scale.x + 2.0 * delta, 1.1);
- this.scale.y = min(this.scale.y + 2.0 * delta, 1.1);
- }
- }
- else
- {
- this.scale.x = max(this.scale.x - 2.0 * delta, 1);
- this.scale.y = max(this.scale.y - 2.0 * delta, 1);
- }
- }
- _draw(delta, db)
- {
- db.rectMode(CENTER);
- db.fill(this.fillColor.getP5Color());
- db.rect(0, 0, 300, 400, 10, 10);
- db.textAlign(CENTER, CENTER);
- db.fill(0);
- db.textSize(40);
- db.text(this.imgName, 0, 100);
- if (this.selected && !this.isAnswer)
- {
- db.fill(0, 80);
- db.rect(0, 0, 300, 400, 10, 10);
- }
- }
- _onMouseEntered()
- {
- this.mouseOver = true;
- }
- _onMouseExited()
- {
- this.mouseOver = false;
- }
- }
|