Olá!
Estou com um problema, preciso fazer o mouse disparar com um clique uma arma a laser. Já vi exemplos de games que o mouse só atira e extermina o alvo, mas eu preciso que quando o jogador clique apareça uma linha que sai de um lugar predeterminado e atinja o alvo clicado, e essa linha precisa aparecer dando a entender que ela seria um tiro de laser. A parte que não sai do lugar seria o início da linha e a outra parte seria feita através de variável X e Y que detecta onde o mouse está e faz a linha aparecer conforme o lugar que o mouse clica. Acho que consegui me explicar. Qualquer dúvida perguntem! Obrigada pela atenção.
Publicidade
|
|
Page 1 of 1
Mouse como uma arma laser Como fazer mouse disparar uma arma a laser
#2
Posted 26 November 2009 - 01:52 PM
blz?
Consegui um exemplo bem inicial, pra AS3, veja se isso te ajuda em algo.
Essa classe é Document Class, ou seja precisa configurar pra o stage.
No stage tem um mc com nome de instância gunShotMc, ao clicar qualquer lugar do stage desenha uma linha vermelha e aplica um filtro glow pra linha.
Só criar uma função reponsavel por fazer a linha, e aplicar evento de mouse pra chamar essa função da linha.
No help Flash mostra como usar classe Graphics pra desenho vetorial no Flash:
http://help.adobe.com/en_US/AS3LCR/Flash_1...y/Graphics.html
AS3, LaserShot.as (Document Class!)
Arquivo exemplo:
http://rapidshare.com/files/312521372/LaserShot.zip.html
Abraço.
Consegui um exemplo bem inicial, pra AS3, veja se isso te ajuda em algo.
Essa classe é Document Class, ou seja precisa configurar pra o stage.
No stage tem um mc com nome de instância gunShotMc, ao clicar qualquer lugar do stage desenha uma linha vermelha e aplica um filtro glow pra linha.
Só criar uma função reponsavel por fazer a linha, e aplicar evento de mouse pra chamar essa função da linha.
No help Flash mostra como usar classe Graphics pra desenho vetorial no Flash:
http://help.adobe.com/en_US/AS3LCR/Flash_1...y/Graphics.html
AS3, LaserShot.as (Document Class!)
CÓDIGO
/* @author Rodrigo Goncalves [Rodrigo PiXEL]
*
* Essa é uma classe pra ser definida como Document class!
* No stage deve ter um mc com nome de instancia gunLaserMc
* */
package
{
//import classes necessarias
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.filters.*;
public class LaserShot extends MovieClip
{
private var sp:Sprite; //vai receber a linha do laser
public function LaserShot()
{
//inicia a classe
_init();
}
//responsavel por iniciar a classe
private function _init():void
{
stage.addEventListener(MouseEvent.CLICK, _onStageMouseClick);
}
//responsavel por criar a linha vinda da arma e adicionar no stage
private function _drawLaserShot():void
{
sp = new Sprite();
sp.graphics.clear(); //limpa antes de desenhar
sp.graphics.moveTo(gunLaserMc.width+15, gunLaserMc.y+10); //posicao inicial
sp.graphics.lineStyle(3, 0xff0000, 1); //estilo da linha e cores
sp.graphics.lineTo(mouseX, mouseY); //posicao final da linha
sp.filters = [new GlowFilter(0xff0000, .5, 20, 20, 10, 1)]; //filtro de glow
addChild(sp); //adiciona no stage
setTimeout(sp.graphics.clear, 100); //apaga a linha depois de um tempo
}
//quando clicar no stage faça algo...
private function _onStageMouseClick(e:MouseEvent):void
{
_drawLaserShot(); //cria a linha do laser
e.updateAfterEvent(); //atualiza render do stage
}
}
}
*
* Essa é uma classe pra ser definida como Document class!
* No stage deve ter um mc com nome de instancia gunLaserMc
* */
package
{
//import classes necessarias
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.filters.*;
public class LaserShot extends MovieClip
{
private var sp:Sprite; //vai receber a linha do laser
public function LaserShot()
{
//inicia a classe
_init();
}
//responsavel por iniciar a classe
private function _init():void
{
stage.addEventListener(MouseEvent.CLICK, _onStageMouseClick);
}
//responsavel por criar a linha vinda da arma e adicionar no stage
private function _drawLaserShot():void
{
sp = new Sprite();
sp.graphics.clear(); //limpa antes de desenhar
sp.graphics.moveTo(gunLaserMc.width+15, gunLaserMc.y+10); //posicao inicial
sp.graphics.lineStyle(3, 0xff0000, 1); //estilo da linha e cores
sp.graphics.lineTo(mouseX, mouseY); //posicao final da linha
sp.filters = [new GlowFilter(0xff0000, .5, 20, 20, 10, 1)]; //filtro de glow
addChild(sp); //adiciona no stage
setTimeout(sp.graphics.clear, 100); //apaga a linha depois de um tempo
}
//quando clicar no stage faça algo...
private function _onStageMouseClick(e:MouseEvent):void
{
_drawLaserShot(); //cria a linha do laser
e.updateAfterEvent(); //atualiza render do stage
}
}
}
Arquivo exemplo:
http://rapidshare.com/files/312521372/LaserShot.zip.html
Abraço.
#3
Posted 26 November 2009 - 04:26 PM
Obrigado Rodrigo, mas eu uso o Flash MX, aquele da Macromedia ainda e não consegui baixar o arquivo do RapidShare.
Share this topic:
Page 1 of 1
Similar Topics
| Topic | Forum | Started By | Stats | Last Post Info | |
|---|---|---|---|---|---|
|
Função strip_tags com variável PHP
Não funciona ao aplicar a uma string |
PHP |
aapiovesan
|
|
|
|
Decodificar!!!
Alguém me de uma luz... |
ASP |
dudesigner
|
|
|
|
Confira 10 mousepads para todos os gostos
|
Notícias |
Notícias
|
|
|
|
Anonymous aproveita festividades no México para fazer ciberataque
|
Notícias |
Notícias
|
|
|
|
Prova de escola Online
Como fazer? Me ajudem plss!! |
ASP |
Maux
|
|
|
|
Saiba como proteger seus e-mails de serem captados em sites
|
Notícias |
Notícias
|
|
|
|
Menu pop up
como instalar em blog ou site |
Fireworks |
lanunes
|
|
|
|
Saiba como salvar uma página da web em formato word
|
Notícias |
Notícias
|
|
Publicidade
|
|

Help













