基于Flash CS6和AS 3.0完成的赛车游戏

本文介绍了如何使用Flash CS6和ActionScript 3.0编写一款简单的赛车游戏,适合小学生。游戏包含两个场景:游戏和结束。关键点包括:设置游戏场景代码,为NPC添加移动代码,实现左右移动限制,动态显示得分,并检测碰撞。游戏结束后,NPC会停止并消失。尽管游戏仍有改进空间,如添加开始和重新开始按钮,但对有一定Flash基础的学习者来说,这是一个不错的实践项目。
摘要由CSDN通过智能技术生成

目前有各种语言编写的赛车游戏,但基于Flash编写的,反而最直观,近日空闲下来,将之前编写的Flash CS6和AS3.0编写的赛车游戏写下来,重点可以帮助小学生完成简单的小游戏。
一、完成界面如下:
在这里插入图片描述
二、重点关注:
1、两个场景,游戏和结束。游戏场景中一定新建代码层,加入以下代码:

stop();

2、重点关注游戏场景:
(1)每一个NPC(即敌人)增加如下代码:

import flash.events.Event; 
this.dispatchEvent(new Event("repeat",true));

(2)NPC基于AS3.0添加到场景中,每一个NPC元件一定要设置相同名字的类:

import flash.events.TimerEvent;
import flash.utils.Timer;
var mymc1:VanNPC1 = new VanNPC1();
addChild(mymc1);
mymc1.x = 245.75;
mymc1.y = 96.6;
setChildIndex(mymc1,9);
var mymc2:VanNPC2 = new VanNPC2();
addChild(mymc2);
mymc2.x = 263.35;
mymc2.y = 96.6;
setChildIndex(mymc2,9);
var mymc3:VanNPC3 = new VanNPC3();
addChild(mymc3);
mymc3.x = 270.35;
mymc3.y = 96.45;
setChildIndex(mymc3,9);
var mymc4:VanNPC4 = new VanNPC4();
addChild(mymc4);
mymc4.x = 295.25;
mymc4.y = 97.8;
setChildIndex(mymc4,9);

(3)左右移动代码实现,注意窗口限制,避免移动出窗口外。

import flash.events.KeyboardEvent;
const KEY_LEFT:int=37;
const KEY_RIGHT:int=39;
var moving:int=10;
var rect:Rectangle = new Rectangle(0,0,stage.stageWidth,stage.stageHeight);//更改矩形值可以修改限制范围
function keydown(c:KeyboardEvent){
 var code:int=c.keyCode;
 if(code==KEY_LEFT){
	 vanXY.x=vanXY.x-moving; 
	 }
 if(code==KEY_RIGHT){
	 vanXY.x=vanXY.x+moving;
 }
 if(vanXY.x<rect.x){
        vanXY.x = rect.x;
    }else if(vanXY.x+vanXY.width>rect.width){
        vanXY.x = rect.width-vanXY.width;
    }
 }
stage.addEventListener(KeyboardEvent.KEY_DOWN,keydown);

(4)动态文本表示成绩,实例名为score。

var Num:uint=1;
this.score.text="0";
this.addEventListener("repeat",repeatHd);
function repeatHd(event:Event){
	this.score.text=String(Num++);
  if(mymc3.hitTestObject(vanXY))//检测是否发生碰撞
   {
   gotoAndStop(1,"结束");
   mymc1.stop();
   mymc2.stop();
   mymc3.stop();
   mymc4.stop();
   mymc1.visible=false;
   mymc2.visible=false;
   mymc3.visible=false;
   mymc4.visible=false;
   }
   if(mymc2.hitTestObject(vanXY))//检测是否发生碰撞
   {
   gotoAndStop(1,"结束");
   mymc1.stop();
   mymc2.stop();
   mymc3.stop();
   mymc4.stop();
   mymc1.visible=false;
   mymc2.visible=false;
   mymc3.visible=false;
   mymc4.visible=false;
   }
}

备注:代码中当检测碰撞后,设置元件停止和消失,避免出现当游戏结束了,动画还在播放。
三、主界面的实现
主界面展现行驶动画,这里就不展现了,文后有链接,大家可以自行理解。
四、总结
该游戏还有不足之处,比如需要开始按钮及重新开始按钮,这里没有实现,但是不难,有一定flash基础的同学都可以完成。同时游戏的趣味性还有待加强。
链接: https://pan.baidu.com/s/12ioVNET0VJ_UQfl7fiBKSw 提取码: gdhh。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疯狂的豆包

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值