制作flash cs的简单小游戏

以flash cs6为例制作小游戏。 制作flash <wbr>cs的简单小游戏
文件素材可以从图片上截图下来之后,稍微用ps处理下就行了。
需要的有:
1.一个背景板。2.气球。3.齿轮。
新建一个Game.as文件。把下面代码放进去。
package{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.geom.Rectangle;
import flash.media.Sound;
import flash.text.*;
public class Game extends MovieClip{
public static const STATE_INIT: int =10;
public static const STATE_PLAY: int =20;
public static const STATE_END_GAME: int =30;
public var gameState:int =0;
public var score:int=0;
public var level:Number =0;
public var chance:int =0;
public var bg:MovieClip;
public var enemies:Array;
public var player:MovieClip;
public var scoreLabel:TextField = new TextField();
public var levelLabel:TextField = new TextField();
public var chanceLabel:TextField = new TextField();
public var scoreText:TextField = new TextField();
public var levelText:TextField = new TextField();
public var chanceText:TextField = new TextField();
public const SCOREBOARD_Y:Number=380;
public function Game(){
addEventListener(Event.ENTER_FRAME,gameLoop);
bg=new BackImage();
addChild(bg);
scoreLabel.text="Score:";
levelLabel.text="level:";
chanceLabel.text="Misses:";
scoreText.text="0";
levelText.text="1";
chanceText.text="0";
scoreLabel.y=SCOREBOARD_Y;
levelLabel.y=SCOREBOARD_Y;
chanceLabel.y=SCOREBOARD_Y;
scoreText.y=SCOREBOARD_Y;
levelText.y=SCOREBOARD_Y;
chanceText.y=SCOREBOARD_Y;
scoreLabel.x=5;
scoreText.x=50;
chanceLabel.x=105;
chanceText.x=155;
levelLabel.x=205;
levelText.x=260;
addChild(scoreLabel);
addChild(scoreText);
addChild(levelLabel);
addChild(levelText);
addChild(chanceLabel);
addChild(chanceText);
gameState=STATE_INIT;
}
public function gameLoop(e:Event):void{
switch(gameState){
case STATE_INIT:
initGame();
break;
case STATE_PLAY:
playGame();
break;
case STATE_END_GAME:
endGame();
break;
}
}
public function initGame():void{
score=0;
chance=0;
level=1;
levelText.text=level.toString();
player=new PlayerImage();
addChild(player);
player.startDrag(true,new Rectangle(0,0,550,400));
enemies=new Array();
gameState=STATE_PLAY;
}
public function playGame():void{
player.rotation+=15;
makeEnemies();
moveEnemies();
testCollisions();
testForEnd();
}
public function makeEnemies():void{
var chance:Number =Math.floor(Math.random()*100);
if(chance<2+level){
var tempEnemy:MovieClip;
tempEnemy=new EnemyImage();
tempEnemy.speed=3+level;
tempEnemy.gotoAndStop(Math.floor(Math.random()*5)+1);
tempEnemy.y=435;
tempEnemy.x=Math.floor(Math.random()*515);
addChild(tempEnemy);
enemies.push(tempEnemy);
}
}
public function moveEnemies():void{
var tempEnemy:MovieClip;
for(var i: int = enemies.length-1;i>=0;i--){
tempEnemy=enemies[i];
tempEnemy.y-=tempEnemy.speed;
if(tempEnemy.y<-35){
chance++;
chanceText.text=chance.toString();
enemies.splice(i,1);
removeChild(tempEnemy);
}
}
}
public function testCollisions():void{
var tempEnemy:MovieClip;
var sound:Sound=new Pop();
for(var i:int =enemies.length-1;i>=0;i--){
tempEnemy=enemies[i];
if(tempEnemy.hitTestObject(player)){
score++;
scoreText.text=score.toString();
sound.play();
enemies.splice(i,1);
removeChild(tempEnemy);
}
}
}
public function testForEnd(){
if(chance>=5){
gameState=STATE_END_GAME;
}
else{
if(score>=level*20){
level++;
levelText.text=level.toString();
}
}
}
public function endGame(){
for(var i:int =enemies.length-1;i>=0;i--){
removeChild(enemies[i]);
}
enemies=[];
player.stopDrag();
}

}
}
保存到本地的某个文件夹下。
之后新建一个ActionScript3.0的 .fla文件。保存到相同的路径下。
在flashcs6里面打开这个.fla文件,可以看到库面板,该文件的属性里面有个链接,输入Game这个类的名字,将他们链接到一起。
可以看到flash cs 的.fla文件下方有个时间轴,里面有1,5,10.,,,这些。对应下面代表的是帧。右键第一个,插入空白关键帧。然后文件-导入-导入到舞台。导入图片到该帧。依次类推。前五个帧,全部导入红色的气球图片。后面导入齿轮,背景。
之后在每个帧里面点击图片,然后右键,转换为元件,之后弹出窗口,转化为影片剪辑。并且导出类。齿轮导出类名问PlayerImage,气球导出类名为EnemyImage.背景导出图片为BackImage.
然后点击选中第一个帧,点击窗口,动作。输入代码stop();
这样整个游戏就建造完成了。
其实主要的功能都在代码里面。
代码本身比较好理解。只有那个BackImage这些类的出处新手可能不清楚。其实就是前面的那些元件建立的导出类的名字。
然后可以通过Ctrl+Enter来测试影片。生成的可执行的文件为.swf文件。
附加知识点:
如果想导入动画的话,可以将一系列的帧放到一个影片里面。然后文件-导出为影片剪辑。其实就是讲这个的.fla文件导出为一个类,来引用。之后再在于Game想关联的那个.fla文件里面,导入该影片剪辑到相应的库中即可。之后将该.swf文件,设置导出类为相应的要调用的类即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1380345.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

AIStudio扫描王实现与原理详解

★★★ 本文源自AI Studio社区精品项目&#xff0c;【点击此处】查看更多精品内容 >>> AIStudio扫描王实现与原理详解 一、前言 大家经常有需要使用扫描件的时候&#xff0c;如果是要求不太高的场景&#xff0c;我们通常会使用手机拍照&#xff0c;再经过一些APP应用…

基于 requests 的全能扫描王爬虫实践

投稿人&#xff1a;Alan 摘要&#xff1a;全能扫描王是文件扫描留档的重要工具&#xff0c;本文利用requests爬虫将手机客户端的扫描文件&#xff0c;同步至电脑端。 一、背景 在审计工作中&#xff0c;需要大批量扫描文件留档&#xff0c;全能扫描王成为主流的手机端扫描工具。…

【OpenCV】基于Qt的“破产版”全能扫描王

功能介绍 图片打开和保存图片矫正&#xff08;证件扫描、文字纠正…&#xff09;图片锐化增强图片清空阈值设置 项目实现 基本思路&#xff08;证件扫描&#xff09; 抠图&#xff1a;提取轮廓矫正&#xff1a;透视变换锐化增强&#xff1a;二值化 算法设计&#xff08;证…

eNSP:ibgp的破水平切割练习

实验要求&#xff1a; 拓扑展示&#xff1a; 命令操作&#xff1a; R1&#xff1a; <Huawei>sys [Huawei]sys r1 [r1]int g 0/0/1 [r1-GigabitEthernet0/0/1]ip add 12.1.1.1 24 [r1-GigabitEthernet0/0/1]int lo0 [r1-LoopBack0]ip add 1.1.1.1 24 [r1-LoopBack0]osp…

css clip-path 画五角星

简介 使用裁剪方式创建元素的可显示区域&#xff0c;实现区域裁剪。 浏览器兼容性 常用的三种方法 1. clip-path: circle(50px at 50px 50px) 以 50px 50px 的坐标为圆心裁剪一个半径 50px 的圆&#xff1b; 2. clip-path: ellipse(30px 40px at 50px 50px) 以 50px 50px…

canvas绘图详解-06-绘制一个五角星-常用绘图原理

先讲如何画一个正规的五角星 在五角星的内外画两个圆&#xff0c;五角星有五个角&#xff0c;360/572度 所以得出这两个角的度数 然后算出这两个点坐标 角度转弧度 角度/180*Math.PI 所以外顶点坐标 x: Math.cos( (1872*i)/180*Math.PI) * R y: Math.sin((1872*i)/180*Math.P…

钓鱼网站原理实验

实验环境:一台Windows 2003&#xff08;WA&#xff09;作为客户机&#xff0c;一台Linux&#xff08;LB&#xff09;作为服务器。 1.LB设置网络适配器 2.LB配置eth0&#xff08;vim /etc/sysconfig/network-scripts/ifcfg-eth0&#xff09; 3.LB将eth0的内容copy一份到eth1 …

电子邮件如何追溯到他们的源IP地址

你要做的第一件事当你听到检查发送电子邮件通知,对吧? 这是最快的方法找出谁是电子邮件,以及可能的内容。 但是你知道每个邮件都有更多的信息比出现在大多数的电子邮件客户端? 有主机的信息发送者包括在邮件头信息可以用来跟踪电子邮件回源。 下面是如何跟踪,邮件回它是从哪…

红队攻击:轻松玩转邮件钓鱼

首发在合天智汇&#xff1a;https://mp.weixin.qq.com/s/sRXnwIdy3eQ0CJS58_bI1g 邮件钓鱼老生常谈&#xff0c;攻击手段也并不新颖。但对于网络安全工程师来说,“懂原理”和“会使用”是两个概念。会用&#xff0c;用得好不好&#xff0c;又是不同的层次。红队攻击要讲究攻击的…

seeker+ngrok 钓鱼获取目标位置

免责说明&#xff1a;本文章只是参考&#xff0c;一切后果自行承担&#xff0c;网络环境靠大家&#xff0c;遵守网络安全法是每个人应尽的责任 文章目录 一、工具介绍seekerngrok 二、使用步骤 一、工具介绍 seeker seeker工具是一款社会工程学的利器&#xff0c;可以通过see…

使用十六进制IP地址的网络钓鱼攻击活动

网络犯罪分子正在不断优化其网络攻击工具&#xff0c;策略和技术&#xff0c;以逃避垃圾邮件检测系统。 由于一些系统会直接提取邮件中内嵌的链接进行检测&#xff0c;而一种此类URL混淆技术采用了URL主机名部分中使用的编码十六进制IP地址格式来逃避检测。 由于IP地址可以用多…

1. 如何爬取自己的CSDN博客文章列表(获取列表)(博客列表)(手动+python代码方式)

文章目录 写在最前步骤打开chrome浏览器&#xff0c;登录网页按pagedown一直往下刷呀刷呀刷&#xff0c;直到把自己所有的博文刷出来然后我们按F12&#xff0c;点击选取元素按钮然后随便点一篇博文&#xff0c;产生如下所示代码然后往上翻&#xff0c;找到头&#xff0c;复制然…

Maven在IDEA2021版本中全局配置(一次配置处处生效)

前言 我们在开发中&#xff0c;Maven是必不可少的&#xff0c;但是每次都需要设置一遍Maven的仓库和settings.xml。真的是心累&#xff0c;今天教大家全局配置一下。再也不要每次项目都配了&#xff0c;Maven还经常出问题。 解决方案 友情提示&#xff1a;小编的IDEA版本为2…

Tableau 聚合计算 - 分组求和(sum、fixed、include的使用)

一、聚合计算例子 有以下数据&#xff1a; // 计算1 SUM(IF [shuxue]123 then [yingyu] END)// 计算2 IF [shuxue]123 then {fixed [shuxue]: SUM([yingyu])} END// 计算3 IF [shuxue]123 then {SUM([yingyu])} END// 计算4 {fixed [shuxue]: SUM([yingyu])}// 计算5 {include…

Kubernetes pod调度约束[亲和性 污点] 生命阶段 排障手段

调度约束 Kubernetes 是通过 List-Watch 的机制进行每个组件的协作&#xff0c;保持数据同步的&#xff0c;每个组件之间的设计实现了解耦。 用户是通过 kubectl 根据配置文件&#xff0c;向 APIServer 发送命令&#xff0c;在 Node 节点上面建立 Pod 和 Container。 APIServer…

[Pandas] 分组比例计算求和

美图欣赏2022/08/01 问题:在最近的需求开发中&#xff0c;有这么个分组比例计算求和问题&#xff0c;根据字段CPN进行分组&#xff0c;计算每一笔PO Line Actual CT2R * line 数量比重&#xff0c;取名为Weighted(QTY)CT2R&#xff0c;再根据相同的CPN对每行Weighted(QTY)CT2R值…

SQL多字段分组求和

表结构 表数据 按店铺名称、发货时间分组并求总数 select g.[店铺名称],g.[发货时间],sum(g.[数量]) as 总数 from t_goods g GROUP BY g.[店铺名称],g.[发货时间] ORDER BY g.[店铺名称]

oracle 分析函数之分组求和、连续求和

最近在《sql cookbook》书上发现了名叫 分析函数 的东西&#xff0c;之前学 oracle 时没有印象&#xff0c;现在感觉其分析函数的功能相当强大、神奇&#xff0c; 就特意去找到了 chm 文档研究了一下&#xff0c;想要的朋友在本文末尾自行下载。 本文的例子都来源于 chm 文档…

简单卡通水

参考 https://roystan.net/articles/toon-water/ 源码 https://github.com/IronWarrior/ToonWaterShader 两张噪声图 挂在相机上&#xff0c;开启深度模式&#xff0c;使shader可以拿到深度图 using UnityEngine;public class ChangeCameraDepth : MonoBehaviour {public De…