刚学java想做个小游戏,请教各位高手大侠,如何限制图片在窗体中的移动范围,只能限制坐标吗?好像很麻烦呀
3个回答
展开全部
你是在说游戏背景图片吗?有的时候会出界?
如果是的话可以创建两个矩形,一个是背景图片的,一个当前窗体的,只要判断当前窗体的矩形是否被背景图片的矩形包含就能判断背景图片是否出界 原理是一样的啊,你把人物图片也new一个矩形出来,矩形的左上角坐标就是人物左上角的坐标,长和宽就是人物图片的长和宽,然后同理new一个窗体的矩形出来。判断人物的矩形是不是被窗体的矩形包含,包含就表示没有出界。Rectangle(矩形)这个类是有一个方法contains直接比较的。
还有一点就是建议你移动的时候不要立即修改坐标,先搞一个零时变量来记录移动后的位置,用这个位置去做比较,如果没有出界再去修改真实的坐标。
如果是的话可以创建两个矩形,一个是背景图片的,一个当前窗体的,只要判断当前窗体的矩形是否被背景图片的矩形包含就能判断背景图片是否出界 原理是一样的啊,你把人物图片也new一个矩形出来,矩形的左上角坐标就是人物左上角的坐标,长和宽就是人物图片的长和宽,然后同理new一个窗体的矩形出来。判断人物的矩形是不是被窗体的矩形包含,包含就表示没有出界。Rectangle(矩形)这个类是有一个方法contains直接比较的。
还有一点就是建议你移动的时候不要立即修改坐标,先搞一个零时变量来记录移动后的位置,用这个位置去做比较,如果没有出界再去修改真实的坐标。
展开全部
必须使用坐标判断.
这种程序显示是在事件处理中移动图片的,在移动前,取得窗口内部大小(用窗口的getWidth,getHeight,getInsets方法),这样能得到窗口内部的Size,加载图片时能得到图片的width和heigth,比较图片的x,y是否小于0,图片的x,y分别加图片的witdth和height是否大于窗口内部的width和height
这种程序显示是在事件处理中移动图片的,在移动前,取得窗口内部大小(用窗口的getWidth,getHeight,getInsets方法),这样能得到窗口内部的Size,加载图片时能得到图片的width和heigth,比较图片的x,y是否小于0,图片的x,y分别加图片的witdth和height是否大于窗口内部的width和height
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是在说游戏背景图片吗?有的时候会出界?
如果是的话可以创建两个矩形,一个是背景图片的,一个当前窗体的,只要判断当前窗体的矩形是否被背景图片的矩形包含就能判断背景图片是否出界
如果是的话可以创建两个矩形,一个是背景图片的,一个当前窗体的,只要判断当前窗体的矩形是否被背景图片的矩形包含就能判断背景图片是否出界
追问
不是是一个人物的图片,按上下左右图片就相应的移动,可是图片会跑出窗体设置的范围,怎么办,大神。
追答
原理是一样的啊,你把人物图片也new一个矩形出来,矩形的左上角坐标就是人物左上角的坐标,长和宽就是人物图片的长和宽,然后同理new一个窗体的矩形出来。判断人物的矩形是不是被窗体的矩形包含,包含就表示没有出界。Rectangle(矩形)这个类是有一个方法contains直接比较的。
还有一点就是建议你移动的时候不要立即修改坐标,先搞一个零时变量来记录移动后的位置,用这个位置去做比较,如果没有出界再去修改真实的坐标。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询