射击游戏代码分享
效果请点击一下链接:https://www.huachaowang.com/forum.php?mod=viewthread&tid=61142&page=2#pid1643532射击部分的全部代码:
<style>
#papa { margin: 50px auto 0; width: 1024px; height: 600px; position: relative; background: linear-gradient(165deg, gray, tan, olive); box-shadow: 4px 4px 24px #000; }
#papa::before { position: absolute; content: ''; width: 100px; height: 100px; left: 10px; top: 260px; border-radius: 50%; background: linear-gradient(120deg, snow, red); }
#gun { position: absolute; right: 0;top:300px; width: 190px; height: 130px; transition: .02s; cursor: pointer; }
.bullet { position: absolute; width: 10px; height: 10px; left: calc(100% - 190px); top: 320px; border-radius: 50%; background: linear-gradient(120deg, white,green); }
@keyframes shot { to { left: var(--ll); top: var(--tt); } }
</style>
<div id="papa">
<img id="gun" alt="" src="玩具枪图片地址" />
<div id="ball"></div>
</div>
<audio id="gunAud" src="https://img.tukuppt.com/newpreview_music/08/98/68/5c88af299e50946800.mp3"></audio>
<script>
let total = 10; //子弹数
let num = (min, max) => Math.floor(Math.random() * (max-min+1)) + min;
//音效速率
gunAud.playbackRate = 3;
//鼠标按下
gun.onmousedown = () => {
gun.style.transform = 'rotate(2deg)';
gunAud.pause();
}
//鼠标松开
gun.onmouseup = () => {
gun.style.transform = 'rotate(0)';
gunAud.play();
let bullets = document.querySelectorAll('.bullet');
if(bullets.length >= total) papa.removeChild(bullets);
let bullet = document.createElement('span');
bullet.className = 'bullet';
bullet.style.cssText = `
--tt: ${num(280,340)}px; --ll: ${num(20,80)}px;
background: linear-gradient(120deg, rgb(${num(0,255)},${num(0,255)},${num(0,255)}), rgb(${num(0,255)},${num(0,255)},${num(0,255)}));
animation: shot .4s linear forwards;`
papa.appendChild(bullet);
}
</script>
黑黑,你真的无所不能{:4_178:} 小辣椒 发表于 2022-7-13 20:59
黑黑,你真的无所不能
这个不复杂的,绝大多数会CSS和JS的人都可以做出来 原来是鼠标松开音效就响了,也就听到了枪声了{:4_204:} 红影 发表于 2022-7-13 21:47
原来是鼠标松开音效就响了,也就听到了枪声了
用单击事件也是可以的 马黑黑 发表于 2022-7-13 21:49
用单击事件也是可以的
没看懂这句:
--tt: ${num(280,340)}px; --ll: ${num(20,80)}px;这个范围是怎么得出的。看各个素材的大小和定位,貌似得不出这样的范围啊{:4_203:} 红影 发表于 2022-7-14 11:01
没看懂这句:
--tt: ${num(280,340)}px; --ll: ${num(20,80)}px;这个范围是怎么得出的。看各个素材 ...
没事了,我把tt和ll看反了,原来ll才是左右,以为是上下了{:4_173:} 红影 发表于 2022-7-14 11:01
没看懂这句:
--tt: ${num(280,340)}px; --ll: ${num(20,80)}px;这个范围是怎么得出的。看各个素材 ...
心算 马黑黑 发表于 2022-7-14 12:08
心算
现在已经知道了,问的时候还没去动手,动手一试就知道了{:4_173:} 红影 发表于 2022-7-14 12:56
现在已经知道了,问的时候还没去动手,动手一试就知道了
有时候凭空想象的确不得要领 马黑黑 发表于 2022-7-14 18:18
有时候凭空想象的确不得要领
用具体的数据去验证,比凭空想象好。 红影 发表于 2022-7-14 19:36
用具体的数据去验证,比凭空想象好。
说的有道理 马黑黑 发表于 2022-7-14 19:55
说的有道理
不仅仅是说,也去做了{:4_173:} 红影 发表于 2022-7-14 21:28
不仅仅是说,也去做了
还做得挺好 马黑黑 发表于 2022-7-14 21:28
还做得挺好
套用你的代码而已,让我自己做我哪会啊{:4_173:} 红影 发表于 2022-7-14 21:53
套用你的代码而已,让我自己做我哪会啊
这不是简单套用 马黑黑 发表于 2022-7-14 22:08
这不是简单套用
但仍然是套用{:4_173:} 红影 发表于 2022-7-14 22:15
但仍然是套用
不能这么说的,这是再创作 马黑黑 发表于 2022-7-14 22:16
不能这么说的,这是再创作
不是不是,都还是在使用黑黑的代码的呢{:4_187:} 红影 发表于 2022-7-15 20:47
不是不是,都还是在使用黑黑的代码的呢
代码,以织衣服为例,它是一个方法,好比缝纫机。不能说,我发明的一种走线法,然后大家用这个方法,衣服就是我做的。
页:
[1]
2