Visualizzazione dei risultati da 1 a 3 su 3

Discussione: problema drag and drop

  1. #1
    Utente di HTML.it L'avatar di izzusan
    Registrato dal
    Apr 2003
    Messaggi
    463

    problema drag and drop

    ciao ragazzi sto creando un giochino x la mia tesi...

    per ora è molto semplice:
    ci sono dei cubi che scendono, io devo trasportarli e metterli in un contenitore. una spece di puzle.

    x ora funge tutto il problema che ho unsato una funzione :

    enemy.moveDownABit();

    dove enemi e il mio cubo ke scende è ha un suo file molto semplice:

    package
    {
    import flash.display.MovieClip;
    public class Enemy extends MovieClip
    {
    public function Enemy( startX:Number, startY:Number )
    {
    x = startX;
    y = startY;
    }


    public function moveDownABit():void
    {
    y = y + 0.1;


    }

    }
    }


    il problema ke quando comincio il drop lui nn si verma continua a scendere... anche quando lo aggangio al mio target continua a scendere.... come posso fare?

    questo è il codice principale:

    package
    {
    import flash.display.MovieClip;
    import flash.utils.Timer;
    import flash.events.TimerEvent;
    import flash.ui.Mouse;
    import flash.events.MouseEvent;
    import flash.display.DisplayObject;
    import flash.display.Sprite;

    public class AvoiderGame extends MovieClip
    {
    public var army:Array;
    public var newEnemy = new Enemy( 100, -15 );
    public var enemy:Enemy;
    public var enemy1:Enemy1;
    public var enemy2:Enemy2;

    public var c1:C1;
    public var c2:C2;
    public var c3:C3;
    public var c4:C4;
    public var c5:C5;
    public var c6:C6;
    public var c7:C7;
    public var c8:C8;
    public var c9:C9;
    public var c10:C10;
    public var c11:C11;
    public var c12:C12;
    public var c13:C13;
    public var c14:C14;
    public var c15:C15;
    public var c16:C16;


    public var startX:Number;
    public var startY:Number;
    public var count:Number =60; // amount of time
    public var myTimer:Timer = new Timer(1000,count);

    public var avatar:Avatar;
    public var gameTimer:Timer;




    public function AvoiderGame()
    {
    army = new Array();

    army.push( newEnemy );
    addChild( newEnemy );


    enemy1 = new Enemy1();
    addChild( enemy1 );

    enemy2 = new Enemy2();
    addChild( enemy2 );


    c1 = new C1();
    addChild( c1 );

    c2 = new C2();
    addChild( c2 );

    c3 = new C3();
    addChild( c3 );

    c4 = new C4();
    addChild( c4 );

    c5 = new C5();
    addChild( c5 );

    c6 = new C6();
    addChild( c6 );

    c7 = new C7();
    addChild( c7 );

    c8 = new C8();
    addChild( c8 );

    c9 = new C9();
    addChild( c9 );

    c10 = new C10();
    addChild( c10 );

    c11 = new C11();
    addChild( c11 );

    c12 = new C12();
    addChild( c12 );

    c13 = new C13();
    addChild( c13 );

    c14 = new C14();
    addChild( c14 );

    c15 = new C15();
    addChild( c15 );

    c16 = new C16();
    addChild( c16 );



    enemy1.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
    enemy1.addEventListener(MouseEvent.MOUSE_UP, dropIt);

    newEnemy.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
    newEnemy.addEventListener(MouseEvent.MOUSE_UP, dropIt);

    enemy2.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
    enemy2.addEventListener(MouseEvent.MOUSE_UP, dropIt);







    avatar = new Avatar();
    addChild( avatar );
    avatar.x = mouseX;
    avatar.y = mouseY;





    gameTimer = new Timer( 0 );
    gameTimer.addEventListener( TimerEvent.TIMER, onTick );
    gameTimer.start();

    newEnemy.buttonMode = true;
    enemy1.buttonMode = true;
    enemy2.buttonMode = true;












    }

    function pickUp(event:MouseEvent):void {
    event.target.startDrag(true);
    //stato.text = "L'hai preso!";
    event.target.parent.addChild(event.target);
    startX = event.target.x;
    startY = event.target.y;
    }


    function dropIt(event:MouseEvent):void {
    //In caso rilascio il clip ROSSO_MC
    event.target.stopDrag();
    //Imposto il mio elemento TARGET


    if (event.target.dropTarget != null && event.target.dropTarget.parent == c1) {
    //stato.text = "Bravo!";
    event.target.removeEventListener(MouseEvent.MOUSE_ DOWN, pickUp);
    event.target.removeEventListener(MouseEvent.MOUSE_ UP, dropIt);

    // Disabilita il clip filmato come fosse un pulsante
    //event.target.buttonMode = false;
    event.target.x = c1.x;
    event.target.y = c1.y;



    }

    else if (event.target.dropTarget != null && event.target.dropTarget.parent == c2) {
    //stato.text = "Bravo!";
    event.target.removeEventListener(MouseEvent.MOUSE_ DOWN, pickUp);
    event.target.removeEventListener(MouseEvent.MOUSE_ UP, dropIt);

    // Disabilita il clip filmato come fosse un pulsante
    //event.target.buttonMode = false;
    event.target.x = c2.x;
    event.target.y = c2.y;
    }

    else if (event.target.dropTarget != null && event.target.dropTarget.parent == c3) {
    //stato.text = "Bravo!";
    event.target.removeEventListener(MouseEvent.MOUSE_ DOWN, pickUp);
    event.target.removeEventListener(MouseEvent.MOUSE_ UP, dropIt);

    // Disabilita il clip filmato come fosse un pulsante
    //event.target.buttonMode = false;
    event.target.x = c3.x;
    event.target.y = c3.y;
    }

    else if (event.target.dropTarget != null && event.target.dropTarget.parent == c4) {
    //stato.text = "Bravo!";
    event.target.removeEventListener(MouseEvent.MOUSE_ DOWN, pickUp);
    event.target.removeEventListener(MouseEvent.MOUSE_ UP, dropIt);

    // Disabilita il clip filmato come fosse un pulsante
    //event.target.buttonMode = false;
    event.target.x = c4.x;
    event.target.y = c4.y;
    }

    else if (event.target.dropTarget != null && event.target.dropTarget.parent == c5) {
    //stato.text = "Bravo!";
    event.target.removeEventListener(MouseEvent.MOUSE_ DOWN, pickUp);
    event.target.removeEventListener(MouseEvent.MOUSE_ UP, dropIt);

    // Disabilita il clip filmato come fosse un pulsante
    //event.target.buttonMode = false;
    event.target.x = c5.x;
    event.target.y = c5.y;
    }

    else if (event.target.dropTarget != null && event.target.dropTarget.parent == c6) {
    //stato.text = "Bravo!";
    event.target.removeEventListener(MouseEvent.MOUSE_ DOWN, pickUp);
    event.target.removeEventListener(MouseEvent.MOUSE_ UP, dropIt);

    // Disabilita il clip filmato come fosse un pulsante
    //event.target.buttonMode = false;
    event.target.x = c6.x;
    event.target.y = c6.y;
    }

    else if (event.target.dropTarget != null && event.target.dropTarget.parent == c7) {
    //stato.text = "Bravo!";
    event.target.removeEventListener(MouseEvent.MOUSE_ DOWN, pickUp);
    event.target.removeEventListener(MouseEvent.MOUSE_ UP, dropIt);

    // Disabilita il clip filmato come fosse un pulsante
    //event.target.buttonMode = false;
    event.target.x = c7.x;
    event.target.y = c7.y;
    }

    else if (event.target.dropTarget != null && event.target.dropTarget.parent == c8) {
    //stato.text = "Bravo!";
    event.target.removeEventListener(MouseEvent.MOUSE_ DOWN, pickUp);
    event.target.removeEventListener(MouseEvent.MOUSE_ UP, dropIt);

    // Disabilita il clip filmato come fosse un pulsante
    //event.target.buttonMode = false;
    event.target.x = c8.x;
    event.target.y = c8.y;
    }

    else if (event.target.dropTarget != null && event.target.dropTarget.parent == c9) {
    //stato.text = "Bravo!";
    event.target.removeEventListener(MouseEvent.MOUSE_ DOWN, pickUp);
    event.target.removeEventListener(MouseEvent.MOUSE_ UP, dropIt);

    // Disabilita il clip filmato come fosse un pulsante
    //event.target.buttonMode = false;
    event.target.x = c9.x;
    event.target.y = c9.y;
    }

    else if (event.target.dropTarget != null && event.target.dropTarget.parent == c10) {
    //stato.text = "Bravo!";
    event.target.removeEventListener(MouseEvent.MOUSE_ DOWN, pickUp);
    event.target.removeEventListener(MouseEvent.MOUSE_ UP, dropIt);

    // Disabilita il clip filmato come fosse un pulsante
    //event.target.buttonMode = false;
    event.target.x = c10.x;
    event.target.y = c10.y;
    }

    else if (event.target.dropTarget != null && event.target.dropTarget.parent == c11) {
    //stato.text = "Bravo!";
    event.target.removeEventListener(MouseEvent.MOUSE_ DOWN, pickUp);
    event.target.removeEventListener(MouseEvent.MOUSE_ UP, dropIt);

    // Disabilita il clip filmato come fosse un pulsante
    //event.target.buttonMode = false;
    event.target.x = c11.x;
    event.target.y = c11.y;
    }

    else if (event.target.dropTarget != null && event.target.dropTarget.parent == c12) {
    //stato.text = "Bravo!";
    event.target.removeEventListener(MouseEvent.MOUSE_ DOWN, pickUp);
    event.target.removeEventListener(MouseEvent.MOUSE_ UP, dropIt);

    // Disabilita il clip filmato come fosse un pulsante
    //event.target.buttonMode = false;
    event.target.x = c12.x;
    event.target.y = c12.y;
    }

    else if (event.target.dropTarget != null && event.target.dropTarget.parent == c13) {
    //stato.text = "Bravo!";
    event.target.removeEventListener(MouseEvent.MOUSE_ DOWN, pickUp);
    event.target.removeEventListener(MouseEvent.MOUSE_ UP, dropIt);

    // Disabilita il clip filmato come fosse un pulsante
    //event.target.buttonMode = false;
    event.target.x = c13.x;
    event.target.y = c13.y;
    }

    else if (event.target.dropTarget != null && event.target.dropTarget.parent == c14) {
    //stato.text = "Bravo!";
    event.target.removeEventListener(MouseEvent.MOUSE_ DOWN, pickUp);
    event.target.removeEventListener(MouseEvent.MOUSE_ UP, dropIt);

    // Disabilita il clip filmato come fosse un pulsante
    //event.target.buttonMode = false;
    event.target.x = c14.x;
    event.target.y = c14.y;
    }

    else if (event.target.dropTarget != null && event.target.dropTarget.parent == c15) {
    //stato.text = "Bravo!";
    event.target.removeEventListener(MouseEvent.MOUSE_ DOWN, pickUp);
    event.target.removeEventListener(MouseEvent.MOUSE_ UP, dropIt);

    // Disabilita il clip filmato come fosse un pulsante
    //event.target.buttonMode = false;
    event.target.x = c15.x;
    event.target.y = c15.y;
    }

    else if (event.target.dropTarget != null && event.target.dropTarget.parent == c16) {
    //stato.text = "Bravo!";
    event.target.removeEventListener(MouseEvent.MOUSE_ DOWN, pickUp);
    event.target.removeEventListener(MouseEvent.MOUSE_ UP, dropIt);

    // Disabilita il clip filmato come fosse un pulsante
    //event.target.buttonMode = false;
    event.target.x = c16.x;
    event.target.y = c16.y;
    }

    else {
    //se vuoi farlo tornare alle coordinate iniziali utilizza il seguente codice
    event.target.x = startX;
    event.target.y = startY;
    }





    }


    public function onTick( timerEvent:TimerEvent):void
    {


    if ( Math.random() < 0.001 )
    {
    var randomX:Number = Math.random() * 10;
    var newEnemy:Enemy = new Enemy( randomX, -15 );
    army.push( newEnemy );
    addChild( newEnemy );
    newEnemy.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
    newEnemy.addEventListener(MouseEvent.MOUSE_UP, dropIt);
    newEnemy.buttonMode = true;
    }
    avatar.x = mouseX;
    avatar.y = mouseY;

    for each ( var enemy:Enemy in army )
    {

    enemy.moveDownABit();

    if ( avatar.hitTestObject( enemy ) )
    {
    gameTimer.stop();
    }
    }




    }


    }
    }


    vi prego aiuto sto impazzendo!

  2. #2
    Puoi aggiungere una Proprietà alla Classe Enemy.

    esempio:
    Codice PHP:
    public var canMove:Boolean true
    La imposti su False quando lo "acchiappi":
    Codice PHP:
    function pickUp(event:MouseEvent):void {
        
    event.target.canMove false;
        .....
        .....
        ..... 
    La imposti su True quando lo "rilasci":
    Codice PHP:
    function dropIt(event:MouseEvent):void {
        
    event.target.canMove true;
        .....
        .....
        ..... 
    E la valuti al movimento:
    Codice PHP:
    public function moveDownABit():void {
        if (
    this.canMove == true) {
            
    0.1;
        }


  3. #3
    Utente di HTML.it L'avatar di izzusan
    Registrato dal
    Apr 2003
    Messaggi
    463
    grazie mille funziona alla grande!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.