Flashgratt ou grattflash

Description

J'ai trouvé l'autre jour une source permettant le scratch via flash, ne trouvant que très peu d'intérêt à ne découvrir qu'une image, j'ai amélioré le code afin que cela donne ce que vous pourrez voir.

Je suis en train de l'adapter via php et cgi afin de contrôler le jeu et par la même le joueur.

A vous si vous souhaitez me donnez des renseignements complémentaires, ne vous gênez pas.

Code de l'animation pour le bouton, actuellement il n'y a qu'une validation qui vous permet de rejouer...

Source / Exemple :


MovieClip.prototype.startScratch = function(width) {
    var s = this.createEmptyMovieClip(this.i, ++this.i);
    s.w = width/2;
    s.xLast = s._xmouse;
    s.yLast = s._ymouse;
    s.xPen = s.xLast;
    s.yPen = s.yLast;
    s.xPen2 = s.xPen;
    s.yPen2 = s.yPen;
    s.onMouseMove = doScratch;
};
function doScratch() {
    if (Mouse.isDown()) {
        var xCurr = this._xmouse;
        var yCurr = this._ymouse;
        var dxCurr = xCurr-this.xLast;
        var dyCurr = yCurr-this.yLast;
        this.xLast = xCurr;
        this.yLast = yCurr;
        var theta = -Math.atan2(dyCurr, dxCurr);
        var p1x = xCurr+this.w*Math.sin(theta);
        var p1y = yCurr+this.w*Math.cos(theta);
        var p2x = 2*xCurr-p1x;
        var p2y = 2*yCurr-p1y;
        this.beginFill(0);
        this.moveTo(this.xPen2, this.yPen2);
        this.lineTo(this.xPen, this.yPen);
        this.lineTo(p1x, p1y);
        this.lineTo(p2x, p2y);
        this.endFill();
        this.xPen = p1x;
        this.yPen = p1y;
        this.xPen2 = p2x;
        this.yPen2 = p2y;
    } else {
        this.endScratch();
    }
}
MovieClip.prototype.endScratch = function() {
    for (var p in this) {
        if (typeof (this[p]) != "movieclip") {
            delete (this[p]);
        }
    }
};
wax = this.createEmptyMovieClip("wax_mc", 1);
wax.onMouseDown = function() {
    this.startScratch(6);
};
wax.onMouseUp = function() {
    this[this.i].endScratch();
};
startAgain = function () { for (var scratch in wax) {if (typeof (wax[scratch]) == "movieclip") {wax[scratch].removeMovieClip();}}wax.i = 0;chooseRandomSymbols();};
chooseRandomSymbols = function () { for (var mc in symbols) {symbols[mc].gotoAndStop(Math.ceil(math.random()*symbols[mc]._totalframes));}};
symbols.setMask(wax);
chooseRandomSymbols();
Mouse.isDown = function() {
    return Key.isDown(1);
};
Mouse.autoListen = {};
Mouse.autoListen.onMouseDown = function() {
    if (Key.isDown(1)) {
        Mouse.removeListener(Mouse.autoListen);
        delete Mouse.autoListen;
    } else {
        Mouse.isDown = function() {
            return this.autoListen.mouseIsDown;
        };
        this.onMouseDown = function() {
            this.mouseIsDown = true;
        };
        this.onMouseUp = function() {
            this.mouseIsDown = false;
        };
        this.onMouseDown();
    }
};
Mouse.addListener(Mouse.autoListen);

Conclusion :


Pas de commentaires supplémentaires sinon que vous pouvez bien sur l'adapter à votre style...

Codes Sources

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.