當前位置:首頁 » 游戲大全 » 射擊類游戲開發流程
擴展閱讀
天成解說一個人的游戲 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都可以做的。