![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2010
Сообщений: 187
|
Разбираюсь потихоньку с классами на примере игры арканоид.
Добрался вот до чего. Когда шарик ударяет в кирпичик - из него вываливается бонус. В классе шарика (Ball.as) у меня один из элементов столкновения выглядит так: if (Game.bricks.getChildAt(i) is Brick1_mc) { var br:Brick1_mc = Game.bricks.getChildAt(i) as Brick1_mc; if (br.up.hitTestPoint(ball.x, ball.y, true)) { createBonus(); Game.bricks.removeChild(br); speedY = - speedY; } Тоесть здесь я, насколько я понял, подключаю класс Bonus. Интерес был как раз в том, чтобы вынести всё, касающееся этого Бонуса в отдельный класс. Класс Бонус у меня выглядит так: public class Bonus extends Sprite { private var bonus:MovieClip; public function Bonus() { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); createBonus(); } // создаём bonus private function createBonus():void { bonus = new Bonus_mc(); addChild(bonus); bonus.x = br.x; bonus.y = br.y; } Как мне правильно указать в этом классе что такое br, чтобы он не ругался? |
|
|||||
|
.
|
Очевидно,
class Ball и избавляемся от class Bonus |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 187
|
Это да. Это можно так сделать. Но я хотел бы вынести в отдельный класс всё, что качается Бонусов (появление, движение, соприкосновение с ракеткой)
Поэтому я и хотел бы узнать - как именно из класса Bonus.as увидеть что-то, что происходит в другом классе. |
|
|||||
|
.
|
Передайте этот класс в класс Bonus
|
|
|||||
|
Регистрация: Jan 2010
Сообщений: 187
|
Получилось ещё сделать вот как.
В классе Ball: if (br.up.hitTestPoint(ball.x, ball.y, true)) { createBonus(br); Game.bricks.removeChild(br); speedY = - speedY; } .... private function createBonus(br:MovieClip):void { _bonus = new Bonus(br); _bonus.setPlatform(p); addChild (_bonus); } |
![]() |
![]() |
Часовой пояс GMT +4, время: 11:58. |
|
|
« Предыдущая тема | Следующая тема » |
|
|