「java轨迹」java代码走查怎么做
本篇文章给大家谈谈java轨迹,以及java代码走查怎么做对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java如何编写用鼠标脱出轨迹 我的代码怎么修改就有轨迹了 求帮助
- 2、Java 异常中什么是显示堆栈轨迹
- 3、java怎么同时画出两条线?并记录线的轨迹?求教了
- 4、用java写一个物体移动的轨迹
- 5、Java如何让多个图片都按照一定轨迹下落
- 6、关于java中模拟抛物线轨迹的问题
java如何编写用鼠标脱出轨迹 我的代码怎么修改就有轨迹了 求帮助
把鼠标的x和y放一个队列里,限定队列长度,每次都把队列里的点画出来就行了。
Java 异常中什么是显示堆栈轨迹
//方法出异常时会指明在那一行,显示异常的堆栈轨迹
try {
String s[]={"1"};
s[1]="abc";
} catch (Exception e) {
e.printStackTrace();
}
//
e.printStackTrace();
就是打印出异常堆栈信息,你也可以不调用此条语句。如:
try {
String s[]={"1"};
s[1]="abc";
} catch (Exception e) {
System.out.print("出错了"); }
java怎么同时画出两条线?并记录线的轨迹?求教了
“同时画出”是关键词,呵呵,如果要同时画,复杂点,用同步语句块,不过不推荐~
简单点,在你线程里,把你画第一条线的句子,再复制一个进去就行了~- -,可能这个方法有点土`~~~能详细描述下你想实现的功能吗?
记录轨迹。。。。你画出的线就是一条轨迹吧!,还用记录吗?如果非要实现这个记录诡计,你就画一个跟踪你线的坐标的诡计点,这个你可以用图片drawImage来画,也可以用drawString("."......)来画,当然你你这个诡计要和你的线或者其他东西一起,简单的方法J2ME里有GameCanvas来做你这个东西,因为这样你可以把你的线的“头部”当成一个精灵Sprite来做,用getX() getY()来得到你“头部”的坐标,而且getX() getY()是不断变化的,所以你可以吧getX() getY()放到你用来记录轨迹的函数坐标里,这样就简单的跟踪你的线的轨迹了!
-----
不过,我想你是想实现那种动态显示出你的线不断在画的效果吧,就是两条线由短到长,那样的效果,你要给你的线drawLine()里的起点和终点坐标设置成变量,并在线程里让变量++,这样才是动态的,不然你画的线,可能直接就一下子画完了drawLine(int x1, int y1, int x2, int y2) 里,x1,y1,x2,y2,可以都是变化,也可以你固定起点,然后终点x2++,y2++,这里就很灵活了,可以调下看看!
---
如果还有不明白,请你告诉我你具体想实现什么样效果,本人是做J2ME游戏开发的,可能这个回答与JAVA里画图方法不同,但是道理都是一样的,你去改下命令函数就行了!呵呵!
用java写一个物体移动的轨迹
lz 你好
我做了一个比较简单的雏形
绿色正方形水平随机运动
蓝色正方形垂直随机运动
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.math.*;
public class MoveRect extends Frame implements Runnable{
private Rectangle hRect, vRect;
private Image buffer;
private Object o = new Object();
public MoveRect(){
super("MoveRect");
hRect = new Rectangle(50,0,50,50);//水平随机运动的正方形
vRect = new Rectangle(0,50,50,50);//垂直随机运动的正方形
setUndecorated(true);
setLocation(500,200);
setSize(400,400);
setVisible(true);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
//启动循环绘制(使正方形一直循环的运动)
public void circleDraw(){
}
//绘制正方形的状态
public void drawRect(Graphics g,Rectangle r){
g.drawRect(r.x, r.y, r.width, r.height);
}
//双缓冲机制(主要解决闪屏)
public void update(Graphics g){
buffer = createImage(getSize().width, getSize().height);
if(buffer != null){
Graphics g2 = buffer.getGraphics();
paint(g2);
g2.dispose();
g.drawImage(buffer, 0, 0, this);
}
else{
paint(g);
}
}
public void paint(Graphics g){
g.setColor(Color.GREEN);
drawRect(g,hRect);
g.setColor(Color.BLUE);
drawRect(g,vRect);
hRect.x = (int)(Math.random()*351);
vRect.y = (int)(Math.random()*351);
}
public void run(){
while(true){
stop();
rePaint();
}
}
//同步方法rePaint
public synchronized void rePaint(){
repaint();
}
//同步方法stop
public synchronized void stop(){
if(hRect.x = 50 vRect.y = 50){
try {
Thread.sleep(500);
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}
public static void main(String[] args){
new Thread(new MoveRect()).start();
}
}
Java如何让多个图片都按照一定轨迹下落
图片的位移(下落),可以通过修改图片的x,y坐标来实现, 在Swing/Html中,我们可以使用Timer定时(比如每隔100毫秒)去修改图片的x,y坐标即可实现,
多个图片都按照一定的轨迹移动,那都按照自己的轨迹的算法,去定时修改x,y坐标即可.
JavaFX是java先进的图形界面框架, 里面有3D和各种动画, 所以按照轨迹移动,都能轻松实现
JavaFX参考代码如下
import javafx.animation.Animation;
import javafx.animation.Interpolator;
import javafx.animation.PathTransition;
import javafx.animation.RotateTransition;
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.image.ImageView;
import javafx.scene.layout.HBox;
import javafx.scene.shape.MoveTo;
import javafx.scene.shape.Path;
import javafx.scene.shape.QuadCurveTo;
import javafx.stage.Stage;
import javafx.util.Duration;
public class PathAnimateDemo extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
ImageView imv=new ImageView(getClass().getResource("ball.png").toExternalForm());
Path path = new Path();// 路径;运动轨迹
MoveTo mt = new MoveTo(20, 50);
QuadCurveTo quadTo2 = new QuadCurveTo(175, 190, 350, 30);
path.getElements().addAll(mt, quadTo2);
HBox hbox = new HBox(10);
Button btnStart = new Button("开始");
Button btnPause = new Button("暂停");
Button btnResume = new Button("继续");
Button btnStop = new Button("结束");
hbox.getChildren().addAll(btnStart, btnPause, btnResume, btnStop);
hbox.setPadding(new Insets(20));
hbox.setLayoutX(80);
hbox.setLayoutY(230);
Group root = new Group();
root.getChildren().addAll(imv, path, hbox); // 不添加path.就可以不显示path了
Scene scene = new Scene(root, 430, 300);
primaryStage.setTitle("JavaFX");
primaryStage.setScene(scene);
primaryStage.show();
//旋转动画设置
RotateTransition rt=new RotateTransition(Duration.millis(1000),imv);
rt.setInterpolator(Interpolator.LINEAR);
rt.setFromAngle(0);
rt.setToAngle(360);
rt.setCycleCount(Animation.INDEFINITE);
rt.play();
//路径动画设置
PathTransition pt = new PathTransition(Duration.millis(800), path, imv);// 路径动画
pt.setCycleCount(Animation.INDEFINITE);
pt.setAutoReverse(true);
btnStart.setOnAction(e - {
pt.playFromStart();// 从头开始播放
});
//----按钮的响应设置---
btnPause.setOnAction(e - {
pt.pause();
});
btnResume.setOnAction(e - {
pt.play(); // 播放
});
btnStop.setOnAction(e - {
pt.jumpTo(new Duration(0));// 跳到第0秒处
pt.stop();
});
}
}
关于java中模拟抛物线轨迹的问题
看了这套题目感觉很有兴趣,就花了一个中午亲手给你写了一个类似的例子,相信可以帮助你对这个游戏有很好的理解,从右向左那个是僵尸,点一下鼠标就出现植物,我只是起到一个抛砖引玉的作用。代码如下(绝对可以用的代码):
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.event.MouseInputAdapter;
public class PlantsAndZombies extends JFrame {
private static final long serialVersionUID = 1L;
public static final int screenWidth=800;
public static final int screenHeight=600;
Printer printer;
Zombies zombies=new Zombies();
Thread T_Zombies;
Bullet bullet=new Bullet();
Thread T_Bullet;
public PlantsAndZombies(){
this.setSize(new Dimension(screenWidth,screenHeight));
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.addMouseListener(new Shoot(this));
this.setVisible(true);
printer=new Printer( this.getGraphics());
printer.Add(zombies);
printer.Add(bullet);
T_Zombies=new Thread(zombies);
T_Zombies.start();
T_Bullet=new Thread(bullet);
T_Bullet.start();
}
public void Shoot(){
bullet.getTarget(zombies);
}
public static void main(String[] args){
PlantsAndZombies game=new PlantsAndZombies();
}
public void run() {
while(true){
}
}
}
interface Drawable{
void drawMe(Graphics g);
}
class Zombies implements Drawable,Runnable{
public boolean isLive=true;
public int x=PlantsAndZombies.screenWidth;
public int y=500;
public void run() {
while(true){
if(x10){
x-=20;
}else x=PlantsAndZombies.screenWidth;
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void drawMe(Graphics g){
g.drawRect(x,y,20,50);
}
}
class Bullet implements Drawable,Runnable{
private int x=0;
private int y=500;
private Zombies _z;
private float a,b,c;
private float step;
public void getTarget(Zombies z){
_z=z;
// 用三点确定一个抛物线的方法,计算弹道
int x1=0;
int y1=500;
int x2=(z.x-6*20)/2;
int y2=300; // 抛物线高度200个像素
int x3=z.x-6*20; // 假设击中僵尸用3秒钟,在这3秒钟内僵尸向前移动了6*20个像素
int y3=500;
a=(float)((y2-y1)*(x3-x2)-(y3-y2)*(x2-x1))/(float)((x2*x2-x1*x1)*(x3-x2)-(x3*x3-x2*x2)*(x2-x1));
b=(float)((y2-y1)-a*(x2*x2-x1*x1))/(float)(x2-x1);
c=y1-a*x1*x1-b*x1;
step=(float)(x3-x1)/(float)(3*20);
}
public void run() {
while(true){
try {
x+=step;
y=(int)(a*x*x+b*x+c);
if(y500){
_z.isLive=false;
}
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void drawMe(Graphics g) {
g.drawRect(x,y,20,20);
}
}
class Printer extends Thread{
private VectorDrawable v=new VectorDrawable();
private Graphics _g;
public Printer(Graphics g){
_g=g;
this.start();
}
public void Add(Drawable o){
v.add(o);
}
public void run(){
while(true){
_g.clearRect(0,0,PlantsAndZombies.screenWidth,PlantsAndZombies.screenHeight);
for(Drawable o:v){
o.drawMe(_g);
}
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
class Shoot extends MouseInputAdapter{
private PlantsAndZombies _adaptee;
public Shoot(PlantsAndZombies adaptee){
_adaptee=adaptee;
}
public void mouseClicked(MouseEvent e) {
_adaptee.Shoot();
}
}
java轨迹的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java代码走查怎么做、java轨迹的信息别忘了在本站进行查找喔。