Форум 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=159398)

yo3o 30.06.2011 15:41

Реализация стрельбы без остановки!
 
Реализация стрельбы без остановки! (помогите!)

не-могу придумать как реализовать стрельбу без остановки при удержании левой кнопки мышки!
а именно как отлавливать события что мышь зажата?

petyar 30.06.2011 17:18

Код AS1/AS2:

onEnterFrame = function() {
        if (Key.isDown(1)) {
                // ПЫЩ ПЫЩ ПЫЩ
        }
}


yo3o 30.06.2011 17:34

можете помочь ?

у меня тут проблема с кодом а именно в коде ниже есть __reg4.onEnterFrame и оно создает новую пулю каждые там onEnterFrame но меня это не устраивает как можно заменить на setInterval ??? можете помочь?

Код AS1/AS2:

bulletSpeed = 150;
lev = 9;
placeBullet = function (tgt)
{
  ++lev;
  var __reg5 = {x: tgt._x, y: tgt._y};
  tgt._parent.localToGlobal(__reg5);
  globalToLocal(__reg5);
  var __reg4 = bullet.duplicateMovieClip("b" + lev, lev);
  __reg4._x = __reg5.x;
  __reg4._y = __reg5.y;
  __reg4._rotation = hero._rotation + hero.body._rotation;
  __reg4.a = __reg4._rotation / 180 * 3.14159265359;
 
  __reg4.onEnterFrame = function ()
  {
    this._x = this._x + bulletSpeed * Math.cos(this.a);
      this._y = this._y + bulletSpeed * Math.sin(this.a);
 
      if (this._x < ground._x - this._width || this._x > ground._x + ground._width + this._width || this._y < ground._y - this._height || this._y > ground._y + ground._height + this._height)
      {
          this.removeMovieClip();
      }
      var __reg3 = zombies.length;
      for (;;)
      {
          if (!(__reg3--))
          {
              return;
          }
          var __reg2 = zombies[__reg3];
          if (__reg2.hit.hitTest(this))
          {
              this.removeMovieClip();
              __reg2.gotoAndStop(2);
 
  var add_exp = new LoadVars ();
  add_exp.exp = 0;
  add_exp.sendAndLoad ("http://test1.ru/script/We_accept_new_data_for_server.php?name="+_root.vname+"&password="+_root.vpass+"&newexp=5", add_exp, "POST");
          }
      }
  };
};


dark256 30.06.2011 17:37

onMousedDown - пуляяяяем
onMouseUp - перезаряжаем и остужаем ствол...


код смахивает на декомпил....

Добавлено через 4 минуты
Код AS1/AS2:

   __reg4.onEnterFrame = function ()
  {
      for (;;)
      {
          if (__reg2.hit.hitTest(this))
          {
                          add_exp.sendAndLoad ("http://test1.ru/script/We_accept_new_data_for_server.php?name="+_root.vname+"&password="+_root.vpass+"&newexp=5", add_exp, "POST");
          }
      }
  }

sendAndLoad - ни сервак, ни канал не потянет столько запросов.
Допустим у вас 100 попаданий... ха...

yo3o 30.06.2011 17:44

это я знаю)))
можете помочь?

dark256 30.06.2011 17:52

С чем? С архитектурой?

yo3o 30.06.2011 17:57

помогите с кодом который я выложил выше! просто скорость создания новых пуль зависит от FPS
а мне нужно чтоб например от setInterval
поможете?

dark256 30.06.2011 20:18

Код AS1/AS2:

var FIRING = setInterval(this, "fireFunction", 1);
 
function fireFunction()
{
    //то, что у вас в ОЕФ
}

Только один фиг ерунда будет, вы не постигли еще суть задачи :)

yo3o 01.07.2011 06:18

не получилось -( пули создаются но не летят и скорость создания осталась прежней!
dark256 помогите мне постигнуть суд задачи!

Добавлено через 1 час 31 минуту
получилось так (код ниже) но есть проблема пули летят не от героя а от 0 x и 0 y
Код AS1/AS2:

function newmydataFunction333 () {
function newmydataFunctionw () {
//hero.body.play();
placeBullet();
};
 
onMouseDown = function (){NumberFunctionw = setInterval (newmydataFunctionw, 1);};
onMouseUp = function (){clearInterval (NumberFunctionw);};
};
Number = setInterval (newmydataFunction333, 1);


dark256 01.07.2011 11:13

Вот скажите - вы ХЭЛП почитали по интервалу? Или нет?
Клавиша F1. или нажать даже лень?
Скопируйте оттуда код для интервала и экспериментируйте.

Number = setInterval (newmydataFunction333, 1); - вот это вообще бред.
Number - служебное слово, видно даже по подсветке синтаксиса.
Это все равно что написать:
for ( var i=0; i<10; i++) = "Привет, мир!"

Про onMouse - также читайте хэлп. У вас нет листенера.


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

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