Project1

标题: 怎样在两个事件之间画线段? [打印本页]

作者: mariofans    时间: 2014-6-17 21:23
标题: 怎样在两个事件之间画线段?
本帖最后由 mariofans 于 2014-6-17 21:28 编辑

以任意角度画线段,射线或者直线。
当然目前只需要在8个方向内画射线就足够了。
这个怎样用脚本做出来?(要允许多条存在)

——————修改——————
RUBY 代码复制
  1. sprite = Sprite.new
  2. sprite.bitmap = Bitmap.new(100,2)
  3. sprite.bitmap.fill_rect(sprite.bitmap.rect, Color.new(255,255,255))
  4. sprite.oy = sprite.bitmap.height/2
  5. a = [100,100]
  6. b = [200,0]
  7.  
  8. sprite.x, sprite.y = a
  9. length = Math.sqrt((b[0]-a[0])**2+(b[1]-a[1])**2)
  10. sprite.zoom_x =length/sprite.bitmap.width
  11. if (a[0] < b[0])
  12.   sprite.angle = Math.acos((b[1]-a[1])/length) * 180 / Math::PI - 90
  13. else
  14.   sprite.angle =-Math.acos((b[1]-a[1])/length) * 180 / Math::PI - 90
  15. end
  16. loop { Graphics.update }

似乎这样可以实现一条,但是怎么能画出很多条而且可以出现在地图上呢?
作者: 日月星辰    时间: 2014-6-17 21:34
本帖最后由 日月星辰 于 2014-6-17 21:44 编辑

lz问的到底是在屏幕上任意角度画出来,还是两个事件之间连条线。。。

[line]1[/line]

好吧=~= lz你可以做的是先读取事件的画面x,y坐标。然后根据坐标去调整zoomx,zoomy,这样就达到了拉伸图片/线条的效果【建议是大图然后缩小zoomx/y做,这样就没有什么清晰度问题啦啦】

我只是随意这么回答下因为lz的问题让我想起了:

https://rpg.blue/thread-360691-1-1.html

这个=~=【↑已经达成了从某一事件拉伸一个三角到某一特定的y值

[line]1[/line]

如果图片本来就是640*480的对角线,然后缩小部分,只会轻微变细,比变粗好看=~= OK如果lz表示不可以拉伸,,,所以是要一个个rect填。。
作者: mariofans    时间: 2014-6-17 21:52
日月星辰 发表于 2014-6-17 21:34
lz问的到底是在屏幕上任意角度画出来,还是两个事件之间连条线。。。


没错就是rect!只不过多条同时存在似乎比角度还要难……
但是可以不必刷新只需要出现和消失就可以了
作者: 日月星辰    时间: 2014-6-17 22:01
本帖最后由 日月星辰 于 2014-6-17 22:03 编辑
mariofans 发表于 2014-6-17 21:52
没错就是rect!只不过多条同时存在似乎比角度还要难……
但是可以不必刷新只需要出现和消失就可以了 ...


为什么多条同时存在难。。。

[line]1[/line]
明天期末考=~=lz我先睡了,,,有空再回复你,,lz继续去召唤各路人杰吧
作者: imsy    时间: 2014-6-18 08:32
本帖最后由 imsy 于 2014-6-18 08:35 编辑

https://rpg.blue/thread-332630-1-1.html
实测可用于XP,有个fdiv方法稍作改动就行了
↑9楼的脚本疑似无法兼容,仅供参考{:2_259:}




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