Project1

标题: 如何判断图片碰触 [打印本页]

作者: 赤点    时间: 2009-7-27 17:08
标题: 如何判断图片碰触
如何判断图片碰触,有什么脚本?
作者: 紫苏    时间: 2009-7-28 15:53
你是判断矩形边平行于坐标轴的图片么?那样的话比较简单:
设 sx1, sy1, sx2, sy2 分别为第一个矩形的左上角 x 坐标,左上角 y 坐标,右下角 x 坐标,右下角 y 坐标;
设 dx1, dy1, dx2, dy2 分别为第二个矩形的左上角 x 坐标,左上角 y 坐标,右下角 x 坐标,右下角 y 坐标;
if dx1 > sx2 || dx2 < sx1 || dy1 > sy2 || dy2 < sy1
  # 两个图片没有碰撞
else
  # 两个图片碰撞了
end
作者: 赤点    时间: 2009-7-28 19:40
谢了bz加分
作者: 赤点    时间: 2009-7-28 20:05
3# 赤点
好像不行
Project3.rar (203.14 KB, 下载次数: 40)
作者: 紫苏    时间: 2009-7-28 22:08
工程何意?何处判断了图片碰撞?
作者: 赤点    时间: 2009-7-28 22:11
devil = Sprite.new
devil.bitmap = Bitmap.new("Graphics/Battlers/075-Devil01")
devil.ox = devil.bitmap.width / 2
devil.oy = devil.bitmap.height / 2
devil.x = 0
devil.y = 240


devila = Sprite.new
devila.bitmap = Bitmap.new("Graphics/Battlers/076-Devil02")
devila.ox = devil.bitmap.width / 2
devila.oy = devil.bitmap.height / 2
devila.x = 600
devila.y = 200


loop do
  Graphics.update
  
  devila.x -= 1
  devil.x += 1
    @sx1 = devila.x
    @sy1 = devila.y
    @sx2 = devila.x + devila.bitmap.width
    @sy2 = devila.y - devila.bitmap.height
    @dx1 = devil.x
    @dy1 = devil.y
    @dx2 = devil.x + devil.bitmap.width
    @dy2 = devil.y - devil.bitmap.height  
if @dx1 > @sx2 || @dx2 < @sx1 || @dy1 > @sy2 || @dy2 < @sy1
  # 两个图片没有碰
else
  # 两个图片碰撞了
  p 1
end   
  
end
作者: 赤点    时间: 2009-7-28 22:26
工程何意?何处判断了图片碰撞?
紫苏 发表于 2009-7-28 22:08

算了,我自己研究
作者: 紫苏    时间: 2009-7-28 22:30
@sx1 = devila.x
    @sy1 = devila.y
    @sx2 = devila.x + devila.bitmap.width
    @sy2 = devila.y + devila.bitmap.height
    @dx1 = devil.x
    @dy1 = devil.y
    @dx2 = devil.x + devil.bitmap.width
    @dy2 = devil.y + devil.bitmap.height

程序中的逻辑坐标系统,原点在一个平面的左上角,呵呵~
作者: 宇文暮    时间: 2009-7-29 15:07
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1