| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:  注册  忘记密码
 
密 码:  
共有 1117 人关注过本帖
标题:java绘图最小单位问题?
只看楼主 加入收藏
布林一角
Rank: 1
来 自:安徽
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-2-19
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
java绘图最小单位问题?
我最近在做虚拟平台,就是模拟机器人在场地上的运动。但是在绘制场地图的时候出现了一个问题,场地要求是13000*13000的正方形(假设单位是像素)。但是我的电脑屏幕不可能有那么大,于是考虑使用缩放,但是这又会导致场地图失真。所以我请问java中有没有如同mfc中gdi映射模式,将单位缩小,但确保不失真。
搜索更多相关主题的帖子: java 机器人 正方形 地图 
2012-02-19 23:22
lucky563591
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:765
专家分:2103
注 册:2009-11-18
收藏
得分:10 
看看jMonkeyengine的文档。
2012-02-20 08:57
懂也不懂
Rank: 4
等 级:业余侠客
威 望:2
帖 子:73
专家分:224
注 册:2010-12-1
收藏
得分:10 
我以前写的游戏都是先画出一个屏幕的地图来,然后再根据玩家运动进行地图滚动。当然这算法也很简单的,完全可以按照自己的需求来实现自己的算法。
2012-02-20 11:10
布林一角
Rank: 1
来 自:安徽
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-2-19
收藏
得分:0 
我以前写的游戏都是先画出一个屏幕的地图来,然后再根据玩家运动进行地图滚动。

先谢谢了,我想请问怎么实现地图滚动?
我试着将图画在panel上,然后加入到JScrollPane中,
但是图够大,依旧没有出现滚动条。
求解?
2012-02-20 20:39
懂也不懂
Rank: 4
等 级:业余侠客
威 望:2
帖 子:73
专家分:224
注 册:2010-12-1
收藏
得分:0 
看你这样子不像是做手机游戏了,那这样吧,随便写了个弱智的方法,
static int x = 0;
    static int y = 0;
    static JLabel jl = null;
    public static void main(String args[]) throws  Exception
    {
        JFrame jf = new JFrame();
        JButton jb = new JButton("移动");
        jl = new JLabel(new ImageIcon("images/i.png"));
        jb.addActionListener(new ActionListener(){

            @Override
            public void actionPerformed(ActionEvent arg0) {
                // TODO Auto-generated method stub
                x+=10;
                y+=10;
                jl.setLocation(0-x, 0-y);
            }
            
        });
        
        jf.add(jb,new BorderLayout().NORTH);
        jf.add(jl,new BorderLayout().SOUTH);
        jf.setSize(400, 300);
        jf.setResizable(false);
        jf.setVisible(true);
    }
2012-02-20 22:51
布林一角
Rank: 1
来 自:安徽
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-2-19
收藏
得分:0 
public class YWindows extends JLabel
{
    private Graphics g;
   
    private JFrame frame;
   
    private JScrollPane spanel;
   
    public YWindows ()
    {
       frame = new JFrame("Graphics");
      
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      
       spanel = new JScrollPane(this);
      
       frame.setContentPane(spanel);
      
      
//       frame.setSize(1300, 1300);
      
       frame.pack();
      
       frame.setVisible(true);
      
       this.setLayout(null);

       this.paint(g);
    }
   
    @Override
    public void paint(Graphics g)
    {
        g.setColor(Color.CYAN);
        g.fillRect(10, 10, 196, 152);
        
        g.setColor(Color.red);
        g.fillRect(206, 10, 100, 100);
        
        g.setColor(Color.PINK);
        g.fillRect(10, 152, 443, 443);
        
        g.setColor(Color.CYAN);
        g.fillRect(275, 595, 100, 155);//L3
        
        
        g.setColor(Color.PINK);
        g.fillRect(10, 595, 275, 155);
        
        g.setColor(Color.PINK);
        g.fillRect(10, 750, 375, 342);
        
    }
   
   
    public static void main(String[] args)
    {
        new YWindows();
    }
   
}

这是我写的代码,我的意思是直接在画布上绘图,然后加入到面板上。而不是载入图片。
请教一下。谢谢……
2012-02-21 16:03
懂也不懂
Rank: 4
等 级:业余侠客
威 望:2
帖 子:73
专家分:224
注 册:2010-12-1
收藏
得分:0 
那你可以给YWindows设置两个变量x,y来表示要绘制图片的位置,然后将大图片在裁剪成一定大小的单元,比如:100*100的,并存储在一个数组中,然后根据情况使用 g.draw(Image,x,y,null)来绘制的图片,当然我这只是给你说一下我的思路,这样,你可以在做程序的时候将你的游戏戏窗体的大小设置为固定大小,这样在处理绘制地图时会比较简单。说的不好,因为我之前写的基本都是手机游戏。
2012-02-21 21:02
guanzhe
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2011-7-28
收藏
得分:0 
学习了
2012-02-24 21:53
oceanyu
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2012-2-19
收藏
得分:0 
回复 2楼 lucky563591
能给个win7 64 的编程软件吗 564667368@
2012-02-27 09:30
快速回复:java绘图最小单位问题?
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013774 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved