ああ、またお邪魔してすみません、AS3 のコーディングを始めるのがこれほど難しいとは想像もしていませんでした (最初は簡単でしたが、今は心がブロックされています)。希望の速度と角度でマウスを動かします。ジェットの例を取り上げましたが、おそらく正しく実装していません。コードは次のとおりです。私が達成しようとしていることを説明します
import flash.geom.Point;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.display.MovieClip;
// here I added a custom cursor to my mouse (it’s an aim in png format)
var cursor:MovieClip;
function initializeGame():void
{
cursor = new Cursor();
addChild(cursor);
cursor.enabled = false;
Mouse.hide();
stage.addEventListener(MouseEvent.MOUSE_MOVE, dragCursor);
}
function dragCursor(event:MouseEvent):void
{
cursor.x = this.mouseX;
cursor.y = this.mouseY;
}
initializeGame();
var mouse=this.Mouse;
// here I want to make the player (called kicker) to kick the ball
stage.addEventListener(MouseEvent.CLICK, kick);
function kick(evt:Event){
kicker_mc.play(); // here I animate the kicker movieClip
this.addEventListener(Event.ADDED, moveBall);// this is the function that will move the ball towards the goal
}
//And here unsuccessfully trying to make the ball start moving to the cursor position, (currently when I kick the ball it appears at the right upper corner of the swf, exactly where the cursor appears when movie is tested
var speed:Number;
var angle:Number;
speed=200;
angle = Math.atan2(mouse.y-bola.y, mouse.x-bola.x);
function moveBall (event:Event){
ball.x += Math.cos (angle) * speed;
ball.y += Math.sin (angle) * speed;
}
もう一度、私は本当にあなたの指導に感謝します
古い質問
AS3 を使用してサッカー ペナルティー シュートアウト ゲームの作成を開始しましたが、ボールが蹴られたときにボールに速度と方向を与えるのに問題があり、プレーヤーにボールを蹴らせることができませんでした (はい、私は開発者ではありませんが、ゲームを完了するために懸命に努力してきました)、プレーヤーのアニメーションがキックをシミュレートしている間、3.5秒後にボールをゴールに移動できるようにする関数に遅延を設定することができました。これはコードです:
kick_btn.addEventListener(MouseEvent.CLICK, kick);
function kick(evt:Event)
{
kicker_mc.play();
new delayedFunctionCall (myFunctionToStartLater, 350);
function myFunctionToStartLater():void
{
ballkicked();
}
}
function ballKicked(event:Event)
{
ball_mc.y=180;
}
ここで、ボールを別の位置に移動しているだけであることを確認しますが、関数 ballkicked(); でゴールキーパーにボールを投げたいと考えています。ここで、シュートがゴールになるようにボールに実際の動きを与えたいところです。方向と速度を与えるために三角法を使用する必要があることはわかっていますが、三角法は非常に複雑なようです。チュートリアルに従っていましたが、いくつかの変数とパラメータしか準備できませんでしたが、迷子になりました:
var xSpeed:Number;
var ySpeed:Number;
var angle:Number;
var speed:Number;
これは関数に行く必要があります:
angle = this.rotation / 180 * Math.PI;
xSpeed = Math.cos(angle) * speed;
ySpeed = Math.sin(angle) * speed;
私はあなたの忍耐とこれに対する助けに本当に感謝します. どうもありがとう