Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Вопрос по игре! (http://www.flasher.ru/forum/showthread.php?t=79397)

CBET 07.05.2006 12:09

Вопрос по игре!
 
Создал я игру где человек ловит сверху падаюшие яблоки
ставлю кол-во яблок 20 но когда все яблоки падают у меня не переходит
к кадру "game over"!:victory:
Подскажите пожалуйста в чем моя ошибка?
Ниже представлен код игры Все 3 функции работают но 4 removeApple(n)
не работает .Создав клип на рабочем столе я да ему код , чтобы каждый
раз не использовать _root!
Код осеовного кадра:
stop();
function initGame(){
firstApple = 1;
lastApple = 0;
score = 0;
totalApples = 20;
timeSinceLastApple = 0;
appleSpeed = 5;
attachMovie("running fox","fox",999999);
fox._x = 275;
fox._y = 300;
}
function moveFox(){
if(Key.isDown(Key.RIGHT)){
dx = 10;
fox._xscale = -Math.abs(fox._xscale);
}else if(Key.isDown(Key.LEFT)){
dx = -10;
fox._xscale = Math.abs(fox._xscale);
}else{
dx = 0;
}
fox._x += dx;
if(fox._x <30) fox._x = 30;
if(fox._x > 520) fox._x = 520;
if((dx != 0) and (fox._currentFrame == 1)){
fox.gotoAndPlay("run");
}else if ((dx == 0) and (fox._currentFrame !=1)){
fox.gotoAndPlay("stand");
}
}
function dropNewApple(){
if(timeSinceLastApple > 20){
if(lastApple < totalApples){
if(Math.random()< .1){
lastApple++;
attachMovie("apple","apple"+lastApple,lastApple);
_root["apple"+lastApple]._x = Math.random()*490+30;
_root["apple"+lastApple]._y = 0;
timeSinceLastApple = 0;
if(appleSpeed < 10) appleSpeed +=.5;
}
}
}
timeSinceLastApple++;
}
function moveApples(){
for(i=firstApple;i<lastApple;i++){
x = _root["apple"+i]._x;
y = _root["apple"+i]._y + appleSpeed;
if(y>400){
removeApple(i);
}else if ((Math.abs(y-fox._y)<50) and (Math.abs(x-fox._x)<100)){
removeApple(i);
score += 1;
}else{
_root["apple"+i]._y = y;
}
}
}
function removeApple(n){
_root["apple"+n].removeMovieClip();
firstApple = n + 1;
if(n == totalApples){
fox.removeMovieClip();
gotoAndPlay("game over");
}
}

Код клипа :onClipEvent(load){
_root.initGame();
}
onClipEvent(enterFrame){
_root.moveFox();
_root.dropNewApple();
_root.moveApples();
}

CBET 07.05.2006 14:41

Помогите создать функцию которая переходит в кадр Game Over
в случае если totalApples = 20

xcho_ 07.05.2006 14:46

в _root.onEnterFrame поставь проверку :
if(totalApples ==20) gotoAndStop("gameOver");

или в свой onClipEvent(enterFrame) ... поставь эту проверку...типа:
Код:

onClipEvent(enterFrame){
....
....
if(totalApples ==20) _root.gotoAndStop("gameOver");
}

п.с. скрипт надо заключать в теги [code] !...

CBET 07.05.2006 14:57

[code]onClipEvent(load){
_root.initGame();
if(totalApples == 20){
_root.gotoAndPlay("game over");
}
}
onClipEvent(enterFrame){
_root.moveFox();
_root.dropNewApple();
_root.moveApples();
}
[code]
я дал ему такой код но он доходит до 18 и останавливается Score = 18
и все дальше не идет!

CBET 07.05.2006 14:58

[onClipEvent(load){
_root.initGame();
if(totalApples == 20){
_root.gotoAndPlay("game over");
}
}
onClipEvent(enterFrame){
_root.moveFox();
_root.dropNewApple();
_root.moveApples();
}
]
такой скипт дал клипу

CBET 07.05.2006 15:40

Нужен код который считает сколько totalApple при значении 20
он отправляет в кадр Game Over!

CBET 07.05.2006 20:11

все получилось!


Часовой пояс GMT +4, время: 17:00.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.