PDA

Просмотр полной версии : Реализация стрельбы без остановки!


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

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

petyar
30.06.2011, 17:18
onEnterFrame = function() {
if (Key.isDown(1)) {
// ПЫЩ ПЫЩ ПЫЩ
}
}

yo3o
30.06.2011, 17:34
можете помочь ?

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


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 минуты
__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
var FIRING = setInterval(this, "fireFunction", 1);

function fireFunction()
{
//то, что у вас в ОЕФ
}

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

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

Добавлено через 1 час 31 минуту
получилось так (код ниже) но есть проблема пули летят не от героя а от 0 x и 0 y
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 - также читайте хэлп. У вас нет листенера.

yo3o
01.07.2011, 14:35
dark256 вы можете подсказать где указать начальную точку создания пули!

petyar
01.07.2011, 17:51
Оперируйте координатами созданного дубликата пули. Вы же должны знать сами, к какому объекту привязывать координаты, ну что у вас там бегает-стреляет.

dark256
01.07.2011, 19:46
dark256 вы можете подсказать где указать начальную точку создания пули!

Идеальная точка создания пули - внутри черепа врага.

yo3o
02.07.2011, 05:32
Идеальная точка создания пули - внутри черепа врага.
С юмором у вас все просто чики пуки!!!

тему можно закрыть!

dark256
03.07.2011, 04:25
да.... уж...

Psycho Tiger
03.07.2011, 12:55
yo3o, из каких принципов Вы называете переменные __reg?
Возможно, так их называет декомпилятор?