网站首页 > 文章中心 > 其它

java子弹代码

作者:小编 更新时间:2023-10-20 10:32:30 浏览量:48人看过

用java线程做飞机大战,发射子弹及爆炸的代码怎么写啊,求高人,写上注释吧,不然看不懂,谢谢

代码有点多, 实现思路, 实现键盘事件监听机制, 在监听函数中判断 按了什么键,比如按J就发送子弹. 然后启动子弹线程. 定义一个子弹类线程, 定义出子弹的所在属性和方法.

java子弹代码-图1

写个方法,判断子弹是否击中目标,以XY坐标相交来判断

这个java 程序怎么写?

下面是我写的代码,如果有用,请采纳吧,最近正好在看进程通信的东西,正好拿你这个题练练手.

package test;

import java.util.ArrayList;

import java.util.LinkedList;

public class ProducerConsumer {

/*

* 生产者类:属性:子弹夹(生产者可以使用子弹夹)设计为线程,调用子弹夹类的push方法,向子弹夹里放入子弹

java子弹代码-图2

* 消费者类:属性:子弹夹(消费者可以使用子弹夹)设计为线程,调用子弹夹类的pop方法,从子弹夹里取出子弹

* 子弹类:属性:子弹编号(第几颗子弹)

* 子弹夹类:属性:存放子弹(数组),索引index(下一个要放子弹的位置)方法:push方法:向子弹夹里放入子 pop方法:从子弹夹中取出子弹

*/

private Clip clip = new Clip();

public ProducerConsumer() {

}

public void start() {

new Producer().start();

new Comsumer().start();

class Producer extends Thread {

public void run() {

while (true) {

synchronized (clip.bullets) {

try {

Bullet bullet = new Bullet();

int i = clip.push(bullet);

System.out.println("Producer put a bullet to clip");

clip.notify();

} catch (InterruptedException ie) {

System.out.println("producer is interrupted!");

class Comsumer extends Thread {

while (clip.bullets.size() == 0) {

System.out.println("clip is empty , please wait");

clip.wait();

clip.pop();

System.out.println("Comsumer get a bullet from clip");

System.out.println("Consumer is interrupted");

class Bullet{

int number;

class Clip{

public ArrayListBullet bullets = new ArrayListBullet();//set the size is 10

int index = 0;//the next location to put the bullet

/*put a bullet into the clip*/

int push(Bullet bullet){

bullets.add(bullet);

index = bullets.size();

return index;

/*get a bullet from the clip*/

void pop(){

//自己写吧

public static void main(String[] args) throws Exception {

ProducerConsumer pc = new ProducerConsumer();

pc.start();

java编按鼠标就发射子弹代码

监听鼠标动作,

然后控制子弹图片移动.

然后跟目标做碰撞检测.

java 事件 消息传递机制 实际上是

关于Java 中,我们的作业是一个 机战的小游戏,怎么去实现一个 子弹击中的问题,用代码解释.

这个是碰撞检测算法.

简单说,你绘制的对象,比如飞机A,子弹B,都是图形,有大小、有形状的,这个形状的边角都有坐标点.

java子弹代码-图3

//B的矩形右侧坐标

B.RightX;

//A的矩形左侧坐标

A.LeftX;

假定它们图形都是矩形,子弹B从左侧向右侧平移,与飞机A"碰撞",碰撞的条件,可以认为是子弹B的最右侧坐标大于等于飞机A的所在的左侧坐标.

if(B.RightX?=?A.LeftX)

游戏循环中不断进行这样的检测,一旦检测到碰撞成立时就认为是击中了.

进一步,并不是每个图形都是规则的矩形或者圆形,这个时候,你就要为图形自己定义一个碰撞检测图形(比如一个合适大小的圆形,大小刚好可以包裹你的对象)这个形状的坐标与对象运动关联,同步改变.通过这个碰撞检测的图形的坐标是否重合来判断是否碰撞.

以上就是土嘎嘎小编为大家整理的java子弹代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章