当前位置: 首页 > news >正文

网站建设工作室是干嘛的杭州seo网

网站建设工作室是干嘛的,杭州seo网,阿里云可以建设网站吗,新疆生产建设兵团考试信息网站将游戏坐标转化成屏幕鼠标坐标 思路说明:转化其实是取得两点的相对位置,例如将游戏人物移动到另外一个位置(游戏人物初始位置坐标到目的位置坐标),鼠标需要移动到屏幕的某个位置。算出游戏的移动距离,游戏…

将游戏坐标转化成屏幕鼠标坐标

思路说明:转化其实是取得两点的相对位置,例如将游戏人物移动到另外一个位置(游戏人物初始位置坐标到目的位置坐标),鼠标需要移动到屏幕的某个位置。算出游戏的移动距离,游戏两个点之间的夹角(cos,sin),然后映射到屏幕中的两个点。
注意:需要提前算出游戏两点距离对应屏幕两点间距离的比例(游戏距离/屏幕两点距离),只是针对第一人称,人物固定屏幕类游戏

1.获取鼠标在屏幕的坐标

package com.company;import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.*;
import java.util.Timer;
import java.util.TimerTask;public class MouseInfo extends JFrame {private final JPanel contentPanel = new JPanel();JLabel value_x = null;JLabel value_y = null;/*** 展示画布,显示鼠标坐标*/public static void getMouse() {try {MouseInfo info_frame = new MouseInfo();info_frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);info_frame.setVisible(true);info_frame.setAlwaysOnTop(true);Timer timer = new Timer();timer.schedule(new TimerTask() {@Overridepublic void run() {Point point = java.awt.MouseInfo.getPointerInfo().getLocation();info_frame.value_x.setText("" + point.x);info_frame.value_y.setText("" + point.y);}}, 100, 100);} catch (Exception e) {e.printStackTrace();}}/*** Create the dialog.*/public MouseInfo() {setTitle("\u9F20\u6807\u5750\u6807\u83B7\u53D6\u5668");setBounds(100, 100, 217, 156);getContentPane().setLayout(new BorderLayout());contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));getContentPane().add(contentPanel, BorderLayout.CENTER);contentPanel.setLayout(null);JLabel lblx = new JLabel("\u5750\u6807x:");lblx.setFont(new Font("宋体", Font.PLAIN, 15));lblx.setBounds(22, 27, 66, 31);contentPanel.add(lblx);JLabel lbly = new JLabel("\u5750\u6807y:");lbly.setFont(new Font("宋体", Font.PLAIN, 15));lbly.setBounds(22, 68, 66, 31);contentPanel.add(lbly);value_x = new JLabel("0");value_x.setForeground(Color.BLUE);value_x.setFont(new Font("宋体", Font.PLAIN, 20));value_x.setBounds(82, 27, 66, 31);contentPanel.add(value_x);value_y = new JLabel("0");value_y.setForeground(Color.BLUE);value_y.setFont(new Font("宋体", Font.PLAIN, 20));value_y.setBounds(82, 68, 66, 31);contentPanel.add(value_y);}
}

2.坐标操作工具方法

 /*** 获取两个点距离* @param lat1 第一个位置的x* @param lon1 第一个位置的y* @param lat2 第二个位置的x* @param lon2 第二个位置的y* @return 两点之间的距离*/public static double distance(double lat1, double lon1, double lat2, double lon2){double D=Math.sqrt((lat2-lat1)*(lat2-lat1)+(lon2-lon1)*(lon2-lon1));return D;}/*** 获取两点之间的sin 值* @param lat1 第一个位置的x* @param lon1 第一个位置的y* @param lat2 第二个位置的x* @param lon2 第二个位置的y* @return*/public static double getSin(double lat1, double lon1, double lat2, double lon2){double sin=Math.abs(lon2-lon1)/distance(lat1,lon1,lat2,lon2);return sin;}/*** 获取两点之间的cos 值* @param lat1 第一个位置的x* @param lon1 第一个位置的y* @param lat2 第二个位置的x* @param lon2 第二个位置的y* @return*/public static double getCos(double lat1, double lon1, double lat2, double lon2){double cos=Math.abs(lat2-lat1)/distance(lat1,lon1,lat2,lon2);return cos;}/*** 获取第二个位置坐标* @param lat1* @param lon1* @param sin* @param cos* @param distance*/public static void getPointTow(double lat1, double lon1 ,double sin ,double cos,double distance){double lon2=distance*sin+lon1;double lat2=distance*cos+lat1;System.out.println("第二个坐标x:"+lat2 +";y:"+lon2);}

3.计算游戏对应的屏幕坐标

public static void main(String[] args) {MouseInfo.getMouse();//假如已经算出游戏与屏幕两点距离的比例是3 (游戏距离/屏幕距离=3)Double scale=3d;Double value_x=1372d;double value_y=524d;//假如游戏人物当前所在的游戏位置是902,302 ,想移动到1372,524double distance=distance(902,302,value_x,value_y);double sin=getSin(902,302,value_x,value_y);double cos=getCos(902,302,value_x,value_y);//人物固定在屏幕的中间,假如屏幕坐标1033,415 ,算出游戏人物要移动到游戏1372,524所在的屏幕坐标。getPointTow(1033,415,sin,cos,distance/scale);// write your code here}/*** 获取两个点距离* @param lat1 第一个位置的x* @param lon1 第一个位置的y* @param lat2 第二个位置的x* @param lon2 第二个位置的y* @return 两点之间的距离*/public static double distance(double lat1, double lon1, double lat2, double lon2){double D=Math.sqrt((lat2-lat1)*(lat2-lat1)+(lon2-lon1)*(lon2-lon1));return D;}/*** 获取两点之间的sin 值* @param lat1 第一个位置的x* @param lon1 第一个位置的y* @param lat2 第二个位置的x* @param lon2 第二个位置的y* @return*/public static double getSin(double lat1, double lon1, double lat2, double lon2){double sin=Math.abs(lon2-lon1)/distance(lat1,lon1,lat2,lon2);return sin;}/*** 获取两点之间的cos 值* @param lat1 第一个位置的x* @param lon1 第一个位置的y* @param lat2 第二个位置的x* @param lon2 第二个位置的y* @return*/public static double getCos(double lat1, double lon1, double lat2, double lon2){double cos=Math.abs(lat2-lat1)/distance(lat1,lon1,lat2,lon2);return cos;}/*** 获取第二个位置坐标* @param lat1* @param lon1* @param sin* @param cos* @param distance*/public static void getPointTow(double lat1, double lon1 ,double sin ,double cos,double distance){double lon2=distance*sin+lon1;double lat2=distance*cos+lat1;System.out.println("第二个坐标x:"+lat2 +";y:"+lon2);}
http://www.zhongyajixie.com/news/30638.html

相关文章:

  • 暴走漫画网站建设目的提升排名
  • 品牌网站建设小h蝌蚪西安seo排名外包
  • 网站设计欣赏郑州seo培训班
  • 电子书籍网站开发热词搜索排行榜
  • 网站素材下载宁波 seo整体优化
  • 局域网建站软件seo网站优化服务商
  • 杭州的网站建设公司nba排名赛程
  • wordpress 博客页面杭州网站优化咨询
  • 做直通车任务的网站快速提升排名seo
  • 栖霞做网站价格网络营销产品策略
  • php网站 mysql数据库配置文件seo优化课程
  • 咸阳网站建设多少钱网站排名首页前三位
  • 3d建站企业网络的组网方案
  • 行业门户网站建设方案书公司企业网站建设
  • 东莞网站优化平台今天
  • 做食品网站有哪些宁波专业seo外包
  • 网站制作应该注意到的问题seo优化器
  • 沈阳专业制作网站无锡百度推广代理商
  • 网站开发前端框架和后端框架今天的热搜榜
  • 外贸网站如何优化网络推广怎么做好
  • 长沙今日检出2例阳性seo比较好的优化方法
  • 河南夏邑网站建设谷歌独立站
  • wordpress建淘宝客网站吗常见的网络推广方式有哪些
  • 网站运营推广难做廊坊seo排名霸屏
  • 中英网站的设计seo石家庄
  • php开发的大型网站有哪些关键词
  • 开封网站制作公司91关键词排名
  • 毕业论文 用tp做网站网页加速器
  • 怎么做相亲网站头条发布视频成功显示404
  • 静态网站建设平台网络服务中心