一个问题求解
来源:互联网 发布:淘宝玛卡是真的吗 编辑:程序博客网 时间:2024/06/01 17:20
package {
import flash.display.*;
import flash.events.*;
public class TargetPractice extends MovieClip {
// movie clips
private var ball:Ball;
private var ballShadow:BallShadow;
private var target:Target;
private var cannonRings:Array;
// cannon position and angle//大炮的位置和角度
private var cannonPosition:Number;
private var cannonAngle:Number;
// ball vector//球的矢量
private var dy,dz:Number;
public function TargetPractice() {
// set up all movie clips//建立所有影片剪辑
target = new Target();
ball = new Ball();
ballShadow = new BallShadow();
ballShadow.rotationX = -90; // rotate shadow to lie down on surface//翻转阴影躺在表面
ballShadow.y = 350; // shadow on the ground//地上的影子
addChild(ballShadow);
addChild(target);
addChild(ball);
// create 10 rings to show cannon direction//创建10个环指炮方向
cannonRings = new Array();
for(var i=0;i<3;i++) {
var cannonRing:CannonRing = new CannonRing();
cannonRings.push(cannonRing);
addChild(cannonRing);
}
// set initial cannon position and angle//设置初始大炮的位置和角度
cannonAngle = -30;
cannonPosition = 275;
drawCannon();
// set up first target//建立了第一个目标
setUpTarget();
// accept keyboard input//接受键盘输入
//stage.addEventListener(KeyboardEvent.KEY_DOWN,keyPressedUp);
//接受鼠标点击控制炮弹发射方向
stage.addEventListener(MouseEvent.CLICK,clickMouse);
}
private function clickMouse(e:MouseEvent){
drawCannon();
fireBall() ;
target.x=mouseX;
target.y=mouseY;
//ball.x=mouseX;
//ball.y=mouseY;
}
public function drawCannon() {
// place ball//地上球的位置
ball.x = cannonPosition;
ball.y = 350;
ball.z = -100;
// place shadow
ballShadow.x = cannonPosition;
ballShadow.y = 350;
ballShadow.z = -100;
// draw cannon rings//画炮方向
for(var i=0;i<cannonRings.length;i++) {
cannonRings[i].x = cannonPosition;
cannonRings[i].y = 350 + 5*i*Math.sin(cannonAngle*(Math.PI/180));
cannonRings[i].z = -100+ 5*i*Math.cos(cannonAngle*(Math.PI/180));
}
}
// pick a random location for the target in the field//选择一个随机位置的目标领域中的
private function setUpTarget() {
target.x = Math.random()*400-200+275;
target.y = 350;
target.z = Math.random()*1200+600;
}
// accept key presses and move the cannon//接受键值和移动大炮
/*public function keyPressedUp(event:KeyboardEvent) {
if (event.keyCode == 37) {
cannonPosition -= 5;
drawCannon();
} else if (event.keyCode == 39) {
cannonPosition += 5;
drawCannon();
} else if (event.keyCode == 38) {
cannonAngle -= 1;
drawCannon();
} else if (event.keyCode == 40) {
cannonAngle += 1;
drawCannon();
} else if (event.keyCode == 32) {
fireBall();
}
}*/
///接受鼠标点击
//public function keyPressedUp(event:MouseEvent){}
// throw the cannon ball//仍炮弹
private function fireBall() {
var f:Number = 15.0; // initial force of blast//起初爆炸
// calculate initial vector based on force and angle//计算初始向量的基础上的力量和角度
dy = f*Math.sin(cannonAngle*(Math.PI/180));
dz = f*Math.cos(cannonAngle*(Math.PI/180));
// move ball each frame//每帧移动球
addEventListener(Event.ENTER_FRAME, moveBall);
}
// move ball and account for dravity//移动球和帐户dravity
private function moveBall(e:Event) {
// ball movement//球类运动
ball.y += dy;
ball.z += dz;
// move shadow along with ball//随球移动的影子
ballShadow.z += dz;
// change vector to account for gravity//考虑到重力变化向量
dy += .1;
// see if the ball hit the ground//如果球击中地面
if (ball.y > 350) {
removeEventListener(Event.ENTER_FRAME, moveBall);
var dist:Number = Math.sqrt(Math.pow(ball.x-target.x,2)+Math.pow(ball.z-target.z,2));
if (dist < 50) {
setUpTarget();
}
}
}
}
import flash.display.*;
import flash.events.*;
public class TargetPractice extends MovieClip {
// movie clips
private var ball:Ball;
private var ballShadow:BallShadow;
private var target:Target;
private var cannonRings:Array;
// cannon position and angle//大炮的位置和角度
private var cannonPosition:Number;
private var cannonAngle:Number;
// ball vector//球的矢量
private var dy,dz:Number;
public function TargetPractice() {
// set up all movie clips//建立所有影片剪辑
target = new Target();
ball = new Ball();
ballShadow = new BallShadow();
ballShadow.rotationX = -90; // rotate shadow to lie down on surface//翻转阴影躺在表面
ballShadow.y = 350; // shadow on the ground//地上的影子
addChild(ballShadow);
addChild(target);
addChild(ball);
// create 10 rings to show cannon direction//创建10个环指炮方向
cannonRings = new Array();
for(var i=0;i<3;i++) {
var cannonRing:CannonRing = new CannonRing();
cannonRings.push(cannonRing);
addChild(cannonRing);
}
// set initial cannon position and angle//设置初始大炮的位置和角度
cannonAngle = -30;
cannonPosition = 275;
drawCannon();
// set up first target//建立了第一个目标
setUpTarget();
// accept keyboard input//接受键盘输入
//stage.addEventListener(KeyboardEvent.KEY_DOWN,keyPressedUp);
//接受鼠标点击控制炮弹发射方向
stage.addEventListener(MouseEvent.CLICK,clickMouse);
}
private function clickMouse(e:MouseEvent){
drawCannon();
fireBall() ;
target.x=mouseX;
target.y=mouseY;
//ball.x=mouseX;
//ball.y=mouseY;
}
public function drawCannon() {
// place ball//地上球的位置
ball.x = cannonPosition;
ball.y = 350;
ball.z = -100;
// place shadow
ballShadow.x = cannonPosition;
ballShadow.y = 350;
ballShadow.z = -100;
// draw cannon rings//画炮方向
for(var i=0;i<cannonRings.length;i++) {
cannonRings[i].x = cannonPosition;
cannonRings[i].y = 350 + 5*i*Math.sin(cannonAngle*(Math.PI/180));
cannonRings[i].z = -100+ 5*i*Math.cos(cannonAngle*(Math.PI/180));
}
}
// pick a random location for the target in the field//选择一个随机位置的目标领域中的
private function setUpTarget() {
target.x = Math.random()*400-200+275;
target.y = 350;
target.z = Math.random()*1200+600;
}
// accept key presses and move the cannon//接受键值和移动大炮
/*public function keyPressedUp(event:KeyboardEvent) {
if (event.keyCode == 37) {
cannonPosition -= 5;
drawCannon();
} else if (event.keyCode == 39) {
cannonPosition += 5;
drawCannon();
} else if (event.keyCode == 38) {
cannonAngle -= 1;
drawCannon();
} else if (event.keyCode == 40) {
cannonAngle += 1;
drawCannon();
} else if (event.keyCode == 32) {
fireBall();
}
}*/
///接受鼠标点击
//public function keyPressedUp(event:MouseEvent){}
// throw the cannon ball//仍炮弹
private function fireBall() {
var f:Number = 15.0; // initial force of blast//起初爆炸
// calculate initial vector based on force and angle//计算初始向量的基础上的力量和角度
dy = f*Math.sin(cannonAngle*(Math.PI/180));
dz = f*Math.cos(cannonAngle*(Math.PI/180));
// move ball each frame//每帧移动球
addEventListener(Event.ENTER_FRAME, moveBall);
}
// move ball and account for dravity//移动球和帐户dravity
private function moveBall(e:Event) {
// ball movement//球类运动
ball.y += dy;
ball.z += dz;
// move shadow along with ball//随球移动的影子
ballShadow.z += dz;
// change vector to account for gravity//考虑到重力变化向量
dy += .1;
// see if the ball hit the ground//如果球击中地面
if (ball.y > 350) {
removeEventListener(Event.ENTER_FRAME, moveBall);
var dist:Number = Math.sqrt(Math.pow(ball.x-target.x,2)+Math.pow(ball.z-target.z,2));
if (dist < 50) {
setUpTarget();
}
}
}
}
}
////////////////////////想要得到的效果是鼠标点击舞台的任何位置,小球就弹到哪里
- 一个问题求解
- 一个搜索问题的求解
- 在线求解一个查询问题
- 一个C语言问题,求解
- 一个奇怪的问题求解
- 一个分酒问题的求解
- 一个非线性约束问题的lingo求解
- 一个sql语句的经典问题,求解!
- 一个Service问题的求解历程
- 一个AJAX和PHP问题求解
- 一个“散点均匀分布”问题的求解
- 编写一个程序求解字谜游戏问题
- 一个变形虫适应算法求解CSP问题
- java求解一个线性规划约束问题
- 问题求解
- 问题求解
- 问题求解
- 对求解“皇后排列问题”的一个新解法!
- MVC中使用AuthorizeAttribute做身份验证操作
- 配置ehcache.xml文件
- HDU 4295 状态压缩dp + KMP
- 配置ehcache.xml -----02
- 分段函数
- 一个问题求解
- 匿名内部类的神奇用法——实现视图机制
- How do programs execute?
- 媒体播放器三大底层架构
- LoadRunner Java Vuser 脚本开发实例
- QuickTime 2002 错误小结
- 给走游戏程序员之路的初学者这参考心得
- POJ 1753 Flip Game【翻转棋盘+枚举+dfs】
- JDBC驱动下载汇总