Articles of actionscript 3

在HUD,Flash AS3中生活显示(不是文本!)

我一直在search互联网整天,我无法find我正在寻找的答案。 在我的HUD中,我想用橙色的点来表示生命。 用户从5点生命开始,每当他们死亡,我想要一个点被删除。 非常直截了当。 到目前为止,我的想法是制作一个有五个点的影片剪辑。 在时间轴上将会有5帧(因为在上一次生命之后,它立刻转到屏幕上的游戏)。 我会设置一个variables来存储生命的数量和跟踪生命的function。 所以每一个障碍的撞击都会导致livesCounter–; 。 然后我会设置这样的东西: switch(livesCounter){ case 5: livesDisplay.gotoAndPlay(1); break; case 4: livesDisplay.gotoAndPlay(2); break; case 3: livesDisplay.gotoAndPlay(3); break; case 2: livesDisplay.gotoAndPlay(4); break; case 1: livesDisplay.gotoAndPlay(5); break; } 我觉得必须有一个更简单的方法来做到这一点 ,我可以只有一个橙色点的影片剪辑,我可以复制一个X值基于生命的数量。 也许这些点将存储在一个数组中? 当用户失去生命时,线右端的点被删除。 所以最后柜台看起来像这样: * * * * * * * * * * * * * * * (last life lost […]

碰撞检测圆段段

在本教程中 ,我已经在游戏中实现了碰撞检测,这很好,但是我意识到有一个主要的缺陷。 玩家和敌人是圆圈,而障碍可以是段或多边形或圆圈。 现在,假设我有从point (100, 100) point (300, 100) point (100, 100) segment A从point (100, 100) point (300, 100) segment B ,这意味着它们形成锐角,并且玩家以point (100, 125) ,半径为25。 如果玩家开始向右移动,它最终会碰撞到B段。我的方法checkCollisions()会返回一个向量,但是如果我把这个向量应用到玩家上,它会向上移动并离开A段。 如果我checkCollisions()调用checkCollisions() ,播放器将被推下并与段B再次碰撞,所以recursion调用不是解决scheme。 有任何想法吗? 这里有一张图片来解释: g-> n向量方向沿着两个小向量的平分线,但是我怎么find这个长度?

如何将matrix转换与Flash中的非统一屏幕缩放结合起来?

我正在使用Flash 转换matrix进行仿射变换。 我有一个矩形图像被旋转和缩放(2D)。 有两组缩放variables:ScreenScaleX和ScreenScaleY,ScaleX和ScaleY,以及一个逆时针旋转角度theta。 ScreenScaleX和ScreenScaleY是窗口的缩放因子; 旋转图像后,应将其应用于原始 X轴和Y轴的方向。 ScaleX和ScaleY应该在旋转图像之后应用于新的 X和Y方向。 例如:如果theta是90度,ScreenScaleX和ScreenScaleY仍然会沿着原始X / Y轴的方向拉伸,但是现在ScaleY将在屏幕的X方向上拉伸,并且ScaleX将在屏幕的Y方向上拉伸。 我想我可以通过缩放,旋转和倾斜的组合来实现这一点,但是我正在努力弄清楚matrix的外观。 我将如何从这些variables构造一个matrix来执行这个转换?

鼠标在Flash中遵循精度

我正在试图为Flash / AS3中的一个游戏对象实现一个简单的动作。 我使用mouseX,mouseY作为我的对象跟随鼠标指针。 它工作正常,但问题是运动的精度。 如果我将鼠标移动得太快,我的游戏对象会停止跟随鼠标,这意味着我必须将鼠标指针重新聚焦到游戏对象上,才能使它再次移动。 这是做这个的代码。 private function FootyMouseMove(shortestFooty : FootBall) : void { shortestFooty.x = stage.mouseX; shortestFooty.y = stage.mouseY; if (shortestFooty.x > stage.stageWidth – shortestFooty.width) shortestFooty.x = stage.stageWidth – shortestFooty.width; if (shortestFooty.x < shortestFooty.width) shortestFooty.x = shortestFooty.width; } 我的问题是,是否有可能使我的游戏对象的移动更平滑,并确保游戏对象总是跟随鼠标,无论我移动鼠标指针有多快?

AS3重播所有的孩子时间表?

Flash CS5 AS3有没有办法重置所有的时间线,而/如果帧1和场景1被调用? 我碰巧有很多时间线的符号,如果我gotoAndPlay场景1帧1,大多数符号不会重新启动。 我用 MovieClip(root).gotoAndPlay("one");

在AS3中dynamic滚动

我有一个包含我的“游戏”的容器animation片段,我想能够拖动“相机”(即容器剪辑),但我需要它有动力学运动,即感觉更像本地拖动和滚动一个iOS设备。 我似乎无法find任何妥善处理这个问题的方式,而且我正在寻找的方式,如果涉及许可证,我也宁愿远离使用任何第三方包。 这适用于可能会或可能不会看到商业发布forms的个人项目,所以我宁愿a)学习如何自己编码,以及b)不必依赖和支付第三方库。 任何帮助将不胜感激。 谢谢!

大雪碧性能

我有一个使用一组顶点(x,y坐标)和一个位图模式(使用moveTo,lineTo,beginBitmapFill,endFill …等)生成的大Sprite。 它的宽度约为15000像素,高度在1500 – 2000像素之间,具体取决于水平,这是2D游戏的地形。 我的问题是:在舞台上显示/移动它的最佳方式是什么? 目前我只是把它添加到舞台上…我得到不错的帧速率/内存/ CPU使用率,但我想优化它为较慢的电脑。 有任何想法吗? 我一直在阅读关于blitting的一些信息,但我不确定如何在我的情况下实现它。 谢谢。

如何在Flash Pro CS6中从“有问题的”animation符号生成Spritesheet?

在新的Flash Pro CS6中,有一个选项可以从符号生成精灵表。 我使用这些教程: http://www.adobe.com/devnet/flash/articles/using-sprite-sheet-generator.html http://tv.adobe.com/watch/cs6-creative-cloud-feature-tour-for-web/generating-sprite-sheets-using-flash-professional-cs6/ 它运作得非常好! 我正在与一位艺术家合作创造一系列游戏资产。 其中之一是从上往下看的走路的人。 你可以在这里find.fla: https://docs.google.com/folder/d/0B3L2bumwc4onRGhLcGNId1p2Szg/edit (如果这不起作用,请告诉我,这是我第一次使用Google云端硬盘共享文件) 1。当我按下Ctrl + Enter时,我可以看到它正在移动。 当我寻找animation,我似乎没有find它。 当我select创建一个spritesheet时,flash建议创建一个基本姿势的帧,并且没有其他(animation)帧。 是什么原因造成的,我该如何纠正? 2,我想把它转换成32个角度的精灵表。 有没有什么神奇的简单的方法来完成这件事? 有没有使用Flash CS6来做同样的事情的解决方法?

AS3直角碰撞

基本上,我的游戏有基于攻击执行的玩家的攻击改变。 我试图进行一个简单的碰撞testing,它会检查敌人的坐标,并检查它是否在玩家的范围内。 我不想诉诸使用Sprites并使用hitTest()因为效率是一个问题。 无论如何,问题在于下面的函数总是返回true(即使玩家远离敌人)。 private function quickHitTest(boxLeft:int, boxRight:int, boxTop:int, boxBottom:int, rangeWidth:int, rangeHeight:int):Boolean return ((boxLeft > (300 – (rangeWidth/2)) && (boxBottom > (450 + (rangeHeight / 2)) || boxTop < (450 – (rangeHeight / 2)))) || (boxRight < (300 + (rangeWidth/2)) && (boxBottom > (450 + (rangeHeight / 2)) || boxTop < (450 – (rangeHeight / […]

如何从ActionScript管理animation用户界面?

我正在尝试使用Flash Professional CS5在AS3中编写一个扑克游戏(虽然我尽量在.fla中保留尽可能less的代码)。 例如,当玩家下注时,我需要能够显示一些芯片滑动到屏幕中心的animation。 之后,人工智能决定要做什么,另一个animation片出现。 然后popup一个菜单,玩家可以select他们自己的下一个动作。 等等。 我开始用bet(amount)和raise(amount)方法等编写一个UIBet接口,您将使用扩展MovieClip的类实现,并使用gotoAndPlays填充各种animation的方法。 但是,如果我只是有这样的代码调用这些graphics对象: playerUIBet.bet() aiUIBet.bet() menu.prompt() 然后,如果我正确地理解了Flash,会发生的是代码将完成执行,然后所有这些animation将同时发生。 我怎样才能让这些animation顺序发生? 如果我想在它们之间插入暂停怎么办? 像这样的解决scheme? 在AS3中这样做的最好方法是什么?