Добавление движущихся объектов нажатием кнопки в as3 - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть программа, которая создает питомца и источник пищи при разных нажатиях кнопок. как только они оба создают, уровень желудка животного начинает уменьшаться, и он начинает есть пищу, уменьшая его уровень. Как только нет еды, и его живот достигает нуля, он убегает с экрана. Это все работает. Моя проблема в том, что я не могу добавить несколько домашних животных. когда я делаю старые, просто замираю. Я не знаю, почему это так. Я показал код, в котором, как мне кажется, проблема находится, но если вы не видите больше проблем, я с удовольствием поделюсь большим количеством кода или поделится ссылкой GitHub, чтобы вы могли просмотреть весь код, чтобы помочь.

        public function feralPet() {
        food = new Food();
        food.x = food.mX;
        food.y = food.mY;
        addChild(food);
        fbtn = new Fbtn();
        fbtn.x = fbtn.mX;
        fbtn.y = fbtn.mY;
        addChild(fbtn);
        fbtn.addEventListener(MouseEvent.CLICK, addFood);
        pbtn = new Pbtn();
        pbtn.x = pbtn.mX;
        pbtn.y = pbtn.mY;
        addChild(pbtn);
        petList = new Array;
        pbtn.addEventListener(MouseEvent.CLICK, addPet);
        toy = new Toy();
        toy.x = toy.mX;
        toy.y = toy.mY;
        addChild(toy);

    }
    public function addFood(event: MouseEvent):void{
        removeChild(food);
        food = new Food();
        food.x = food.mX;
        food.y = food.mY;
        addChild(food);
        addEventListener(Event.ENTER_FRAME, updateGame);
    }
    public function addPet(event: MouseEvent):void{
        //creates array of pets
        nPet = 0;
        //create individual pet
        pet = new Pet();
        pet.x = pet.mX;
        pet.y = pet.mY;
        //add pet
        addChild(pet);
        //number of pet counter
        nPet++
        //add pet to array of pets
        petList.push(pet);

    }
    public function updateGame(event: Event) {
        //for now assume food is at (400,400) and toy is at (-1,-1)
        //PET
        trace(petList);
        for(var i: int = 0; i <= nPet-1; i++){
            //petList[i].action() creates movement betwwen toy and food aswell as 
                //controls stomach level when playing vs eatting
        petList[i].action(food.x, food.y, toy.x, toy.y, food.height);
            //move pet
        petList[i].x = petList[i].mX;
        petList[i].y = petList[i].mY;
        petList[i].rotation = petList[i].degree;

        //FOOD
        food.size(pet.x, petList[i].y, food.height);
        }
            //shrink food
        food.height -= food.dec;
        food.width -= food.dec;

    }
}

}

...