不要用键盘监听,键盘事件只会传递给当前获得焦点的组件。
成都创新互联专业为企业提供孟村网站建设、孟村做网站、孟村网站设计、孟村网站制作等企业网站建设、网页设计与制作、孟村企业网站模板建站服务,十余年孟村做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
使用按键映射,绑定InputMap和ActionMap,具体做法可以自己搜相关内容。
我用swing 做了个 雷霆战机的。。 g.fillRect(x60, y60, 10, 10);
g.fillRect(x70, y70, 10, 10); 画子弹的
g.drawImage(new ImageIcon("src/fr.jpg").getImage(),x0,y0,7,7,rootPane); 画飞机的
g.drawImage(new ImageIcon("src/fr.jpg").getImage(),x02,y02,7,7,rootPane);
g.drawImage(new ImageIcon("src/fr.jpg").getImage(),x03,y03,7,7,rootPane);
用多线程 然后不停刷新 (g 是 Graphics g x60, y60 这些都是坐标 后面的是长宽 )
当时import的包
import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Date;
import java.util.Random;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.Timer;
雷霆战机上有一个闪光的点,被攻击到就会掉血,你可以根据获取到屏幕宽度比如是800和高度1400,来设置这个点的活动范围,上下活动范围在(50,1350)之间,左右设置在(50,750)之间,是否选择50或者80看你的飞机图片大小,你想让飞机都在屏幕上,那就的计算飞机图片的大小,根据飞机中心点到飞机边缘(左右)是70px,那你就选择70,但是这些值和飞机的大小都不能是固定值,一定要按照不同手机的屏幕大小来设置飞机的大小来满足不同玩家的视觉效果,具体设置多少值,你可以多拿几个不同屏幕的手机来运行来试,如果你懒得一个个去试,可以把你飞机距离屏幕的距离可以设置为一个百分值,可以将这些之值写入一个list中 只要获取的到屏幕大小,就按照list中的值来取就行了。希望对你有帮助。