Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 26.04.2013, 01:58
timedo вне форума Посмотреть профиль Отправить личное сообщение для timedo Найти все сообщения от timedo
  № 1  
Ответить с цитированием
timedo

Регистрация: Apr 2013
Сообщений: 32
Tools Mouse + random

Здравствуйте! Хочу сделать что б в место курсора, была цель, но не просто что б курсор мышки заменяла картинка а еще что б она постоянно "тряслась". То есть например уровень 1, игрок стреляет по целям но мышка при этом легко трясется(мышку можно водить в вольном порядке), уровень 2 мышка уже сильней "трясется" и т.д... Как можно так организовать не подскажете?
Вот код, который меняет указатель мышки и рандомно:

Код AS3:
stage.addEventListener(MouseEvent.MOUSE_MOVE, redrawCursor);
stage.addEventListener(Event.MOUSE_LEAVE, hideCursor);
Mouse.hide();
 
function redrawCursor(event:MouseEvent):void {
	cursor1.visible = true;
	cursor1.x = event.stageX;
	cursor1.y = event.stageY;
       //вот тут нужно как то по правильному сделать рандом, не знаю как
	cursor1.x =  Math.floor(Math.random()*100);
	cursor1.y =  Math.floor(Math.random()*100);
}
 
 
function hideCursor(event:Event):void{
	cursor1.visible = false;
}
Как мне сделать так, что б цель постоянно "треслась", мышкой при этом можно было спокойно управлять?

Старый 26.04.2013, 02:17
chamele0n вне форума Посмотреть профиль Отправить личное сообщение для chamele0n Посетить домашнюю страницу chamele0n Найти все сообщения от chamele0n
  № 2  
Ответить с цитированием
chamele0n
[+4 24.04.13]
[+4 20.04.13]

Регистрация: Feb 2013
Адрес: Seireitei
Сообщений: 176
так чтоли ?
Код AS3:
Mouse.hide();
addEventListener(Event.ENTER_FRAME, render);
function render(e:Event) : void {
	cursor1.x = mouseX;
	cursor1.y = mouseY;
	cursor1.x += Math.random()*10;
	cursor1.y += Math.random()*10;
}
__________________
Personal Page
$demo = $away3d + $bullet + $pathfinding;

Старый 26.04.2013, 02:19
Партизан вне форума Посмотреть профиль Отправить личное сообщение для Партизан Найти все сообщения от Партизан
  № 3  
Ответить с цитированием
Партизан
 
Аватар для Партизан

блогер
Регистрация: Nov 2007
Адрес: Almaty, Moscow
Сообщений: 396
Записей в блоге: 5
Отправить сообщение для Партизан с помощью Skype™
Код AS3:
function redrawCursor(event:MouseEvent):void {
	cursor1.visible = true;
        // Разброс +- 5 px 
        cursor1.x = event.stageX + (Math.random() - 0.5) * 5;
        cursor1.y = event.stageY + (Math.random() - 0.5) * 5;
}
Добавлено через 16 минут
Вообще, такой метод "тряски" больше похож на прицеливающегося нервного алкоголика стоящего на треногой гнилой табуретке, в день с порывистым ветром на небоскребе в сейсмоопасной зоне, во время толчков и извержений вулкана...
Если конечно не использовать такой подход для генерации промежуточных точек плавного движения прицела.

Старый 26.04.2013, 02:38
chamele0n вне форума Посмотреть профиль Отправить личное сообщение для chamele0n Посетить домашнюю страницу chamele0n Найти все сообщения от chamele0n
  № 4  
Ответить с цитированием
chamele0n
[+4 24.04.13]
[+4 20.04.13]

Регистрация: Feb 2013
Адрес: Seireitei
Сообщений: 176
еще можно внутреннее качение сделать вроде такого
test.swf   (12.3 Кб)
Вложения
Тип файла: swf test.swf (12.3 Кб, 97 просмотров)
__________________
Personal Page
$demo = $away3d + $bullet + $pathfinding;

Старый 26.04.2013, 11:57
timedo вне форума Посмотреть профиль Отправить личное сообщение для timedo Найти все сообщения от timedo
  № 5  
Ответить с цитированием
timedo

Регистрация: Apr 2013
Сообщений: 32
Цитата:
Сообщение от chamele0n Посмотреть сообщение
еще можно внутреннее качение сделать вроде такого
test.swf   (12.3 Кб)
А можете дать исходники? вот то что мне нужно =)

Старый 26.04.2013, 12:24
FlashRus вне форума Посмотреть профиль Отправить личное сообщение для FlashRus Найти все сообщения от FlashRus
  № 6  
Ответить с цитированием
FlashRus
 
Аватар для FlashRus

Регистрация: Nov 2006
Адрес: СПб
Сообщений: 920
Отправить сообщение для FlashRus с помощью ICQ Отправить сообщение для FlashRus с помощью Skype™
Там скорее всего просто MovieClip с анимацией внутри.
Неудачное решение, т.к. придётся определять координаты анимированного объекта внутри прицела.
Кастыли вобщем какие-то...
__________________
ЛОДКИ


Последний раз редактировалось FlashRus; 26.04.2013 в 12:37.
Старый 26.04.2013, 15:32
chamele0n вне форума Посмотреть профиль Отправить личное сообщение для chamele0n Посетить домашнюю страницу chamele0n Найти все сообщения от chamele0n
  № 7  
Ответить с цитированием
chamele0n
[+4 24.04.13]
[+4 20.04.13]

Регистрация: Feb 2013
Адрес: Seireitei
Сообщений: 176
Цитата:
Сообщение от timedo Посмотреть сообщение
А можете дать исходники? вот то что мне нужно =)
исходники

Цитата:
Сообщение от FlashRus Посмотреть сообщение
Неудачное решение, т.к. придётся определять координаты анимированного объекта внутри прицела.
ну если для вас это проблема, то вы не программист ))
__________________
Personal Page
$demo = $away3d + $bullet + $pathfinding;

Старый 27.04.2013, 14:27
timedo вне форума Посмотреть профиль Отправить личное сообщение для timedo Найти все сообщения от timedo
  № 8  
Ответить с цитированием
timedo

Регистрация: Apr 2013
Сообщений: 32
Спасибо за исходники chamele0n! Еще один вопросик, насчет анимации, при нажатии на мышку с цели вылетает как бы снаряд, только вот я нажал - снаряд вылетел, анимация не останавливается, а продолжается дальше. Подскажите пожалуйста как ее остановить, пытался обычным stop() но не получается.
Ниже весь код, но лучше будет если вы взгляните на исходники, буду очень сильно благодарен за помощь

Код AS3:
stage.addEventListener(Event.ENTER_FRAME, redrawCursor);
stage.addEventListener(Event.MOUSE_LEAVE, hideCursor);
stage.addEventListener(MouseEvent.CLICK, onMOUSEclick);
Mouse.hide();
stop();
 
function redrawCursor(event:Event):void  {
    cursor1.visible = true;
    cursor1.x = mouseX;
    cursor1.y = mouseY;
    cursor1.x += Math.random()*50;
    cursor1.y += Math.random()*50;
}
 
function hideCursor(event:Event):void{
    cursor1.visible = false;
}
 
function onMOUSEclick(MouseEvent:Event):void{
    bub.x = cursor1.x;
    bub.y = cursor1.y;
    bub.visible = true;
}
Вложения
Тип файла: rar cursor.rar (13.0 Кб, 10 просмотров)

Старый 27.04.2013, 15:06
Bletraut вне форума Посмотреть профиль Отправить личное сообщение для Bletraut Найти все сообщения от Bletraut
  № 9  
Ответить с цитированием
Bletraut
 
Аватар для Bletraut

Регистрация: Mar 2013
Адрес: Вне пространства.
Сообщений: 566
Отправить сообщение для Bletraut с помощью ICQ Отправить сообщение для Bletraut с помощью Skype™
Код AS3:
function onMOUSEclick(MouseEvent:Event):void{
    bub.x = cursor1.x;
    bub.y = cursor1.y;
    bub.visible = true;
 
    //Забыл строчку :)
    bub.stop();
}

Старый 27.04.2013, 15:30
chamele0n вне форума Посмотреть профиль Отправить личное сообщение для chamele0n Посетить домашнюю страницу chamele0n Найти все сообщения от chamele0n
  № 10  
Ответить с цитированием
chamele0n
[+4 24.04.13]
[+4 20.04.13]

Регистрация: Feb 2013
Адрес: Seireitei
Сообщений: 176
лучше при нажатии на кнопку мыши создавать новый экземпляр пули и при окончании анимации убирать ее(пулю) со сцены
вот простой вариант без кода в других фреймах
Код AS3:
function onMOUSEclick(MouseEvent:Event):void{
	var bullet:MovieClip = new bub();
	bullet.addEventListener(Event.ENTER_FRAME, onBulletAnimationComplete);
	bullet.x = cursor1.x;
	bullet.y = cursor1.y;
	addChild(bullet);
}
 
function onBulletAnimationComplete(e:Event) : void {
	var bullet:MovieClip = e.target as MovieClip;
	if(bullet.currentFrame == bullet.totalFrames) {
		bullet.removeEventListener(Event.ENTER_FRAME, onBulletAnimationComplete);
		removeChild(bullet);
	}
}
вот
__________________
Personal Page
$demo = $away3d + $bullet + $pathfinding;

Создать новую тему Ответ Часовой пояс GMT +4, время: 11:13.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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