java – 如何使用drawLine()在随机方向上拍摄一行?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何使用drawLine()在随机方向上拍摄一行?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2568字,纯文字阅读大概需要4分钟。
内容图文
![java – 如何使用drawLine()在随机方向上拍摄一行?](/upload/InfoBanner/zyjiaocheng/817/6199ca6f6b094b87b173e37f71efe983.jpg)
我正在做一个有趣的任务,包括一个用mouseMoved()移动的小船,并随机射出激光束.我想使用drawLine(mouse_x,mouse_y,?,?)作为激光,但我无法定义x2和y2的坐标.激光必须穿过屏幕.
这就是我到目前为止所拥有的. page.drawLine(mouse_x-15,mouse_y-5,300,300);当然我不希望激光在拐角处继续射击(300,300).
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class SpaceShip extends Applet
implements MouseListener, MouseMotionListener {
private int applet_width = 300; //width of applet
private int applet_height =300; //height of applet
private int mouse_x, mouse_y; // the mouse coordinates
private int shots = 0; //count of shots
private boolean buttonPressed = false;
//init()
public void init() {
setSize(applet_width, applet_height); //set size of applet
setBackground( Color.black ); //set color of background
mouse_x = applet_width/2; //initiate mouse in the middle of the applet
mouse_y = applet_height/2;
addMouseListener( this ); //adding mouse listener
addMouseMotionListener( this ); // adding motion listener
}
// Drawing of the spaceship and laser beam
public void paint( Graphics page ) {
page.setColor(colorRand()); // random color laser beam
page.drawLine(mouse_x-15, mouse_y-5,300,300);
page.setColor( Color.YELLOW );//yellow spaceship
page.fillOval( mouse_x-30, mouse_y-15, 60, 30 );
}
public void mouseEntered( MouseEvent e ) {
}
public void mouseExited( MouseEvent e ) {
}
public void mouseClicked( MouseEvent e ) {
shots++;
showStatus("Number of shots: " + shots);
}
public void mousePressed( MouseEvent e ) {
buttonPressed = true;
repaint();
}
public void mouseReleased( MouseEvent e ) {
buttonPressed = false;
setBackground( Color.black );
repaint();
}
public void mouseMoved( MouseEvent e ) {
mouse_x = e.getX();
mouse_y = e.getY();
repaint();
}
public void mouseDragged( MouseEvent e ) {
}
//method generating a random color RGB
public Color colorRand(){
int r = (int)(Math.random()*256);
int g = (int)(Math.random()*256);
int b = (int)(Math.random()*256);
Color randomColor = new Color(r,g,b);
return randomColor;
}
}
提前谢谢你,我已经坚持了很长一段时间了.
迪迪
解决方法:
类似于Snicolas给出的答案:
int x2;
int y2;
//get direction for x cooord
int direction = (int) (Math.random() * 2);
if(direction == 0)
x2 = (int) (300 + Math.random() * applet_width);
else
x2 = ((int) (300 + Math.random() * applet_width)) * -1;
//get direction for the y coord
direction = (int) (Math.random() * 2);
if(direction == 0)
y2 = (int) (300 + Math.random() * applet_width);
else
y2 = ((int) (300 + Math.random() * applet_width)) * -1;
//draw the line
page.drawLine(mouse_x-15, mouse_y-5,x2,y2);
这将为通过屏幕边缘的随机点创建一条线
内容总结
以上是互联网集市为您收集整理的java – 如何使用drawLine()在随机方向上拍摄一行?全部内容,希望文章能够帮你解决java – 如何使用drawLine()在随机方向上拍摄一行?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。