1 Star 0 Fork 6

mayyang0913/TankGame

forked from 紫荊/TankGame 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
rectangle.rb 745 Bytes
一键复制 编辑 原始数据 按行查看 历史
紫荊 提交于 2017-07-29 10:21 . rectangle
# -*- coding: UTF-8 -*-
module TankGame
# 碰撞检测类
class Rectangle
# getter and setter
attr_reader :x, :y, :w, :h
# 构造器方法
def initialize x, y, w, h
@x, @y, @w, @h = x, y, w, h
end
# 矩形碰撞检测方法
def intersects? other_rectangle
r = other_rectangle
# 根据两个矩形左上角x,y计算出中心点x,y,
x, y, x1, y1 = @x + @w/2, @y + @h/2, r.x + r.w/2, r.y + r.h/2
# 当两个矩形横向中心点的距离小于两个矩形宽的和的一半
# 且两个矩形纵向中心点的距离小于两个矩形高的和的一半,即碰上
(x - x1).abs < (@w + r.w)/2 && (y - y1).abs < (@h + r.h)/2
end
end
end
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Ruby
1
https://gitee.com/mayyang/tankgame.git
git@gitee.com:mayyang/tankgame.git
mayyang
tankgame
TankGame
master

搜索帮助