这是什么2d射击太空类游戏游戏?

这是一个横版射击游戏。教程来自: 中文版教程:
教程文章已经详细地介绍实现过程,这里就不再复述,只做一些简单的笔记记录,以供备忘。
1.创建第一个场景
新建工程。接着在"Project"面板上创建如下文件夹:
接着在"Hierarchy"面板上创建多个空对象,形成以下结构:这些空对象的Position保持为(0, 0, 0)即可。保存场景,名称为"Stage1"。
2.添加显示背景
将背景图片放入"Textures"文件夹,确认这张图片的纹理类型,即"Texture Type"属性为"Sprite",如下图所示:
在场景中添加一个Sprite游戏对象,设置其"Sprite"属性为刚才导入的背景图片。重命名这个对象为"Background1",将其移动到"Level -& 0 - Background"里面,设置其"Position"为(0,
0, 0)。接着添加背景元素。导入平台图片到"Textures"文件夹,选中"platforms"图片,设置其"Sprite
Mode"为"Multiple",然后点击"Sprite Editor",如下图所示:
在弹出的"Sprite Editor"窗口中,进行绘制每个平台的包围矩形,以便将纹理分割成更小的部分。然后分别命名为"platform1"和"platform2",如下图所示:
创建一个新的Sprite游戏对象,设置其"Sprite"属性为"platform1"。再在创建新Sprite对象,设置其"Sprite"属性为"platform2"。将它们放置到"1
- Middleground"对象里,并且确认它们的Z坐标为0。将这两个对象从"Hierarchy"面板拖动到"Project"面板下的"Prefabs"文件夹,保存成预制对象。接着,为了避免显示顺序问题,修改下游戏对象的Z坐标,如下所示:
Z Position
0 - Background
1 - Middleground
2 - Foreground
此时,点击"Scene"面板上的2D到3D视图切换,可以清楚看到层次:
3.创建主角和敌人
导入主角图片到"Textures"文件夹,创建一个Sprite游戏对象,命名为"Player",设置其"Sprite"属性为刚才导入的主角图片。将此对象放入"2
- Foreground"层里,设置其Scale为(0.2, 0.2, 1)。接着,为主角添加盒碰撞体组件,点击"Add
Component"按钮,选择"Box Collider 2D",设置其Size为(10,
10),虽然这还是大于实际的区域,但已比图片小多了,如下图所示:
(可以通过按住Shift键,来调整绿色碰撞范围)
接着,再为主角对象添加"Rigidbody 2D"刚体组件,现在运行可以看到如下结果:
可以看到主角往下落了,这是因为刚体带有重力,但在这个游戏不需要用到,将"Gravity Scale"属性设为0即可。另外,不想因为物理而引起的主角旋转,则将"Fixed Angles"属性勾选上。完整的设置如下图所示:
开始准备让主角移动。在"Scripts"文件夹里,创建一个C#脚本,名称为"PlayerScript",实现让方向键移动主角,代码如下:
using UnityE/// &summary&
/// Player controller and behavior
/// &/summary&public class PlayerScript : MonoBehaviour
/// &summary&
/// 1 - The speed of the ship
/// &/summary&
public Vector2 speed = new Vector2(50, 50);
// 2 - Store the movement
private Vector2
void Update()
// 3 - Retrieve axis information
float inputX = Input.GetAxis("Horizontal");
float inputY = Input.GetAxis("Vertical");
// 4 - Movement per direction
movement = new Vector2(
speed.x * inputX,
speed.y * inputY);
void FixedUpdate()
// 5 - Move the game object
rigidbody2D.velocity =
这里以改变刚体的速率来达到主角的移动,而不是通过直接改变"transform.Translate",因为那样的话,可能会不产生碰撞。将此脚本附加到主角对象上,现在运行,方向键来控制移动,如下图所示:
接下来,添加第一个敌人。导入章鱼敌人图片到"Textures"文件夹,创建一个Sprite游戏对象,命名为"Poulpi",设置其"Sprite"属性为刚才导入的图片,设置"Scale"属性为(0.4,
0.4, 1),添加"Box Collider 2D"组件,其Size为(4, 4),添加"Rigidbody 2D"组件,其"Gravity
Scale"属性为0,并且勾选"Fixed Angles"属性框。将对象保存为预制。在这里只让章鱼简单地往前行,创建一个脚本,命名为"MoveScript",代码如下:
using UnityE/// &summary&
/// Simply moves the current game object
/// &/summary&public class MoveScript : MonoBehaviour
// 1 - Designer variables
/// &summary&
/// Object speed
/// &/summary&
public Vector2 speed = new Vector2(10, 10);
/// &summary&
/// Moving direction
/// &/summary&
public Vector2 direction = new Vector2(-1, 0);
private Vector2
void Update()
// 2 - Movement
movement = new Vector2(
speed.x * direction.x,
speed.y * direction.y);
void FixedUpdate()
// Apply movement to the rigidbody
rigidbody2D.velocity =
将此脚本附加到章鱼对象上,现在运行,可以看到章鱼往前移动,如下图所示:
此时如果将主角放在章鱼前面,两个对象将会产生碰撞,互相阻塞对方的移动。4.射击
导入子弹图片到"Textures"文件夹,创建一个Sprite游戏对象,命名为"PlayerShot",设置其"Sprite"属性为刚才导入的图片,设置"Scale"属性为(0.75,
0.75, 1),添加"Rigidbody 2D"组件,其"Gravity Scale"属性为0,并且勾选"Fixed Angles"属性框,添加"Box
Collider 2D"组件,其Size为(1, 1),并且勾选"IsTrigger"属性。勾选"IsTrigger"属性表示该碰撞体用于触发事件,并将被物理引擎所忽略。意味着,子弹将穿过触碰到的对象,而不会阻碍对象的移动,触碰的时候将会引发"OnTriggerEnter2D"事件。创建一个脚本,命名为"ShotScript",代码如下:
using UnityE/// &summary&
/// Projectile behavior
/// &/summary&public class ShotScript : MonoBehaviour
// 1 - Designer variables
/// &summary&
/// Damage inflicted
/// &/summary&
public int damage = 1;
/// &summary&
/// Projectile damage player or enemies?
/// &/summary&
public bool isEnemyShot = false;
void Start()
// 2 - Limited time to live to avoid any leak
Destroy(gameObject, 20); // 20sec
将此脚本附加到子弹对象上,然后将"MoveScript"脚本也附加到子弹对象上以便可以移动。保存此对象为预制。接着,让碰撞产生伤害效果。创建一个脚本,命名为"HealthScript",代码如下:
using UnityE/// &summary&
/// Handle hitpoints and damages
/// &/summary&public class HealthScript : MonoBehaviour
/// &summary&
/// Total hitpoints
/// &/summary&
public int hp = 1;
/// &summary&
/// Enemy or player?
/// &/summary&
public bool isEnemy = true;
/// &summary&
/// Inflicts damage and check if the object should be destroyed
/// &/summary&
/// &param name="damageCount"&&/param&
public void Damage(int damageCount)
hp -= damageC
if (hp &= 0)
Destroy(gameObject);
void OnTriggerEnter2D(Collider2D otherCollider)
// Is this a shot?
ShotScript shot = otherCollider.gameObject.GetComponent&ShotScript&();
if (shot != null)
// Avoid friendly fire
if (shot.isEnemyShot != isEnemy)
Damage(shot.damage);
// Destroy the shot
Destroy(shot.gameObject); // Remember to always target the game object, otherwise you will just remove the script
将此脚本附加到Poulpi预制体上。现在运行,让子弹和章鱼碰撞,可以看到如下结果:
如果章鱼的生命值大于子弹的伤害值,那么章鱼就不会被消灭,可以试着通过改变章鱼对象的"HealthScript"的hp值。接着,准备可以射击。创建一个脚本,命名为"WeaponScript",代码如下:
using UnityE/// &summary&
/// Launch projectile
/// &/summary&public class WeaponScript : MonoBehaviour
//--------------------------------
// 1 - Designer variables
//--------------------------------
/// &summary&
/// Projectile prefab for shooting
/// &/summary&
public Transform shotP
/// &summary&
/// Cooldown in seconds between two shots
/// &/summary&
public float shootingRate = 0.25f;
//--------------------------------
// 2 - Cooldown
//--------------------------------
private float shootC
void Start()
shootCooldown = 0f;
void Update()
if (shootCooldown & 0)
shootCooldown -= Time.deltaT
//--------------------------------
// 3 - Shooting from another script
//--------------------------------
/// &summary&
/// Create a new projectile if possible
/// &/summary&
public void Attack(bool isEnemy)
if (CanAttack)
shootCooldown = shootingR
// Create a new shot
var shotTransform = Instantiate(shotPrefab) as T
// Assign position
shotTransform.position = transform.
// The is enemy property
ShotScript shot = shotTransform.gameObject.GetComponent&ShotScript&();
if (shot != null)
shot.isEnemyShot = isE
// Make the weapon shot always towards it
MoveScript move = shotTransform.gameObject.GetComponent&MoveScript&();
if (move != null)
move.direction = this.transform. // towards in 2D space is the right of the sprite
/// &summary&
/// Is the weapon ready to create a new projectile?
/// &/summary&
public bool CanAttack
return shootCooldown &= 0f;
将这个脚本附加到主角对象上,设置其"Shot Prefab"属性为"PlayerShot"预制体。打开"PlayerScript"脚本,在Update()方法里面,加入以下片段:
void Update()
// 5 - Shooting
bool shoot = Input.GetButtonDown("Fire1");
shoot |= Input.GetButtonDown("Fire2");
// Careful: For Mac users, ctrl + arrow is a bad idea
if (shoot)
WeaponScript weapon = GetComponent&WeaponScript&();
if (weapon != null)
// false because the player is not an enemy
weapon.Attack(false);
当收到射击的按钮状态,调用Attack(false)方法。现在运行,可以看到如下结果:
接下来,准备创建敌人的子弹。导入敌人子弹图片到"Textures"文件夹,选中"PlayerShot"预制体,按下Ctrl+D进行复制,命名为"EnemyShot1",然后改变其Sprite为刚才导入的图片,设置其Scale为(0.35,
0.35, 1)。接着,让章鱼可以射击。将"WeaponScript"脚本附加到章鱼对象上,拖动"EnemyShot1"预制体到其"Shot
Prefab"属性,创建一个脚本,命名为"EnemyScript",用来简单地每一帧进行自动射击,代码如下:
using UnityE/// &summary&
/// Enemy generic behavior
/// &/summary&public class EnemyScript : MonoBehaviour
private WeaponS
void Awake()
// Retrieve the weapon only once
weapon = GetComponent&WeaponScript&();
void Update()
// Auto-fire
if (weapon != null && weapon.CanAttack)
weapon.Attack(true);
将此脚本附加到章鱼对象上,如下图所示:
现在运行,可以看到如下结果:
可以看到章鱼向右射击了子弹,这是因为代码就是让它那么做的。实际上,应该做到可以朝向任何方向射击子弹。在这里,创建一个空对象,命名为"WeaponObject",删除章鱼预制体身上的"WeaponScript"脚本,将"WeaponScript"脚本附加到"WeaponObject"对象上,并且拖动"EnemyShot1"预制体到其"Shot
Prefab"属性,设置"WeaponObject"对象的"Rotation"属性为(0, 0, 180),然后保存为预制,如下所示:
接着,修改"EnemyScript",代码为如下:
using System.Collections.Gusing UnityE/// &summary&
/// Enemy generic behavior
/// &/summary&public class EnemyScript : MonoBehaviour
private WeaponScript[]
void Awake()
// Retrieve the weapon only once
weapons = GetComponentsInChildren&WeaponScript&();
void Update()
foreach (WeaponScript weapon in weapons)
// Auto-fire
if (weapon != null && weapon.CanAttack)
weapon.Attack(true);
可以适当调整子弹的移动速度,它应该快于章鱼的移动速度。现在运行,如下图所示:
按这种方式,可以轻易实现多个方向的射击。复制添加一个"WeaponObject"对象,让这两个"WeaponObject"对象的旋转不同即可。现在主角被章鱼攻击到,但是没有任何伤害。将"HealthScript"脚本附加到主角对象上,确保"Is Enemy"属性不被勾选。现在运行,可以看到如下结果:
目前,当主角和章鱼碰撞时,仅仅只是阻碍对方的移动而已,在这里改成互相受到伤害。打开"PlayerScript"文件,添加如下代码:
//PlayerScript.cs
//....void OnCollisionEnter2D(Collision2D collision)
bool damagePlayer = false;
// Collision with enemy
EnemyScript enemy = collision.gameObject.GetComponent&EnemyScript&();
if (enemy != null)
// Kill the enemy
HealthScript enemyHealth = enemy.GetComponent&HealthScript&();
if (enemyHealth != null) enemyHealth.Damage(enemyHealth.hp);
damagePlayer = true;
// Damage the player
if (damagePlayer)
HealthScript playerHealth = this.GetComponent&HealthScript&();
if (playerHealth != null) playerHealth.Damage(1);
至此,一个基本的射击游戏完成。,将进行增强表现,完善游戏。
Unity 2D 入门
原文:Introduction to Unity 2D
作者:Sean Duffy
译者:kmyhy
3/15/17 更新说明: 升级至 Unity 5.5。Unity 是一个非常流行和强...
Unity 4.3 制作一个2D横版射击游戏(2)
在上一篇《Unity
4.3 制作一个2D横版射击游戏》时,已经完成一个基本的射击游戏了。在这一篇将继续完善。
1.视差卷轴效果
为了达到这种视差卷轴的效果,可以让背景层以不同的速度进行移...
unity学习之子弹发射
欢迎来到unity学习教育专区,这里有丰富的unity资源,相信一定可以给你带来收获
今天我们根据昨天的知识讲了怎样发射子弹,并让子弹把墙打到
效果图如下:
unity 2D中的向着鼠标点击方向进行射击
在做一个地牢游戏时,我的玩家原型是一个魔法师一样的角色,他的攻击方向是由鼠标点击方向决定的。然而在这个问题上,我犯了很多错误,自己也很焦躁,到最后,才发现,其实只需要知道鼠标在屏幕上的点击位置(用In...
【Unity3D实战】零基础一步一步教你制作酷跑类游戏(1)
引导零基础的朋友尝试使用Unity3D制作酷跑类游戏,由于笔者能力不足,只能分享一些自己刚入门时的经验给各位朋友。本文对已经熟通此道的朋友可能没有多少帮助,但是还是欢迎这些朋友进来为本文纠错。
【Unity3D实战】零基础一步一步教你制作跑酷类游戏(填坑完整版)
在两个月前曾写了一篇《【Unity3D实战】零基础一步一步教你制作跑酷类游戏(1)》,里面一步一步演示了制作跑酷类游戏,然而由于时间原因,只写到了让角色往前移动为止。这个坑一直没有时间去填,(虽然也没...
「Unity2D」使用Unity创建一个2D游戏系列-3
创建玩家和敌人
在上一章节里,我们添加了一个背景以及场景小道具。现在是时候添加一些有用的游戏元素了,比如玩家之类的。
创建一个玩家可控实体需要一些元素:sprite, 控制...
Unity枪击游戏之实现子弹伤害
&Bullet&: public int damage = 60;///定义Bullet的伤害值为60 void Start()
Destroy(t...
没有更多推荐了,  作为游戏中最古老的类型之一,传统意义上的2D射击游戏最早可以追溯到1962年,当时麻省理工学院的几名学生在PDP-1小型机上完成了这款名为《Space War》的游戏,通过当时最先进的阴极射线管显示器来显示画面。
  虽然构成这款游戏的元素只是最为简陋的点和线,但游戏本身在设计上绝对是划时代的。玩家需要用一组专用的控制器操作飞船旋转对战,使用导弹和激光两种武器相互击毁对方,同时避免碰撞星球,而游戏中模拟出的宇宙空间里引力、加速度、惯性等物理特性一应俱全,还有随机出现的超高速移动空间&&某种意义上来说这些已经覆盖了后来射击游戏的大部分基础要素。
1962年诞生的《Space War》尽管简陋,但在理念上已经具备射击游戏的大部分框架。
射击游戏的缘起
  在《Space War》诞生后又经历了十余年的时间,电子游戏终于走出实验室而成为大众化的娱乐,70年代末美国出现了首次的街机游戏热潮,而这当中率先打响第一枪的作品同样也是一款射击游戏:1978年的《太空侵略者》(Space Invaders)。
  《太空侵略者》身为射击游戏,甚至电子游戏的始祖之一,其经典意义早已可以写进游戏史,游戏中&侵略者&的图案更是像素时代游戏的象征符号之一,游戏最初由日本的Taito公司所开发,设计者西角友宏在自己1972年的作品&Space Monsters&的基础上加以改进,加入了至关重要的&射击&操作,允许玩家主动远程攻击电脑,区别于当初市场上普遍以&回避&和&碰撞&为主要游戏方式的作品,从此正式宣告了一类新作,射击游戏的诞生。
  当《太空侵略者》取得成功后,立刻出现了大量仿效之作&&说的不客气点,那一两年内的同类作品基本都是直接抄的,譬如一年后南梦宫(Namco)的《小蜜蜂》(Galaxian)就几乎只是把《太空侵略者》的细节美化一下,就变成了自家的新作。不过也正是因为更多人的参与,让射击游戏在短期内很快成熟起来,进一步带动了整个游戏领域的创新。1980年由著名游戏制作人尤金&贾维斯(Eugene Jarvis)开发的另一款射击游戏《防卫者》(Defender)不但首次在传统的竖版外提出了横版的创意,更是第一个突破固定窗口,实现卷轴式背景的作品,让游戏画面随着玩家移动不断拉伸出新的版面,显然这为之后的所有游戏都打下了一个重要基础。
  整个70年代末至80年代初,美国街机市场的黄金年代,射击游戏都占据着重要的统治地位,完全可以说这一游戏类型与生俱来就属于街机厅。然而1983年的雅达利崩溃事件让美国游戏市场进入寒冬,街机产业也大幅度衰退,所幸的是此时在大洋彼岸的日本本土,任天堂和它的红白机FC已经崛起,射击游戏从此走向另一个新的市场。
太空侵略者的这些像素符号已经和俄罗斯方块、吃豆人等一样成为特定象征。
机遇、发展和巅峰
  1984年,在FC诞生后的第二年,上面开始首次出现第三方的游戏。作为当初率先加入任天堂阵营的几个名字之一,南梦宫在FC上推出的第一款游戏正是移植自街机版的《小蜜蜂》,而在年底11月08日,南梦宫把他们在1982年发售的街机游戏《铁板阵》(Xevious)也移植到了FC上,而这款第一个出现竖版卷轴移动的射击游戏随即为南梦宫带来了丰厚回报,短短几个月内就大卖150万份,最终成为FC历史上销量最高的射击游戏,影响力可以和南梦宫的另一名作《吃豆人》相比,以至于在第二年南梦宫总部的新办公楼落成时,业内人士都认为这是得益于前一年几款游戏的成功而将其戏称为&铁板阵大楼&。
  而FC的成功也让更多厂商在开发街机版的射击游戏之外,更多考虑将作品移植到家用机上,从FC到后来的SFC,以及MD、PC-E等更多平台,相辅相成。整个八十年代到九十年代初,早期的重要游戏厂商几乎都多少推出过射击游戏,不少作品之后也都成为自家的代表品牌之一,如Capcom的《1942》系列,Hudson的《星际战士》(Star Soldier)系列等,而如《B计划》、《究极虎》、《红巾特攻队》等也是老玩家一定还记忆犹新的名字。当然这其中最出色的作品则还是要数Konami的《宇宙巡航机》(Gradius)及外传《沙罗曼蛇》系列,从画面音乐到关卡系统都可谓当时横版射击游戏的巅峰之作。
  与此同时在街机市场,射击游戏同样迎来了飞速发展,除了《宇宙巡航机》外,当时街机上的优秀射击作品还包括《太空战斗机》(Darius)、《异形战机》(R-TYPE)、《闪电出击》(THUNDER FORCE)等几大系列,都在相当长的一段时间内持续推出新作并移植多家平台。而进入九十年代后,一些主攻街机的厂商同样开始崛起,如Video System的《四国战机》、SEIBU的《雷电》,以及从Video System分离出来的彩京,在1992年推出首个游戏《战国ACE》之后,之后几年里陆续以《武装飞鸟》、《零式战机》,到集大成的代表作《打击者1945》系列,同样是不少玩家在街机厅里熟悉的作品。
  1991年,Capcom的《街霸2》问世,一如当年《太空侵略者》诞生的意义一样,《街霸2》的成功也催生了格斗游戏的兴起,大大挤占了街机厅里原本属于射击游戏的空间。而随着游戏3D化时代不可避免地到来,更进一步加剧了2D射击游戏的衰退。从1995年开始,街机上射击游戏的数量开始急速下滑,让位给格斗游戏,反而是家用机方面,因为SS在3D性能上无法和PS抗衡,剑走偏锋式的收罗了不少射击游戏的优秀之作如《武装飞鸟》、《苍穹红莲队》、《闪亮银枪》等。
作为街机厅曾经的霸主,射击游戏需要难度留住玩家,也最终因为难度失去玩家。
弹幕游戏的异军突起
  而这期间值得特别提及的一个新名字是Cave,作为后起之秀,尽管他们在1995年才推出第一款射击游戏《首领蜂》,但在1997年的《首领蜂》之后,他们则为长期以来固定不变射击游戏带来了一个新的突破点:弹幕。
  弹幕游戏从本质上来说,依然是射击游戏,区别只在于玩家不再一定是要消灭敌人,而是以躲避为优先,在BOSS发出的大量密集子弹中寻找缝隙,灵活闪避以追求无伤通关,很多作品甚至可以不射击等待BOSS自爆来增加分数和难度。Cave在这一思路下开发出了不少自成一系的射击作品,《怒首领蜂》以及之后的《大往生》、《虫姬》等作品都沿袭了这种风格,在2001年后其余老牌厂商陆续消失或转型的时代一直坚持扛起了传统街机射击游戏的大旗,一度被誉为当时射击游戏的巅峰,2011年还被吉尼斯世界纪录认证,成为世界上做出最多弹幕游戏的制作厂商。
  而对整个业界来说,弹幕游戏也随着Cave的成功开始影响其它制作者,在同人游戏领域,大家最熟悉的自然就是东方Project系列,由日本同人游戏开发者ZUN(本名太田顺也)完成的这系列作品从1997年的第二作《东方封魔录》开始,正式变为竖版射击游戏,也从此开始了东方游戏的弹幕传统,而和Cave游戏如暴风雨一样的火力压制弹幕相比,东方游戏的弹幕更注重华丽内涵,和角色本身之间的意义联系,不过难度上同样少不了,最高难度下要想一命通关同样只有少数&大触&才能做到。
  在日本同人,甚至二次元领域,东方本身也早发扬壮大成为一种独立的文化名词,尽管东方的魅力来自各个方面,但游戏本体依然是最主要的承载者,每次新作问世之前同样有大量爱好者去期待,包括外传作品的格斗游戏在内也有独特的弹幕对战,很多人一说起弹幕首先想到的就是东方系列,哪怕他们对射击游戏本身未必有太多兴趣。
作为同人游戏的一个奇迹,东方系列游戏在不同意义上发展成另外的文化。
向射击游戏说再见
  时至今日,当FPS取代了STG,传统2D射击游戏的没落已经是不言自喻的事实,一度曾独力坚持的Cave也因为财政亏损问题,在2013年5月发售了Xbox360上的告别作《怒首领蜂最大往生》后,宣布转型开发手游及社交游戏。这期间虽然仍有《斑鸠》、《式神之城》、《宇宙巡航机5》等不同意义上的佳作,但对整体市场来说毫无帮助。
  日本街机市场衰退,3D游戏的兴起,玩家类型的演变&&对于射击游戏的没落不难找到一系列原因,而和其他游戏同样面临这些问题时相比,射击游戏更缺乏任何应变的手段。作为最古老的游戏类型,射击游戏足够&简单&,让它易于开发的同时,也在短时间就接近完成,80年代初期的几款作品就已经出现了之后射击游戏的大部分基本元素。后来者能提升的部分只有画面音乐或是通关难度,而无法触及游戏更核心的东西,而当玩家厌倦了射击游戏概念本身后,无法迎来进化的射击游戏就必然走向没落。
  没有必要为此特别惋惜什么,2DSTG本身就是一个特定时代下的历史名词,更何况没落并不意味着消失,如东方这样的同人游戏,或是独立游戏领域里仍有不少开发者,一如当年的考量,因为&简单&而选择开发射击游戏,在手游平板等新兴的移动平台上也同样有&简单&的射击游戏依然能吸引大量新人参与。只要玩家还偶尔乐于从最基本的移动和射击中寻找乐趣,射击游戏就依然会在你我身边。2D版射击游戏,,蛋疼,但意外的好玩。。。。。。。。。。【战地2吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:121,117贴子:
2D版射击游戏,,蛋疼,但意外的好玩。。。。。。。。。。
Aries_Masurao、洛皇24、说谎的人有苦衷. . . 被楼主禁言,将不能再进行回复
战舰世界战争艺术网游展现电影级战争视觉冲击,重现二战,现在注册更有168新手特权礼包!战舰世界大舰巨炮才是男人的浪漫,300艘二战名舰,40场经典海战,3000万玩家与您大洋激战
哈哈 挺有意思 周末下来玩玩
LZ做的么,很不错啊
别人做的。作者---背刺
10年前的小游戏了
亮了……中国人做外文游戏
LZ2B 是CS2D
切~~~~~~~~~
垃圾!!!
我有史上最好玩的cf2D 连杀敌数都有
连捡枪和扔枪和各个枪的上镗声音都不一样
想玩的 可以问我要!!!!
你那个背刺 就一个垃圾货 老子的cf2D最牛B!!!
别内涵了快把衣服穿上别冻着了
贴吧热议榜
使用签名档&&
保存至快速回贴}

我要回帖

更多关于 微软游戏2d射击 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信