当前位置:首页 » 游戏大全 » 射击类游戏开发流程
扩展阅读
天成解说一个人的游戏 2021-03-16 21:51:02
打游戏什么牌子显卡好 2021-03-16 21:51:00

射击类游戏开发流程

发布时间: 2021-02-18 01:29:16

『壹』 如何制作简单的射击类(比CS还要简单的)游戏

射击类游戏(一)

第二部分开始类的编写:

1、首先打开Flash CS4 (CS3、CS4或CS5没什么大的区别)新建项目,按确定。打开项目面板。图:新建项目

2、点击右边的第一个三角按钮(项目),在下拉菜单中选"新建项目"。在弹出新建项目面板项目名称:填入项目名称。在根文件夹:项中点击右边的浏览按钮,浏览到准备存放项目的目录,按确定。在ActionScript版本:选ActionScript 3.0 。单击"创建项目"按钮,这样项目就建好了。图:项目面板

3、把AirRaid.fla文件复制到项目文件夹下(省去制作界面)。点击下面的"创建类"图标,在弹出的创建类面板类:的文本框中填入文件名:AirRaid 单击创建类按钮。这样类就创建好了并为我们写好了类的框架,我们可以在框架中添加我们的代码了。图:创建类

图:填入类名

图:类的框架

4、编写AirRaid.as类

AirRaid.as类:文档类 AirRaid类是游戏的控制器,绑定AirRaid.fla 。负责生成界面上的飞机、火炮、子弹。显示得分,子弹的剩余数量。注册了键盘按下,释放侦听器,接收用户的键盘操作。注册了进入帧事件侦听器,进行碰撞检测。定义一个飞机计时器,随机生成飞机。检测剩余子弹的数目,当子弹数为零时也就是主角死亡了,移除界面上的飞机,火炮,跳转到重玩按钮。
package {

public class AirRaid extends MovieClip {

private var aagun:AAGun;//火炮

private var airplanes:Array;//飞机数组

private var bullets:Array;//子弹数组

public var leftArrow, rightArrow:Boolean;

private var nextPlane:Timer;//不定时生成飞机的计时器

private var shotsLeft:int;//得分文本

private var shotsHit:int;//子弹数文本

// 初始化得分数和子弹数

// 生成炮加入到舞台上

// 生成飞机、子弹数组

// 键盘按下、释放事件侦听器

stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownFunction);

// 进入帧事件侦听器,检测子弹击中飞机的碰撞检测。

addEventListener(Event.ENTER_FRAME,checkForHits);

// 生成下一架飞机

setNextPlane();

}

//不定时生成飞机

public function setNextPlane() {

//1000毫秒至2000毫秒之间生成一架飞机

nextPlane.start();

}

public function newPlane(event:TimerEvent) {

// 随机的边、速度和高度

// 生成飞机

var p:Airplane = new Airplane(side,speed,altitude);

// 碰撞检测

}

}

if ((shotsLeft == 0) && (bullets.length == 0)) {

endGame();

}

}

// 按下键盘

public function keyDownFunction(event:KeyboardEvent) {

if (event.keyCode == 37) {

leftArrow = true;

} else if (event.keyCode == 39) {

rightArrow = true;

} else if (event.keyCode == 32) {

fireBullet();

}

}

// 释放键盘

public function keyUpFunction(event:KeyboardEvent) {

if (event.keyCode == 37) {

leftArrow = false;

} else if (event.keyCode == 39) {

rightArrow = false;

}

}

// 生成新的子弹

public function fireBullet() {

if (shotsLeft <= 0) return;

var b:Bullet = new Bullet(aagun.x,aagun.y,-300);

addChild(b);

bullets.push(b);

shotsLeft--;

showGameScore();

}

public function showGameScore() {

showScore.text = String("得分: "+shotsHit);

showShots.text = String("剩余子弹: "+shotsLeft);

}

// 从数组获取飞机

public function removePlane(plane:Airplane) {

for(var i in airplanes) {

if (airplanes[i] == plane) {

airplanes.splice(i,1);

break;

}

}

}

// 获取数组的一个子弹

public function removeBullet(bullet:Bullet) {

for(var i in bullets) {

if (bullets[i] == bullet) {

bullets.splice(i,1);

break;

}

}

}

// 游戏结束,移除界面上的东西。

public function endGame() {

// 移除飞机

for(var i:int=airplanes.length-1;i>=0;i--) {

airplanes[i].deletePlane();

}

airplanes = null;

aagun.deleteGun();

aagun = null;

// 移除侦听器

stage.removeEventListener(KeyboardEvent.KEY_DOWN,keyDownFunction);

stage.removeEventListener(KeyboardEvent.KEY_UP,keyUpFunction);

removeEventListener(Event.ENTER_FRAME,checkForHits);

nextPlane.stop();

nextPlane = null;

gotoAndStop("gameover");

}

}

}

5、编写AAGun.as类
创建类的方法同第3步。首先选中库中的AAGun元件,打开项目面板创建类。在"将类邦定到库元件"前面打勾,点下"使用所选库元件"的单选按钮。图:邦定库元件

AAGun类:邦定库中的炮元件,向左移动向右移动,检测边界,自动消毁。

package {

import flash.display.*;

import flash.events.*;

import flash.utils.getTimer;

public class AAGun extends MovieClip {

static const speed:Number = 150.0;

private var lastTime:int; // 控制移动的Timer

public function AAGun() {

// 枪的初始位置

this.x = 275;

this.y = 340;

//运动

addEventListener(Event.ENTER_FRAME,moveGun);

}

public function moveGun(event:Event) {

// 得到时差

var timePassed:int = getTimer() - lastTime;

lastTime += timePassed;

// 现在的位置

var newx = this.x;

// 移动到左边

if (MovieClip(parent).leftArrow) {

newx -= speed*timePassed / 1000;

}

// 移动到右边

if (MovieClip(parent).rightArrow) {

newx += speed*timePassed / 1000;

}

// 检测边界

if (newx < 10) newx = 10;

if (newx > 540) newx = 540;

// 更新位置

this.x = newx;

}

// 移除屏幕上的炮和事件

public function deleteGun() {

parent.removeChild(this);

removeEventListener(Event.ENTER_FRAME,moveGun);

}

}

}

新建文件Airplane.as
Airplane类:邦定库中的飞机元件。随机产生飞机,随机的速度,产生5种飞机样式,检测是否飞出边界,检测被子弹击中。自动毁灭和爆炸效果。

// 飞机的速度、方向

// 控制移动的Timer

//左右移动

//检测边界

// 检测碰撞,子弹击中飞机跳转到帧标签"explode"演示爆炸动画。

// 移除舞台上的飞机和事件

新建文件Bullet.as
Bullet类:邦定库中的子弹元件。控制子弹的飞行方向,检测子弹是否飞出屏幕。

package {

import flash.display.MovieClip;

import flash.events.Event;

import flash.utils.getTimer;

import flash.utils.Timer;

import flash.events.TimerEvent;
public class Bullet extends MovieClip {

private var dy:Number; // 子弹的速度、方向。

private var lastTime:int;
public function Bullet(x,y:Number, speed: Number) {

// 初始位置

this.x = x;

this.y = y;

// 得到速度

dy = speed;

// 动画

lastTime = getTimer();

addEventListener(Event.ENTER_FRAME,moveBullet);

public function moveBullet(event:Event) {

// 得到时差

var timePassed:int = getTimer()-lastTime;

lastTime += timePassed;

// 子弹运动

this.y += dy*timePassed/1000;

// 子弹越过屏幕的顶端

if (this.y < 0) {

deleteBullet();

// 移除舞台的子弹和事件

public function deleteBullet() {

MovieClip(parent).removeBullet(this);

parent.removeChild(this);

removeEventListener(Event.ENTER_FRAME,moveBullet);

所有的类文件完成保存后,回到AirRaid.fla场景,按Ctrl+Enter组合键测试,看看你的成果吧!

简单的学个Flash,很好学,还可以做动画,很有用。大型游戏要学VB或者C++,编得游戏画质不行。3DMAX是做特效的,你想做个游戏,不是一两年搞得了的,有专门教这个的班。

『贰』 第一人称射击类游戏发展历程

我随便说说吧,不引用大篇幅文章了。
PC上公认的FPS鼻祖是id公司92年发行的WOLF3D(德军总部3D),但那不是真正的3D引擎;

93年和94年id公司的DOOM,DOOM2是在全世界掀起FPS狂潮的里程碑:快速移动、血腥屠杀、绕迷宫找秘密,奠定了FPS游戏的发展方向;

96年1月,3D Realms公司发行《毁灭公爵3D》,以其独到的黑色幽默内容赢得了广大玩家的热烈喜爱,然而后来号称要发布的<永远的毁灭公爵>,却让玩家等了10几年,直到现在;

96年6月,id公司的《雷神之锤》(QUAKE)共享版发布,是史上第一款基于真正3D引擎的游戏,带来前所未有的视觉感受;

97年12月,id公司的《雷神之锤2》发布,3D引擎再次升级,将FPS的发展带入新的高度。特别说明一下,后来的《半条命》是Valve公司基于QUAKE1和QUAKE2引擎开发的,CS(反恐精英)是《半条命》的一个外挂模组(MOD),因为火爆至极,后来发行了独立版本。

99年12月,《雷神之锤3》发布,成为FPS史上近乎完美的巅峰作品,直到今天,全世界很多玩家已然乐此不疲,各种新地图,新玩法层出不穷,目前还有网页版本的QUAKE3,名为QUAKE LIVE;基于QUAKE3引擎的FPS游戏也在2000年到2004年火爆不止,大家耳熟能详的《重金属女战士》、《爱丽丝梦游仙境》、《荣誉勋章联合袭击》系列,《重返德军总部》,《使命召唤》系列,《命运战士2》,《星战绝地武士》系列,《星际迷航精英力量》系列等等FPS都是出自Q3引擎;

98年开始,EPIC GAMES公司开发的基于虚幻引擎的《虚幻》系列游戏发布,99发行《虚幻竞技场》系列,目前虚幻竞技场系列在PC平台已发行《虚幻竞技场》(99年)、《虚幻竞技场2003》(03年)、《虚幻竞技场2004》(04年)、《虚幻竞技场3》(07年),跨越了三代虚幻引擎,其他基于虚幻系列引擎的游戏从大约03年开始走向繁荣,至今佳作层出不穷。基于虚幻2代引擎的游戏主要有:《杀出重围:隐形战争》、《细胞分裂》系列、《喋血街头2》、《美国陆军》、《越战英豪》、《SWAT4》、《幽灵行动》、《彩虹六号3》、《星球大战共和国突击队》、《兄弟连》、《魔域反攻》、《红色管弦乐》、《战争之路》等等;基于虚幻3代引擎的游戏主要有:《战争机器1&2》、《彩虹六号:维加斯1&2》、《黑暗地带51区》、《荣誉勋章空降兵》、《质量效应1&2》、《生化奇兵1&2》、《枪神》、《兄弟连:地狱高速》、《潘多拉传奇》、《转折点:自由的陨落》、《镜之边缘》、《前线:战争燃料》、《汤姆克兰西战争终结》、《恐龙猎人》、《蝙蝠侠:阿甘疯人院》、《X战警:金刚狼》、《无主之地》、《美国陆军3》等等,看你玩过多少哈。
2004年,id发布DOOM3,引擎技术的革新带来了游戏里动态光影的画面和逼真慎人音效,成为FPS史上又一个里程碑,但是基于DOOM3引擎的游戏不多,主要就是05年的《雷神之锤4》,06年的《掠食者》,07年的《雷神战争》以及09年的《德军总部》。
2004同年,Valve发布了《半条命2》,采用Source引擎,基于该引擎的作品后来主要有《决胜之日:Source》,《反恐精英:Source》,《洞穴》、《军团要塞2》,《奇诺冲突》,《生存之旅1&2》、《喋血街头3》等等。
以上是主要FPS引擎的系列历史,另外很多大获成功FPS系列就不再详细介绍了,比如Infinity Ward开发的《使命召唤》系列,克罗地亚Croteam小组基于自主开发引擎的《英雄萨姆》系列,EA发行的《战地》和《荣誉勋章》系列,微软发行的《光晕》系列,DreamCatcher的《斩妖除魔》系列,育碧的汤姆克兰西系列,Novalogic的《三角洲》系列,采用Geo-Mod引擎的《红色派系》系列,采用Gamebryo引擎的《上古卷轴4》和《辐射3》系列等等等等,都是FPS史上很优秀的作品,若要了解FPS游戏,首先应该了解这些。

『叁』 如何制作一个电脑单机游戏,射击类的。

unity3D
学起来还算容易,无须大量代码。材质,灯光,贴图,骨骼,蒙皮,模型这些都要学,有免费版的下载,不坐商业发布的话没事,商业发布好像要给引擎公司分钱的。。。。

『肆』 基于DirectX2D射击游戏开发研究思路和方案

雷电。。。

『伍』 开发FPS游戏,需要哪些步骤详细。

要做一个游戏不是几个人就可以完成的,这需要大量的技术人员,很多游戏通关结束后会出版现职员权表,数不清的制作人员,而且通常要做好几年,还不包括资金。一个游戏制作组分为几个小组,有负责场景的,有负责人物设计的,有负责故事剧情的,有负责武器设计的,还有负责音乐制作的等等。但也有不那么复杂的,利用现成的引擎,国外有很多人利用半条命2的引擎做了很多游戏,加上自己做的mod就成了自己的游戏,这个只需要一个人就可以完成了。

『陆』 游戏编程的射击类游戏

这里所说的射击类,并非是类似《VR战警》的模拟射击(枪战),而是指纯粹的飞机射击,或者在敌方的枪林弹雨中生存下来,一般由玩家控制各种飞行物(主要是飞机)完成任务或过关的游戏。此类游戏分为两种,一叫科幻飞行模拟游戏(SSG=Science-Simulation Game),非现实的,想象空间为内容,如《自由空间》、《星球大战》系列等;另一种叫真实飞行模拟游戏(RSG=Real- Simulation Game),以现实世界为基础,以真实性取胜,追求拟真,达到身临其境的感觉。如《皇牌空战》系列、《苏-27》等等。另外,还有一些模拟其他的游戏也可归为STG,比如模拟潜艇的《猎杀潜航》,模拟坦克的《野战雄狮》等。STG也可以按照视角版面分为:纵版、横版、主观视角。
纵版:最为常见,如街机中的《雷电》、《鲛鲛鲛》、《空牙》等,都堪称经典之作。
横版:横轴射击,如《沙罗曼蛇》系列、《战区88》
主观视角:仿真,模拟战机就属此类。
一般指的是卷轴式射击游戏,出现的相当的游戏类型。纯2D STG的系统是在卷动的背景图片上,玩家自机的活动块与敌方子弹(和战机)的活动块,自机子弹的活动块和敌战机的碰撞计算。玩家在游戏中的目的就是获得最高分数的记录,或者是在敌方的枪林弹雨中成功存活。代表作品有彩京的《194X》系列,CAVE的《首领蜂》系列,IREM的《雷电》系列。伪3D的作品有《R-TYPE》系列,《雷霆战机》系列。

『柒』 怎么制作射击游戏

你是要做Flash小游戏还是什么?Flash的话可以去网上找找教程,应该不是很难。

如果你是要做那种单机游戏似的FPS射击游戏的话,你一个人就很困难了。

『捌』 怎样制作单机版射击类游戏

射击类游戏一直是Flash游戏制作中的一个热点,大多数Flash射击游戏都是都是纵版的,也就是游戏背景的前进方向是垂直的,这样的游戏已经司空见惯了。所以这次我们来制作一个横版的射击游戏,游戏背景和飞机的运动方向都是水平的。(本例的源文件下载请点击这里)

游戏运行后的主界面如图1所示:

图1

游戏说明:

此游戏玩家是以第一视角的模式来进行的,所谓第一视角就是游戏的界面相当于玩家的双眼,通过这样的形式,可以使游戏达到一种非常逼真的效果,仿佛您已经置身于激烈的游戏之中了。游戏中玩家可以使用鼠标控制屏幕中的瞄准镜,瞄准并射击从左边随机出现的敌机,飞机会以各种路线在空中飞行以避开你的射击,如果敌机被射中后,就会从空中跌落下来,相应的玩家会得一分,在游戏规定的100秒内,尽量击落更多的敌机。

制作步骤:

一:游戏中相应元件的制作

1.既然是空战游戏,自然少不了飞机,所以首先来制作游戏中的敌机。在影片中新建一个Graphic元件,,命名为gPlane,进入元件的编辑状态后,可以从外部导入一张飞机的图片,然后将其分离,稍稍加工一下即可。或者使用Flash提供的强大的绘图工具自己绘制一架飞机,如图2所示:

图2

有了飞机,还需要一个飞行员飞机才可以工作,所以再建一个Graphic元件,命名为gMan,进入元件编辑状态后,使用椭圆绘图工具绘制一个简单的人头即可,如图3所示:

图3

接下来就需要将飞机和飞行员组合到一起了,因为游戏中需要使用Action动作脚本对飞机进行控制,所以需要将最终的组合体制作成Movie clip元件,所以再新建一个Movie clip元件,进入元件的编辑状态后,将元件gMan和Gplane分别拖到编辑区,使用鼠标调整其相对位置,如图4所示:

图4

『玖』 第一视角射击类游戏开发

现代社会开发游戏都市直接使用引擎的。何况你们想用dx做个完整的游戏估计要回呛死你们。更何况是opengl,反正答我个人直接用opengl直接写个像蛇的东西都不行。如果要求快速,真心不推荐opengl,太底层了,写个正方体都要搞半天。
这个引擎是有的。而且很多,开源的tv3d比较好,
还有就是udk,cryengine3,unity3d都可以做的。