📄 displayable1.java
字号:
package paowuxian;
import javax.microedition.lcdui.*;
import java.io.*;
import java.util.Hashtable;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2005</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
public class Displayable1 extends Canvas implements CommandListener ,Runnable{
private Image imgWu=null;
private int x,y;
private boolean bFire=false;
Thread thisThread;
// public Hashtable angleValue;
//public int tempAngle;
//public int tempValue;
private int angle=45;
private int v0=10;
private int windSpeed=0;//300000;
private int vx,vy;
private boolean bShowline=true;
private int t,tTemp;
public Displayable1() {
Resource.loadAngleValue();
try {
imgWu = Image.createImage("/images/paodan.png");
y =getHeight()-imgWu.getHeight();
// x=getWidth()/2;
}
catch (IOException ex) {
}
thisThread=new Thread(this);
thisThread.start();
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
// Set up this Displayable to listen to command events
setCommandListener(this);
// add the Exit command
addCommand(new Command("Exit", Command.EXIT, 1));
}
public void commandAction(Command command, Displayable displayable) {
/** @todo Add command handling code */
if (command.getCommandType() == Command.EXIT) {
// stop the MIDlet
MIDlet1.quitApp();
}
}
private void gameRun(){
if(bFire){
x= (vx+windSpeed )*t /100000; ;
int pianyi=(t*400000);
if(vy==0){
pianyi=0;
}else if(vy<0){
pianyi=280000*t;
}
y=(100000*(getHeight()-imgWu.getHeight())-(vy*t-100000*t*t+pianyi))/100000;
// bFire=false;
}
repaint();
}
protected void paint(Graphics g) {
g.setColor(0xffffffff);
g.fillRect(50,10,80,40);
if(bShowline){
g.setColor(0xffffffff);
g.fillRect(0,0,getWidth(),getHeight());
}
g.setColor(0x0000ff);
g.drawString("角度"+angle+"(按8/2键调整)",50,0,0);
g.drawString("力度"+v0+"(按1)",50,10,0);
g.drawString("是否留下轨迹"+(bShowline?" 否":" 是")+"(按3)",50,20,0);
g.drawString("风力"+windSpeed/100000+"(按7/9)",50,30,0);
g.drawImage(imgWu,x,y,0);
}
public void run(){
while (true){
try {
thisThread.sleep(10);
if(bFire){
tTemp++;
if (tTemp >2) {
t+=1;
tTemp = 0;
}
if(y>getHeight()||x>getWidth()){
x=0;
y=getHeight()-imgWu.getHeight();
bFire=false;
vx=0;vy=0;
t=0;
v0=10;
}
}
}
catch (InterruptedException ex) {
}
gameRun();
}
}
/**
* keyPressed
*
* @param keyCode int
* @todo Implement this javax.microedition.lcdui.Canvas method
*/
protected void keyPressed(int keyCode) {
if(keyCode==KEY_NUM5){
bFire=true;
vx=Resource.getCosAngleValue(angle)*v0;
vy=Resource.getSinAngleValue(angle)*v0;
}else if(keyCode==KEY_NUM8){
if(angle>0){
angle -= 3;
}
}
else if(keyCode==KEY_NUM2){
if(angle<90){
angle += 3;
}
}else if(keyCode==KEY_NUM1){
v0++;
}else if(keyCode==KEY_NUM3){
bShowline=!bShowline;
}else if(keyCode==KEY_NUM7){
windSpeed+=100000;
}else if(keyCode==KEY_NUM9){
windSpeed-=100000;
}
}
/*
public void loadAngleValue()
{
angleValue = new Hashtable();
angleValue.put(String.valueOf(0),new Integer(0));
angleValue.put(String.valueOf(3),new Integer(5236));
angleValue.put(String.valueOf(6),new Integer(10453));
angleValue.put(String.valueOf(9),new Integer(15643));
angleValue.put(String.valueOf(12),new Integer(20791));
angleValue.put(String.valueOf(15),new Integer(25882));
angleValue.put(String.valueOf(18),new Integer(30902));
angleValue.put(String.valueOf(21),new Integer(35837));
angleValue.put(String.valueOf(24),new Integer(40674));
angleValue.put(String.valueOf(27),new Integer(45400));
angleValue.put(String.valueOf(30),new Integer(50000));
angleValue.put(String.valueOf(33),new Integer(54464));
angleValue.put(String.valueOf(36),new Integer(58779));
angleValue.put(String.valueOf(39),new Integer(62932));
angleValue.put(String.valueOf(42),new Integer(66913));
angleValue.put(String.valueOf(45),new Integer(70711));
angleValue.put(String.valueOf(48),new Integer(74314));
angleValue.put(String.valueOf(51),new Integer(77715));
angleValue.put(String.valueOf(54),new Integer(80902));
angleValue.put(String.valueOf(57),new Integer(83867));
angleValue.put(String.valueOf(60),new Integer(86603));
angleValue.put(String.valueOf(63),new Integer(89101));
angleValue.put(String.valueOf(66),new Integer(91355));
angleValue.put(String.valueOf(69),new Integer(93358));
angleValue.put(String.valueOf(72),new Integer(95106));
angleValue.put(String.valueOf(75),new Integer(96593));
angleValue.put(String.valueOf(78),new Integer(97815));
angleValue.put(String.valueOf(81),new Integer(98769));
angleValue.put(String.valueOf(84),new Integer(99452));
angleValue.put(String.valueOf(87),new Integer(99863));
angleValue.put(String.valueOf(90),new Integer(100000));
}
public int getSinAngleValue(int angle)
{
tempAngle = (angle > 90 ? (180 - angle) : angle);
tempValue = ((Integer)(angleValue.get(String.valueOf(tempAngle)))).intValue();
return tempValue;
}
public int getCosAngleValue(int angle)
{
tempAngle = (angle > 90 ? angle - 90 : 90 - angle);
tempValue = ((Integer)(angleValue.get(String.valueOf(tempAngle)))).intValue();
return (angle <= 90 ? tempValue : (-tempValue));
}
*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -