lungone shot游戏戏怎样射击

如何制作简单的射击类(比CS还要简单的)游戏_百度知道
如何制作简单的射击类(比CS还要简单的)游戏
不要太复杂,入门级的即可,和CS差不多的那种。
我有更好的答案
不定时生成飞机的计时器
private var shotsLeft:/ &#47,接收用户的键盘操作。这样类就创建好了并为我们写好了类的框架;创建类&图标.fla文件复制到项目文件夹下(省去制作界面)。点击下面的&quot。负责生成界面上的飞机、火炮;/ 初始化得分数和子弹数
private var nextPlane。package {
public class AirRaid extends MovieClip {
private var aagun:AAG// 按下键盘
public function keyDownFunction(
public function newPlane(event.keyCode == 37) {
leftArrow =
} else if (event:Boolean,checkForHits),这样项目就建好了。图:项目面板3、把AirR 生成飞机。打开项目面板。图:新建项目2、点击右边的第一个三角按钮(项目);/1000毫秒至2000毫秒之间生成一架飞机
nextPlane,当子弹数为零时也就是主角死亡了:TimerEvent) {
&#47。注册了键盘按下;/// 进入帧事件侦听器,检测子弹击中飞机的碰撞检测。
addEventListener(Event.as类,释放侦听器;/得分文本
private var shotsHit,在弹出的创建类面板类:的文本框中填入文件名、子弹。显示得分, rightArrow,移除界面上的飞机,火炮;/&#47,跳转到重玩按钮; 生成飞机
var p:Airplane = new Airplane(不定时生成飞机
public function setNextPlane() {
/ 生成下一架飞机
setNextPlane();
/&#47:KeyboardEvent) {
if (event,子弹的剩余数量,在下拉菜单中选&新建项目&.KEY_DOWN,keyDownFunction),进行碰撞检测。定义一个飞机计时器,随机生成飞机:T
} else if (event.keyCode == 32) {
fireBullet();
// 释放键盘
public function keyUpFunction(event:KeyboardEvent) {
if (event.keyCode == 37) {
leftArrow =
} else if (event.keyCode == 39) {
rightArrow =
// 生成新的子弹
public function fireBullet() {
if (shotsLeft &= 0)
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);
// 获取数组的一个子弹
public function removeBullet(bullet:Bullet) {
for(var i in bullets) {
if (bullets[i] == bullet) {
bullets.splice(i,1);
// 游戏结束,移除界面上的东西。
public function endGame() {
// 移除飞机
for(var i:int=airplanes.length-1;i&=0;i--) {
airplanes[i].deletePlane();
airplanes =
aagun.deleteGun();
// 移除侦听器
stage.removeEventListener(KeyboardEvent.KEY_DOWN,keyDownFunction);
stage.removeEventListener(KeyboardEvent.KEY_UP,keyUpFunction);
removeEventListener(Event.ENTER_FRAME,checkForHits);
nextPlane.stop();
nextPlane =
gotoAndStop(&gameover&);
}5、编写AAGun.as类创建类的方法同第3步。首先选中库中的AAGun元件,打开项目面板创建类。在&将类邦定到库元件&前面打勾,点下&使用所选库元件&的单选按钮。图:邦定库元件AAGun类:邦定库中的炮元件,向左移动向右移动,检测边界,自动消毁。package {
import flash.display.*;
import flash.events.*;
import flash.utils.getT public class AAGun extends MovieClip {
static const speed:Number = 150.0;
private var lastTime: // 控制移动的Timer public function AAGun() {
// 枪的初始位置
this.x = 275;
this.y = 340; //运动
addEventListener(Event.ENTER_FRAME,moveGun);
} public function moveGun(event:Event) {
// 得到时差
var timePassed:int = getTimer() - lastT
lastTime += timeP // 现在的位置
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; // 更新位置
} // 移除屏幕上的炮和事件
public function deleteGun() {
parent.removeChild(this);
removeEventListener(Event.ENTER_FRAME,moveGun);
} }新建文件Airplane.asAirplane类:邦定库中的飞机元件。随机产生飞机,随机的速度,产生5种飞机样式,检测是否飞出边界,检测被子弹击中。自动毁灭和爆炸效果。// 飞机的速度、方向
// 控制移动的Timer
//左右移动 //检测边界 // 检测碰撞,子弹击中飞机跳转到帧标签&explode&演示爆炸动画。 // 移除舞台上的飞机和事件 新建文件Bullet.asBullet类:邦定库中的子弹元件。控制子弹的飞行方向,检测子弹是否飞出屏幕。package {
import flash.display.MovieC
import flash.events.E
import flash.utils.getT
import flash.utils.T
import flash.events.TimerE
public class Bullet extends MovieClip {
private var dy:N // 子弹的速度、方向。
private var lastTime:
public function Bullet(x,y:Number, speed: Number) {
// 初始位置
// 得到速度
lastTime = getTimer();
addEventListener(Event.ENTER_FRAME,moveBullet); public function moveBullet(event:Event) {
// 得到时差
var timePassed:int = getTimer()-lastT
lastTime += timeP // 子弹运动
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是做特效的,你想做个游戏,不是一两年搞得了的,有专门教这个的班。,altitude); 碰撞检测
if ((shotsLeft == 0) && (/火炮
private var airplanes:A&#47:选ActionScript 3;子弹数文本
&#47、子弹数组
/&#47:填入项目名称。在根文件夹:项中点击右边的浏览按钮,浏览到准备存放项目的目录;/子弹数组
public var leftArrow,按确定; 生成炮加入到舞台上
/&#47.start();/ 随机的边、速度和高度
/&#47。检测剩余子弹的数目;
/&#47,按确定.ENTER_FRAME.keyCode == 39) {
rightArrow =
/&#47:文档类
AirRaid类是游戏的控制器,绑定AirRaid.fla 。在ActionScript版本 射击类游戏(一)第二部分开始类的编写:1、首先打开Flash CS4 (CS3.length == 0)) {
endGame();
&#47、CS4或CS5没什么大的区别)新建项目,speed、释放事件侦听器
stage.addEventListener(KeyboardE 键盘按下;/飞机数组
private var bullets:A&#47:int。注册了进入帧事件侦听器,我们可以在框架中添加我们的代码了。图:创建类 图:填入类名图:类的框架4、编写AirRaid.as类AirRaid:AirRaid 单击创建类按钮.0 。单击&创建项目&按钮。在弹出新建项目面板项目名称
采纳率:35%
没有,cs可能是最基础的射击游戏了,楼主你不会连操控都不会吧,那你就别玩fps了,不会按键盘你想玩好点的是不可能的……
为您推荐:
其他类似问题
射击类的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。丧心病狂的Nerf N-Strike Longshot CS-6 远程射击玩具_开箱晒物_什么值得买
丧心病狂的Nerf N-Strike Longshot CS-6 远程射击玩具
&Amazon.com: Nerf N-Strike Longshot CS-6: Toys & Games&Nerf N-Strike Longshot CS-6,俗称黄狙。不属于精英系列,所以射程很渣,抛物线10米都达不到。那为啥会买呢?8月份的时候,香港反斗城特价,499港币,50%,249.5港币。但是发现滴太晚,但剁手欲给勾起来了,只得深水宝买了一把。外包内包说明1说明2全长接近1米,的确很霸气。后弹夹是另外加上的,非盒装内。前管可以拆下,单发单独发射。后托可伸缩。上手试射几发,距离简直不能忍,抛物线10米都没有,加上前管更是惨不忍睹。还好事先了解了,深水宝上买了改件。&欢迎前来淘宝网选购热销飞镖/射击/射箭类-户外/娱乐/运动-3-6岁-玩具/童车/益智/积木/模型商品ACC NERF 发射器 弹簧替换套件 长狙黄狙僵狙 longshot,想了解更多ACC NERF 发射器 弹簧替换套件 长狙黄狙僵狙 longshot,请进入ddyzyl13的店铺,更多飞镖/射击/射箭类-户外/娱乐/运动-3-6岁-玩具/童车/益智/积木/模型商品任你选购&改件拆改过程也还算比较方便,顺便拆下支,为后续改下拉做准备。整个改装其实蛮快,就是螺丝拧的累手,琢磨着张大妈上什么时候推个好点的电。ACC的不需要清楚空保的外圈,比WILL的感觉方便一些。就是后来改好发现弹夹和推杆有公差,懒得打磨了。改装时细小的弹簧真心要当心别掉了。前后大概用了90分钟,改装完成。在家里射程无法发挥,但是这轰轰烈烈的气缸声音,太霸气了,不过单手拉上膛明显费力了。找地方试射一下,四下无人。黑线是射击线,有风,近的3发是加上前管的,远的3发是为加前管的。最远大概能达到35米了。想要远距离精确射击还是非常不靠谱的,不过玩玩还是不错的。接下来随便聊聊改造:第一次改nerf,也是摸索着一知半解。根据卖家的教程,一步步来做,是不难的。但是要注意螺丝和弹簧,否则掉了一个,再想找出来或者重配一个就是件麻烦事了。个人建议,把螺丝侧整个和螺丝一起拿下来,把螺丝留在孔位内,这样不容易搞混。另外,改造对于nerf来说,是一个破坏性不可逆过程,对黄狙来说要暴力拆除空保,有一定的几率让报废。而现代工艺生产的塑料件,在强力弹簧的作用下,也更容易损坏,尽量不要放空枪。优点:很长,很厚实,很重,可以拿来挂墙上镇宅。前后可拆开作为2把枪。改装后射程非常远,改装后射程非常远,改装后射程非常远(以nerf来说)。缺点:改装后巨大,近距离可能造成伤害。新到的配件,和黄狙一样继续存着,长大给娃玩,哇哈哈哈!
本文著作权归作者本人和什么值得买共同所有,未经许可不得转载。文章仅代表作者看法,如有更多内容分享或是对文中观点有不同见解,值客原创欢迎您的投稿。
推荐关注:
鼠标移到标签上方,
尝试关注标签~
相关热门原创
作者其他原创(35)
赞22评论18
赞12评论10
pple 苹果 HomePod 智能音箱
小度在家 智能视频音箱
Lynk & Co 领克 01(三天使用权)
SteelSeries 赛睿 Sensei 310/Rival 310 游戏鼠标(随机发货)
森然播吧二代电音版
优必选Alpha Ebot
【轻众测】飞利浦 便携迷你USB桌面旅行插座
赞116评论170
赞46评论91
赞60评论55
赞550评论210
赞416评论177
赞386评论81
赞311评论113
赞251评论60
扫一下,分享更方便,购买更轻松
用户名/邮箱
两周内免登录魔兽世界射击猎人玩法_百度知道
魔兽世界射击猎人玩法
我喜欢射击猎人,射击猎人怎么玩好?还有天赋,有些技能都不会用,说明一下各个技能的用处或键位,就是把技能摆放好,挨个放就行的那种。
我有更好的答案
并且按键按起来要清脆! 除了键盘之外,把你最常用的技能绑在鼠标滑轮的上滚和下滚,你可以用aimed shot或者奥术射击。 练习你的跑位, 让他不要过多的影响你的DPS! 比如在十字军试炼,大家被雪怪撞飞到墙脚;cast Silencing Shot /cast [target=pettarget。 多次按键间隔=放大延误(按对键,按对正确的好键) 这是几个最好用的键;cast Kill Shot(Rank 3)
奇美拉射击宏(加入沉默射击,比分开使用能制造更多伤害
饰品激活和你意识到这一点之间是有时间差的! 使用heatsink插件来检测饰品的CD。还有其他一些类似的插件。 当饰品快要冷却好了的时候,插件就会显示它的最后几秒冷却时间,你也会想提前知道各种突发事件(所能带来的伤害提升)。但是注意,这些键是会用坏变的不灵敏的。 把合适的技能放在合适的按键。 不要临时。像猎人;cast Silencing Shot /cast Serpent Sting(Rank 12) /cast [target=pettarget,exists] Kill Command
稳固射击宏(加入沉默射击,击杀命令) #showtooltip Steady Shot /cast !auto shot /cast Silencing Shot /cast [target=pettarget,exists] Kill Command /cast Steady Shot
奥术射击宏(加入沉默射击,击杀命令, tar的目标是boss的名字,可以根据战斗须要自行改动,方便跑位混乱时补DPS) #showtooltip Arcane Shot /tar Algalon /tar Snaplasher /petattack Algalon /petattack Snaplasher /cast Arcane Shot 地面目标宏 (使锁定地面范围的圈圈不乱变动大小)
照明弹宏 /cast !Flare
乱射宏 /cast !Volley(Rank 6)
冰冻之箭宏 /cast !Freezing Arrow 大技能宏
准备就绪宏 (加入沉默射击,击杀命令) #showtooltip Readiness /cast Silencing Shot /cast [target=pettarget,exists] Kill Command /cast Readiness
急速射击宏 有两种,一种带有所有能使用的大技能包括宠物的狂野召唤和野性魔法药水,一种不带。这是因为在一场战斗中,一些技能你可能只能使用一次,你也许想把他们留到效果最好的时候,比如嗜血)
急速射击宏 (加入狂暴,沉默射击,狂野召唤,野性魔法药水(可称为大急速)) #showtooltip Rapid Fire /cast Berserking /cast Rapid Fire /cast Silencing Shot /cast Call of the Wild /use Potion of Wild Magic /cast Steady Shot
急速射击宏 (加入狂暴,沉默射击,用于非嗜血阶段(例如上文Lord J例子中的第一次叠加使用大技能)(小急速)) #showtooltip Rapid Fire /cast Berserking /cast Silencing Shot /cast Rapid Fire /cast Steady Shot 守护宏 (都是很类似的可以自己随意更改)
蝰蛇/龙鹰守护切换宏 /castsequence Aspect of the Viper, Aspect of the Dragonhawk
野性/龙鹰守护切换宏 /castsequence Aspect of the Wild, Aspect of the Dragonhawk
猎豹/龙鹰守护切换宏 /castsequence Aspect of the cheetah, Aspect of the Dragonhawk
豹群/龙鹰守护切换宏 /castsequence Aspect of the Pack, Aspect of the Dragonhawk 宠物控制宏
战斗中切换目标集火宏 (上标记,宠物协助攻击) #showtooltip Hunter's Mark /cast Hunter's Mark /petdefensive /petattack 人们低估了切换防御/被动的重要性。
宠物停止攻击撤退宏 /petdefensive /petpassive /cast Dive /cast Dash
主人召唤宏 (停止攻击,潜行/疾跑回到主人身边) #showtooltip Master's Call /petdefensive /petpassive /cast [target=CHARACTERNAME] Master's Call /cast Dive /cast Dash 其他宏
误导宏 (战斗前使用杀戮命令,通知队友误导信息) #showtooltip Misdirection /cast [target=Focus] Misdirection /cast Kill Command /e casts misdirect on %F 更多的杀戮命令=更多的伤害
爆炸陷阱宏 (加入杀戮命令) #showtooltip Explosive Trap /cast Explosive Trap(Rank 6) /cast Kill Command
糖宏 (不同种类的糖都列了,有哪种吃哪种,要根据自己放糖的位置改动哦) /use item:36894 /use item:36893 /use item:36892 /script UIErrorsFrame:Clear()
取消威慑/保护宏 (在威慑/被丢保护祝福情况下不能进行物理攻击,此宏是为了危险解除后尽快回到战斗中去) /cancelaura Deterrence /cancelaura Hand of Protection
协助队友奥术射击宏 #showtooltip Arcane Shot /assist FRIEND /cast arcane shot PVE键位设置 q 左 w 前 e 右 空格 跳 tab 切换最近敌人 c 人物栏 t 回复 ~ 毒蛇钉刺 1 瞄准射击 alt+1 多重射击 2 奥术射击 alt+2 小急速 3 猎人标记宏 alt+3 猎人标记 4 稳固射击 5 奇美拉射击 6 震荡射击 7 威慑 8 大急速 f1 蝰蛇守护 f2 宁静射击 f3 治疗宠物 f4 设置焦点 f5 扰乱射击 f6 野性守护 f7 毒蝎钉刺 a 误导 s 准备就绪 d 猛禽一击 f 爆炸陷阱 g 猎豹守护 alt+g 豹群守护 r 冰冻之箭 alt+r 冰霜陷阱 z 主人的召唤 x 召唤宠物 v 蝰蛇钉刺 b 战前药水 如果你不想完全遵照Krip的键位,那么在你自己布置键位的时候请注意键位优先级。 颜色越深的键位越容易使用。 你可能注意到没有后退键。或者,你没有注意到?哈哈。 作为非坦克职业,永远不后退走路。 想后退,用鼠标控制,人物调转180度。 你可能想用shift或者其他什么来代替alt作为辅助键。当然可以,这并不重要。 把一切东西都绑在键位上。不要做鼠标流! 用辅助键来组合像似的技能(比如1是瞄准射击,alt+1多重射击,他们有像似的功用,相同的冷却,用了其一就不能用其二)。辅助键+键绑在比较少用到的技能上(g猎豹守护,alt+g豹群守护,豹群比猎豹用的少)。 Krip推荐了一个能重排键盘的工具KeyTweak。下载地址:
截图如下。 比如说你想让键盘上的A,不代表A,而代表B。B代表Z。Z代表H。。。这个工具就能满足你了。 Krip把Tab改成F12了。 鉴于网页说明并不详细,又不敢以身试法,地址和图片先放这里了。如果有有兴趣想搞深入的同学可以自己试试。。 鼠标设置
把地面目标宏和逃脱绑在鼠标上 滚轮滚动 稳固射击(没错,键盘上也设置了。双重设置最常用的技能。) alt+滚轮 杀戮射击 按下滚轮 炉石 鼠标左侧下键 乱射 alt+鼠标左侧下键 照明弹 鼠标左侧上键 逃脱 alt+鼠标滚轮上键 假死 wow-heros版全属性图
(标准7/57/7) PVP天赋:
希望对你有帮助;cast [target=pettarget,exists] Kill Command /cast Aimed Shot(Rank 9)
多重射击宏(加入沉默射击,击杀命令) &#47,如兽群战斗中的;cast [target=pettarget,exists] Kill Command /cast Multi-Shot(Rank 8)
杀戮射击宏(加入沉默射击,击杀命令) #showtooltip Kill Shot /cast !auto shot &#47,狂野召唤,急速设计,也须要不同的药水。急速药水,击杀命令) /cast !auto shot &#47. 反应要快;cast ,目前又没法实验。 为了避免不必要的麻烦。 宏 我国服告别一年多了,做中文宏有点拿捏不准(像空格之类的),你不得不跑位。 在跑位中你要使用一些技能来进行伤害输出,三个目标,四个目标~~输出是不一样的。 对与不同的战斗,巨魔种族技能,饰品等等) 以Lord Jaraxxus为例(十字军2号) 在预估饰品CD的基础上来计划如何使用你的大招[/quote] 记住,大招叠的越多,护甲药水,狂野魔法药水。 不要太早或者太晚释放技能!
对与一个目标,两个目标。 追纵突发事件索带来的伤害提升BUFF,符文能量药水等等。 3,伤害越多。 其他:想尽办法压榨DPS!睁大眼睛,几乎与PVE情况正好相反。 我也不觉得我有资格来给教大家PVP的键位(他的33打到2386。这个时候使用逃脱技能可以帮你缩短跑动时间! 更多的输出次数=更大的伤害总量 Part2 最大化每一次输出的伤害量 叠加你的“大招” 技能1。 如果有!autoshot。台服我没玩猎人。所以你要找到平衡它的方法。 宏必须要优于单独使用技能,并且每一行都是必要的重要的。 aimed shot 瞄准射击 auto shot 自动射击
silencing shot 沉默射击 kill command 杀戮命令 multi-shot 多重射击 kill shot 杀戮射击 chimera shot 奇美拉射击 arcane Shot 奥术射击 flare 照明弹 volley 乱射 freezing Arrow 冰冻之箭 readiness 准备就绪 hunter's Mark 猎人印记 defensive 防御 attack 攻击 passive 被动 Dive 潜行 Dash 疾跑 Master'cast ,大家想用的话自行替换。多少会有出入;cast Chimera Shot
毒蛇钉刺宏(加入沉默射击,什么时候用,击杀命令) showtooltip Aimed Shot &#47。 这一类的插件可以帮助你更高效的利用饰品和技能。这样可以增加自动射击数量提升DPS,奥术射击还是有用的到的时候的。
瞄准射击宏(加入沉默射击,附带中英文技能名称对照,或者说到了时候才做决定,exists] Kill Command &#47,我记录Krip原宏;s Call 主人的召唤 Misdirection 误导 Explosive Trap 爆炸陷阱 Deterrence 威慑 Aspect of the Viper 蝰蛇守护
Aspect of the Dragonhawk 龙鹰守护 Aspect of the Wild 野性守护
Aspect of the cheetah 猎豹守护
Aspect of the Pack 豹群守护
总之他的宏的意思就是卡着CD用沉默射击和杀戮命令及其他可以最高效利用时间的技能。跟他“浪费公共CD浪费跑位DPS是造成损失DPS的重要原因”思路契合;cast Silencing Shot /cast [target=pettarget。 射击宏: 如果没有 。 计算你的跑位。 同理!autoshot, 自动射击不会在你其他射击之前射出去,他要冲撞其中某个人的时候,你要跑到一个安全的并且可以在下面的数十秒内方便继续输出的位置,不知道技能名称。除非你已经在战斗中。 (嗜血,狂野魔法药水,击杀命令) #showtooltip Chimera Shot /cast !auto shot &#47,但是大家肯定看得懂就是了。 还有不明白的可以回帖或者M我。所有宏均已亲身试验过,exists] Kill Command &#47,PVP盗贼皇帝)的有关键位的文章,他所讲解的有关设置焦点以及鼠标滚轮的键位设置.32猎人PVE宏 Kripprrian!
最小化潜在变动延误 最小化延迟和人为延误才能最有效的连接两次技能施放(在四条竖线的中间两条之间的时间施放下一次技能)。 延迟+人为失误=损失DPS!auto shot /cast Silencing Shot &#47: 增加10%伤害
技能2: 增加10%伤害,增加10%急速=120%DPS 更多的大招放在一起用,在美服现在3.3.2版本使用正常。 宏有可能卡技能: 你还要注意把一些大技能的CD留给嗜血: 增加10%急速 情景1: 增加10%伤害 X 增加10%急速= 121% DPS 情景2!auto shot /cast Silencing Shot &#47。 任何射击技能都可以用来瞄准目标。作为射击天赋猎人。不要做影响已经施放了的技能的技能。 了解你的循环。了解要用什么,自动射击就会在你其他射击读条中间射出,或者先于其他射击射出,第60名)Part1 最大化输出次数 在使用下个技能之前,知道下个甚至下下个你要使用什么技能。 你不是要对已经做了的事做出反应 而是要对即将做的事做反应 换言之 你正在施放一个技能,在这个技能结束之前,你要清楚下一个要施放什么技能,放最重要的技能。当我还在70级的时候,我读过Neilyo(奶油。 在战斗中: 我不断言这里包括最有用的宏或者键位,但是希望大多数是有用的信息。如果你有想要分享的好宏和好按键设置,请跟我联系。 我的PVP键位跟我的PVE差不多-所以也因此对PVP不是那么有效。。 你要掌握最好的使用这些技能的方法。 1. 不要用鼠标点技能! 2
采纳率:70%
为您推荐:
其他类似问题
您可能关注的内容
射击猎人的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。简单的射击游戏HTML+JS实现
时间: 09:59:15
&&&& 阅读:459
&&&& 评论:
&&&& 收藏:0
标签:& & 一直想自己写一个游戏玩,时间和精力都不太允许,最近几天刚好有空闲时间,就琢磨了这个小游戏。
刚开始想着计算图片重叠事件,然后让炮弹和飞机消失,傻乎乎写了一天,越整越乱.今天一大早晕过来了,改用数组以后全部实现也就花了一个小时,有时候正确的方向真的比努力重要的多
&!DOCTYPE html&
&meta charset="UTF-8"&
&title&射击游戏&/title&
&link type="text/css" rel="stylesheet" href="css.css"&
&script type="text/javascript" src="control.js" charset="gbk"&&/script&
&div id="body"&
&div id="title"&
&span id="sp"&射击游戏&/span&
&div id="area"&
&div id="game_area"&
&div id="Down_1"&
&img id="tank" src="tank.png"&
&div id="right_1"&
&h3&游戏说明:&/h3&&br&
&p&1、暂停以后点开始游戏继续&/p&&br&
&p&2、 暂不支持修改控制按键&/p&&br&
&p&3、 点新游戏刷新页面,重新开始游戏&/p&&br&
&p&4、 电脑情况不同可能出现卡顿&/p&&br&
&div id="right"&
&div id="score"&得分 :&br&&span id="sp1"&0&/span&&br&分 &/div&
&td&&input id="new" class="key" value="开始游戏" type="button" onclick="start()"&&/td&
&td&&input id="new" class="key" value="新游戏" type="button" onclick="newGame()"&&/td&
&td&&input id="stop" class="key" value="暂停" type="button" onclick="stop();"&&/td&
&td&左:&&input id="key_left" value="&" class="key" maxlength="1"
onblur="setLeft()" type="text"&&/td&
&td&右:&&input id="key_right" value="&" class="key" maxlength="1"
onblur="setRight()" type="text"&&/td&
&td&发射:&input id="key_shot" value="x" class="key" maxlength="1"
onblur="setShot()" type="text"&&/td&
  JS代码如下,最上面的二维数组写出了是为了思路清晰一点,把这个看成屏幕思路更清晰一点
1 var in_area=[
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
25 window.onload=function(){
setInterval(color,200);
29 var fz_speed = 2000;//下落速度
30 function start(){//开始
clock_1 = setInterval(refresh,10);
clock_2 = setInterval(shot_move,10);//发射子弹速度
redom_//产生一行飞机
clock_4 = setInterval(fz_move,1000);//飞机下落,
37 function stop(){//暂停
clearInterval(clock_1);
clearInterval(clock_2);
clearInterval(clock_3);
clearInterval(clock_4);
43 function newGame(){//重新开始,刷新页面,初始化页面为0
window.location.reload();
for(var i = 0;i&20;i++){
for(var j=0;j&20;j++){
in_area[i][j]=0;
53 function refresh(){
var line = document.getElementById("game_area");
line.innerHTML="";
for(var i = 0;i&20;i++){
for(var j=0;j&20;j++){
var img = line.appendChild(document.createElement("img"));
//in_area[i][j]=Math.floor(Math.random()*3);
if(in_area[i][j]==1){
//1 = 飞机
img.setAttribute("class","fz");
img.setAttribute("src","feiji.png");
}else if(in_area[i][j]==2){
//2 = 子弹
img.setAttribute("class","zd");
img.setAttribute("src","ziDan.png")
//0 = 消失
line.removeChild(img)
var img = line.appendChild(document.createElement("div"));
img.setAttribute("class","black");
80 //左右和射击,左37,右39,空格32,x键88
81 var left=37;
82 var right=39;
83 var shot = 88 ;
84 onkeydown=function(){
if(e.keyCode==left){
move_left();
if(e.keyCode==right){
move_right();
if(e.keyCode==shot){
new_shot();
97 function move_left(){
var tank = $("tank");
var left = getDefaultStyle(tank,‘left‘);
if(left&0){
left = left-30;
tank.style.left=left+"px";
105 //右移
106 function move_right(){
var tank = $("tank");
var left = getDefaultStyle(tank,‘left‘);
if(left&560){
left = left+30;
tank.style.left=left+"px";
114 //射击(坦克左右移动范围left:-10px~560px,加上10再除以30得到0~19列)
115 function new_shot(){
var tank = $("tank");
var left = (getDefaultStyle(tank,‘left‘)+10)/30;
in_area[19][left]=2;
120 //子弹移动
子弹 = 2,从第二行开始遍历
121 function shot_move(){
for(var i = 1;i&20;i++){
for(var j=0;j&20;j++){
if(in_area[i][j]==2){
in_area[i-1][j]+=in_area[i][j];
in_area[i][j]=0;
if(in_area[i-1][j]==3){
in_area[i-1][j]=0;
addScore();
in_area[i][j]=0;
138 //产生飞机0~1,出现飞机的频率,数字越大飞机越多
139 var level = 0.1;
140 function redom_fz(){
for(var j=0;j&20;j++){
if(Math.random()&level){
in_area[0][j]=1;
148 //飞机下落
飞机=1,从第一行开始遍历
149 function fz_move(){
for(var i = 19;i!=-1;i--){
for(var j=0;j&20;j++){
if(i-1&=0){
if(in_area[i-1][j]==1){
in_area[i][j]+=in_area[i-1][j];
in_area[i-1][j]=0;
if(in_area[i][j]==3){
in_area[i][j]=0;
addScore();
if(i&=19){
alert("Game Over!!!");
window.location.reload();
redom_fz()
//产生一行飞机,在最上方
171 //设置分数
172 var score = 0;
173 function addScore(){
var s=$("sp1");
b = b+Math.floor(Math.random()*50);
y = y+Math.floor(Math.random()*50);
r = r+Math.floor(Math.random()*50);
if(b&255){
if(y&255){
if(r&255){
s.style.color="rgb("+b+","+y+","+r+")";
s.innerHTML=
194 //设置三原色
195 var b = 0;
196 var y = 0;
197 var r = 0;
198 var color = function(){
b = b+Math.floor(Math.random()*50);
y = y+Math.floor(Math.random()*50);
r = r+Math.floor(Math.random()*50);
if(b&255){
if(y&255){
if(r&255){
var p = document.getElementById("sp");
p.style.color="rgb("+b+","+y+","+r+")";
214 function $(id){
return document.getElementById(id);
217 function getDefaultStyle(obj,attribute){
return parseInt(window.getComputedStyle(obj, null)[attribute]);
1 @CHARSET "UTF-8";
margin: 0px;
padding: 0px;
margin: auto;
margin-top:50px;
width: 1000px;
height: 700px;
border: solid 5px rgb(241,241,241);
background:rgb(255,255,225);
14 #score{
font-size: 0.8cm;
17 #game_area{
width: 600px;
height: 600px;
float: left;
22 #Down_1{
width: 600px;
height: 50px;
background-color: rgb(225,225,200);
float: left;
height:50px;
width:50px;
background-color: black;
position: relative;
left:<span style="color: #px;
color: rgb(0,225,225);
font-size: 1.2cm;
40 #right{
width: 180px;
height: 600px;
float: right;
border: solid 2px rgb(225,225,225);
46 #right_1{
width: 180px;
height: 600px;
float: right;
border: solid 2px rgb(225,225,225);
height: 1.5cm;
55 #title{
width: 400px;
height: 50px;
position: relative;
61 #new,#stop{
position: relative;
width: 2cm;
height: 0.8cm;
maxlength: 1;
font-size: 1cm;
font-style: oblique;
width: 600px;
height: 650px;
border: solid 1px rgb(0,115,0);
float: left;
width:30px;
height:30px;
position:relative;
float: left;
width:30px;
height:30px;
position:relative;
float: left;
94 .black{
width:30px;
height:30px;
position:relative;
float: left;
&标签:原文地址:http://www.cnblogs.com/beiguapipi/p/5767209.html
&&国之画&&&& &&&&chrome插件&&
版权所有 京ICP备号-2
迷上了代码!}

我要回帖

更多关于 oneshot游戏攻略 的文章

更多推荐

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

点击添加站长微信