「java轨迹」java代码走查怎么做

博主:adminadmin 2023-03-21 10:25:11 741

本篇文章给大家谈谈java轨迹,以及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轨迹的信息别忘了在本站进行查找喔。