【问题标题】:Check if two colours are touching using jquery [closed]使用jquery检查两种颜色是否接触[关闭]
【发布时间】:2013-09-01 23:19:47
【问题描述】:

我正在制作一个 jquery 游戏,我有一个关卡作为背景,而不是每个关卡都有很多代码行检查它在哪里,有没有办法检查两种颜色是否相互接触。所以背景和角色。

我宁愿不使用插件。

jquery 用于检查它是否触及一行:

if(level === 1) {
    if(c.css('left') === '90px') {
        c.css({'left': '115px', 'bottom': '94px'});
    }
}

http://jsfiddle.net/Hive7/KPyxN/2/

【问题讨论】:

  • “有没有办法检查两种颜色是否相互接触” - 不,不是你想要的方式。
  • 那么有没有办法做我想做的事而不用走很长的路?
  • 欢迎来到 StackOverflow!我们更喜欢问题来演示最少的代码,以便更好地重现您要解决的特定问题。阅读the SO about page了解更多信息。
  • @Blazemonger 只是说我不是新人
  • 所以您想知道蓝色框是否位于整个背景图像的特定颜色之上?很抱歉,JavaScript 无法识别这样的事情。你需要重新考虑你的整个方法。您可能需要实现某种collision detection

标签: javascript jquery colors background contact


【解决方案1】:
 function collision($div1, $div2) {
      var x1 = $div1.offset().left;
      var y1 = $div1.offset().top;
      var h1 = $div1.outerHeight(true);
      var w1 = $div1.outerWidth(true);
      var b1 = y1 + h1;
      var r1 = x1 + w1;
      var x2 = $div2.offset().left;
      var y2 = $div2.offset().top;
      var h2 = $div2.outerHeight(true);
      var w2 = $div2.outerWidth(true);
      var b2 = y2 + h2;
      var r2 = x2 + w2;

      if (b1 < y2 || y1 > b2 || r1 < x2 || x1 > r2) return false;
      return true;
    }

JSFIDDLE DEMO

【讨论】:

  • 将尝试使用不同的方法。谢谢
  • 没有按我的计划工作看看这个jsfiddle.net/Hive7/KPyxN/3 应该提醒一下我知道这是因为我正在使用图像。有办法解决吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-10
  • 2013-02-28
相关资源
最近更新 更多