查看: 1761|回复: 8

[已经解决] 如何判断图片碰触

  [复制链接]

清纯红

梦石
0
星屑
61
在线时间
65 小时
注册时间
2009-7-23
回帖
955

贵宾

发表于 2009-7-27 17:08:38 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
如何判断图片碰触,有什么脚本?
就算痛也要做,宅必备,宅人的必备网站
梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
回帖
1912
发表于 2009-7-28 15:53:28 | 显示全部楼层
你是判断矩形边平行于坐标轴的图片么?那样的话比较简单:
设 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
回复

使用道具 举报

清纯红

梦石
0
星屑
61
在线时间
65 小时
注册时间
2009-7-23
回帖
955

贵宾

 楼主| 发表于 2009-7-28 19:40:59 | 显示全部楼层
谢了bz加分
回复

使用道具 举报

清纯红

梦石
0
星屑
61
在线时间
65 小时
注册时间
2009-7-23
回帖
955

贵宾

 楼主| 发表于 2009-7-28 20:05:18 | 显示全部楼层
3# 赤点
好像不行
Project3.rar (203.14 KB, 下载次数: 40)
就算痛也要做,宅必备,宅人的必备网站
回复

使用道具 举报

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
回帖
1912
发表于 2009-7-28 22:08:54 | 显示全部楼层
工程何意?何处判断了图片碰撞?
回复

使用道具 举报

清纯红

梦石
0
星屑
61
在线时间
65 小时
注册时间
2009-7-23
回帖
955

贵宾

 楼主| 发表于 2009-7-28 22:11:33 | 显示全部楼层
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
就算痛也要做,宅必备,宅人的必备网站
回复

使用道具 举报

清纯红

梦石
0
星屑
61
在线时间
65 小时
注册时间
2009-7-23
回帖
955

贵宾

 楼主| 发表于 2009-7-28 22:26:27 | 显示全部楼层
工程何意?何处判断了图片碰撞?
紫苏 发表于 2009-7-28 22:08

算了,我自己研究
就算痛也要做,宅必备,宅人的必备网站
回复

使用道具 举报

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
回帖
1912
发表于 2009-7-28 22:30:25 | 显示全部楼层
@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

程序中的逻辑坐标系统,原点在一个平面的左上角,呵呵~
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-4-4
回帖
43
发表于 2009-7-29 15:07:39 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部