Flash Zone Forum > èãðà "Ïðûæêè íà áàòóòå"
Ïîìîùü · Ïîèñê · Ïîëüçîâàòåëè · Êàëåíäàðü
Ïîëíàÿ âåðñèÿ ýòîé ñòðàíèöû: èãðà "Ïðûæêè íà áàòóòå"
Flash Zone Forum > Macromedia Flash > Îáùèå âîïðîñû
HaWK
Õî÷ó ñäåëàòü èãðó "Ïðûæêè íà áàòóòå"
Íó âîîáùåì äâà ìóâèêëèïà:
1. ×óâàê êîòîðûé ïðûãàåò.
2. Ñàì Áàòóò.

Êàê ñ ïîìîùüþ HitTest ðàñùèòàòü îòñêîêè, ãðàâèòàöèþ è ò. ä.

P.S. Íå óìåþ ââîäèòü ïàðàìåòðû.... Íà ñêîëüêî ìíå èçâåñòíî íàäî ÷åðåç _global....
Íî êàê? Ìîæíî ïî êîíêðåòíåé...
Çàðàíåå ñïàñèáî
HaWK
׸ íèêòî íå çíàåò êàê ýòî ñäåëàòü?
Ìíå ïðîñòî íóæíî ïîìî÷ü ñ HitTest...

P.S. MustLive, õîòÿ áû òû ïîìîãè....
/2D/
Öèòàòà
Ìíå ïðîñòî íóæíî ïîìî÷ü ñ HitTest...

ïðîâåðêà hitTest ïðîõîäèò ñëåäóþùèì îáðàçîì:

if(êëèï1.hitTest(êëèï2)){
äåéñòâèå
}

êëèï1,2- ìóâèêëèïû, êîòîðûå ïðîâåðÿþòñÿ íà "ïåðåñå÷åíèå"/ñîâïàäåíèå
/2D/
Ñòàâèì íà êàäð è ðàäóåìñÿ smile.gif , íåáîëüøîé ãëþê ñ çàòóõàíèåì
Êîä
var V:Number = 0;//ñêîðîñòü
var g:Number = 1;//óñêîðåíèå
this.createEmptyMovieClip("jumper",0);
jumper._x = 200;
jumper.lineStyle(1,0x000000);
jumper.moveTo(0,0);
jumper.lineTo(0,10);
jumper.lineTo(10,10);
jumper.lineTo(10,0);
jumper.lineTo(0,0);
this.createEmptyMovieClip("trampoline",1);
trampoline._x = 200;
trampoline._y = 300;
trampoline.lineStyle(1,0x000000);
trampoline.moveTo(0,0);
trampoline.lineTo(0,50);
trampoline.lineTo(50,50);
trampoline.lineTo(50,0);
trampoline.lineTo(0,0);
this.onEnterFrame = function() {
    jumper._y += V;
    V += g;
    if (jumper.hitTest(trampoline)) {
        V = -V+2*g;
        if (V>0) {
            V = 0;
        }
    }
};
MustLive
Öèòàòà
׸ íèêòî íå çíàåò êàê ýòî ñäåëàòü?

Åñòåñòâåííî åñòü ëþäè êîòîðûå çíàþò, ïðîñòî îíè ðàíåå íå äîáðàëèñü äî ýòîé òåìû. Âîò /2D/ óæå êàê ðàç îòâåòèë.

Öèòàòà
Ìíå ïðîñòî íóæíî ïîìî÷ü ñ HitTest...

Äàííàÿ òåìà óæå íå ðàç îáñóæäàëàñü íà ôîðóìå. Ê òîìó æå â õåëïå ìîæíî ïðî÷åñòü îá èñïîëüçîâàíèè HitTest. Ïîñìîòðè ïðèìåð /2D/.

Öèòàòà
MustLive, õîòÿ áû òû ïîìîãè....

Ïîìîãó êàê òîëüêî äîáåðóñü äî òâîåé òåìû. À ó ìåíÿ ñ êàæäîé íîâîé òåìîé íà ôîðóìå äîáàâëÿåòñÿ íîâàÿ çàïèñü â ñïèñîê òåì íà êîòîðûå íóæíî îòâåòèòü (è êîòîðûé ðàñò¸ò èç ãîäà â ãîä), è ññûëêà íà òâîþ òåìó îïóñêàåòñÿ âñå íèæå. Òàê ÷òî íóæíî ëèøü äîæäàòüñÿ.

P.S.

Âîò âàì ðåáÿòà íîâàÿ âåðñèÿ êîäà. Ñ äîáàâëåííûì óïðàâëåíèåì ïðûãóíîì (ñòðåëêàìè âëåâî è âïðàâî). Ñòàâüòå â êàäð è ðàäóéòåñü åù¸ áîëüøå wink.gif.

CODE
var V:Number = 0; //ñêîðîñòü
var g:Number = 1; //óñêîðåíèå
this.createEmptyMovieClip("jumper",0);
jumper._x = 200;
jumper.lineStyle(1,0x000000);
jumper.moveTo(0,0);
jumper.lineTo(0,10);
jumper.lineTo(10,10);
jumper.lineTo(10,0);
jumper.lineTo(0,0);
this.createEmptyMovieClip("trampoline",1);
trampoline._x = 200;
trampoline._y = 300;
trampoline.lineStyle(1,0x000000);
trampoline.moveTo(0,0);
trampoline.lineTo(0,50);
trampoline.lineTo(50,50);
trampoline.lineTo(50,0);
trampoline.lineTo(0,0);
this.onEnterFrame = function() {
jumper._y += V;
V += g;
if (jumper.hitTest(trampoline)) {
V = -V+2*g;
if (V>0) {
V = 0;
}
}
};
var KbListener:Object = new Object();
KbListener.onKeyDown = function() {
switch (Key.getCode()) {
case 37:
jumper._x -= 2;
break;
case 39:
jumper._x += 2;
break;
}
}
Key.addListener(KbListener);
HaWK
/2D/, MustLive ñïàñèáî çà îòâåòû.
Öèòàòà
Ïîìîãó êàê òîëüêî äîáåðóñü äî òâîåé òåìû. À ó ìåíÿ ñ êàæäîé íîâîé òåìîé íà ôîðóìå äîáàâëÿåòñÿ íîâàÿ çàïèñü â ñïèñîê òåì íà êîòîðûå íóæíî îòâåòèòü (è êîòîðûé ðàñò¸ò èç ãîäà â ãîä), è ññûëêà íà òâîþ òåìó îïóñêàåòñÿ âñå íèæå. Òàê ÷òî íóæíî ëèøü äîæäàòüñÿ.

ëàäíà. Áóäó çíàòü. laugh.gif
HaWK
Ìíå íóæíî åù¸ èì óïðàâëÿòü:
- Âåðòåòü åãî (ïî ÷àñîâîé, ïðîòèâ ÷àñîâîé)
- ×òîá ìîæíî áûëî âçëåòåòü âûøå (êíîïêà ïðûæêà)
- Ìåíÿòü ïîçû
À òàêæå:
- Îòîáðàæàòü î÷êè çà ðàçíûå òðþêè
- È ÷òîáû îí áûë â âîçäóõå áåñêîíå÷íî (ò. å. çàìêíóòûé êðóã - ïðûãàåò è ïðèçåìëÿåòñÿ) ïðîñòî â âàøåì ïðèìåðå îí ïî òèõîíå÷êó âñ¸ ìåíüøå è ìåíüøå îòòàëêèâàåòñÿ, à ïîòîì è âîîáùå ïðîñòî ñòîèò íà áàòóòå)

Ïîæàëóéñòà ïîìîãèòå! sad.gif ß ñ ôèçèêîé âî ôëýøå íå î÷åíü! dry.gif ß áóäó î÷åíü áëàãîäàðåí. sad.gif

P.S. ß ïîäîæäó biggrin.gif
/2D/
Öèòàòà
ß ñ ôèçèêîé âî ôëýøå íå î÷åíü! dry.gif

HaWK, ôèçèêó âî ôëýøå íóæíî ïðèäóìûâàòü ñàìîìó, åñëè ëåíü ÷òî-òî ïðèäóìûâàòü, ìîæíî èñïîëüçîâàòü èçâåñòíûå íàóêå ôèçè÷åñêèå ôîðìóëû,÷òîáû ïîëó÷èëîñü âñ¸ áîëåå ðåàëåñòè÷íî, íî äëÿ ìåíÿ ëåã÷å ïðèäóìàòü ÷òî-òî ñàìîìó ÷åì íàñèæèâàòü ãåìîðîé è âñïîìèíàòü "øêîëüíóþ ôèçèêó". wink.gif
Âîáùåì âîò òåáå êîä , òóò íà êëàâèøè "ââåðõ"/"âíèç" ìîæíî ïîâîðà÷èâàòü ïðûãàþùèé îáúåêò, à åñëè íàæèìàòü "ïðîáåë" â ìîìåíò ñîïðèêîñíîâåíèÿ ñ áàòóòîì îáúåêò áóäåò "ðàñïðûãèâàòüñÿ".
Êîä
var V:Number = 0;//ñêîðîñòü âåðòèêàëüíàÿ
var Vd:Number = 0;//ñêîðîñòü ãîðèçîíòàëüíàÿ
var g:Number = 1;//óñêîðåíèå
var W:Number = Stage.width;
var H:Number = Stage.height;
this.createEmptyMovieClip("jumper",0);
jumper._x = W/2;
jumper.lineStyle(1,0x000000);
jumper.moveTo(0,0);
jumper.lineTo(0,10);
jumper.lineTo(10,10);
jumper.lineTo(10,0);
jumper.lineTo(0,0);
this.createEmptyMovieClip("trampoline",1);
trampoline.lineStyle(1,0x000000);
trampoline.moveTo(0,0);
trampoline.lineTo(0,50);
trampoline.lineTo(W,50);
trampoline.lineTo(W,0);
trampoline.lineTo(0,0);
trampoline._y = H-trampoline._height;
this.onEnterFrame = function() {
    if (jumper._y>H) {
        jumper._x = W/2;
        jumper._y = 0;
        jumper._rotation = 0;
        V = 0;
        Vd = 0;
    }
    jumper._y += V;
    jumper._x += Vd;
    if (jumper.hitTest(trampoline)) {
        if (Key.isDown(Key.SPACE)) {
            V += g;
        } else {
            if (V>15*g) {
                V -= g;
            }
        }
        Vd = V*Math.sin(jumper._rotation*Math.PI/360);
        V = -V;
        jumper._y = trampoline._y-jumper._height;
    } else {
        V += g;
    }
};
var KbListener:Object = new Object();
KbListener.onKeyDown = function() {
    switch (Key.getCode()) {
        case 37 :
            jumper._x -= 2;
            break;
        case 39 :
            jumper._x += 2;
            break;
        case 40 :
            if (jumper._rotation>-50) {
                jumper._rotation -= 10;
            }
            break;
        case 38 :
            if (jumper._rotation<50) {
                jumper._rotation += 10;
            }
            break;
    }
};
Key.addListener(KbListener);
HaWK
ÁÎËÜØÎÅ ÑÏÀÑÈÁÎ
ÂÛÐÓ×ÈË! laugh.gif laugh.gif laugh.gif
/2D/
ïîæàëóéñòà)
HaWK
Óïññ..... îïÿòü ïðîáëåìà...
getBounds biggrin.gif
Êàê ñäåëàòü òàê ÷òîáû îí óäàðÿëñÿ îá ñòåíû. Íàïðèìåð ×òîá îí íå âûëåòàë çà ïðåäåëû ñöåíû, à îòñêàêèâàë.

P.S. Îí â òâî¸ì ïðèìåðå òàê è íàðîâèò âåëåòèòü êóäà ïîäàëüøå. ×óòü - ÷óòü íå ïîä ïðàâèëüíûì óãëîì ïðèçåìëèøüñÿ âñ¸.. îí "óëåòåë"....
HaWK
À êàê íà ñ÷¸ò ýòîãî:
- Ìåíÿòü ïîçû
- Îòîáðàæàòü î÷êè çà ðàçíûå òðþêè biggrin.gif
/2D/
Öèòàòà
À êàê íà ñ÷¸ò ýòîãî:
- Ìåíÿòü ïîçû
- Îòîáðàæàòü î÷êè çà ðàçíûå òðþêè

íó õîòü ÷òî-òî òû äîëæåí ñàì ñäåëàòü wink.gif
HaWK
íå ñ ïîçàìè è î÷êàìè ÿ ñîîáðàçèë óæå. Ïðîñòî îáúÿñíè êàê ðàáîòàåò getBounds. ÏÆËÑÒ! biggrin.gif biggrin.gif
/2D/
Öèòàòà
Ïðîñòî îáúÿñíè êàê ðàáîòàåò getBounds.

âîò: http://www.realcoding.net/teach/ActionScri..._max_mov12.html
Ïðîùå ãîâîðÿ îíî âûäà¸ò ïåðåìåííóþ òèïà object, â êîòîðîé íàõîäÿòñÿ ìàêñèìàëüíûå è ìèíèìàëüíûå çíà÷åíèÿ õ è ó êëèïà îòíîñèòåëüíî ñöåíû èëè äðóãîãî êëèïà. Ñàì ÿ ýòèì ìåòîäîì íå ïîëüçóþñü, è çà÷åì åñëè åñòü ñâ-âà _width,_height,_x,_y.
Âîò ïðèìåðíî òàê îíî âûãëÿäèò: movieclip1.getBounds(movieclip2)
movieclip1- êëèï, ÷üè õàðàêòåðèñòèêè íóæíî óçíàòü
movieclip2 - êëèï, îòíîñèòåëüíî ÷åãî áóäóò óçíàâàòüñÿ õàðàêòåðèñòèêè
Ïîïðàâüòå ìåíÿ åñëè ÿ íå ïðàâ, ïðîñòî ýòèì ìåòîäîì íå ðàçó íå ïîëüçîâàëñÿ, íî âðîäå îí ðàáîòàåò òàê êàê ÿ íàïèñàë âûøå.
Âîò ïðèìåð ìîåãî êîäà:
Êîä
var _OBJ:Object=mc.getBounds(_root)
trace([_OBJ["yMax"],_OBJ["yMin"],_OBJ["xMax"],_OBJ["xMin"]])
Ðóññêàÿ âåðñèÿ IP.Board © 2001-2009 IPS, Inc.