查看: 2463|回复: 5

[胡扯] 【鬼扯】ruby酱:QAQ,伦家也要玩js~

[复制链接]
梦石
0
星屑
48
在线时间
784 小时
注册时间
2013-1-4
回帖
1057
发表于 2015-11-22 15:10:22 | 显示全部楼层 |阅读模式

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

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

×
自打ruby酱听说RM系列的最新版——MV不支持ruby,反而换成了js。郁闷了好久的ruby酱,于是便下定决心去学js。伦家也要玩js~
经过几天几夜没日没夜的苦劳。我萌的ruby酱终于写出了下面的代码:
3)_AZFQPXB)9`R3[($$D]R6.png
ruby酱:什么?你说这是js的代码,ruby跑不了?你竟然小瞧伦家QAQ。嘤嘤婴~伦家这就跑给你看!!!
js中的效果:
ZMW{WN~01MK)E_Z413NLY01.png
ruby酱跑的结果:
I02U%_GQ}D__6YPQB512NO1.png

ruby酱:想知道是怎么做到的么?哼!伦家才不告诉你呢~

ruby的完整实现代码[pre lang="ruby"]class Prototype < Hash
  def method_missing(key, val)
    return self[key.id2name[0,key.size-1].to_sym] = val if key.id2name[-1,1] == '=' #赋值
    return nil unless self[key]
    return self[key] unless self[key].instance_of?(Function)
    $arguments = val
    self[key].call
    $this,$arguments = nil
  end
end

class Function < Prototype
  def initialize(func)
    @func = func
    @prototype = Prototype.new
  end

  def call
    @func.call
    $this,$arguments = nil
    self
  end
  
  def prototype
    return @prototype
  end
  
  def method_missing(key, *val)
    return self[key.id2name[0,key.size-1].to_sym] = val[0] if key.id2name[-1,1] == '='
    $this = self
    return prototype.send(key,val) unless self[key]
    return self[key] unless self[key].instance_of?(Function)
    $arguments = val
    self[key].call
    $this,$arguments = nil
  end
end

def new(val)
  $this = val.clone
  return $this.call
end

def this
  return $this  = $this || Function.new(lambda{})
end

def function(&block)
  return Function.new(block)
end

def arguments
  return $arguments = $arguments || []
end

console = function(){}
console.log = function(){arguments.each{|i| p i}}

A = function(){
  this.x = 11;
  this.y = 13;
  this.method1 = function(){
    console.log(this.x);
  };
}

A.prototype.move = function(){
  this.x += arguments[0];
  this.y += arguments[1];
}

b = new A;
b.method1();
b.move(12,12);
console.log(b.x);[/pre]


好了,这完全是显得jj疼折腾出来的产物。前天脑子一抽就在想写一段能在ruby和js里都能跑的代码会是怎样,然后就有了上面的玩意。今天正好把代码整理了下发上来。代码的实用价值基本没有,实际上好多地方也只能勉强实现类似的效果。不过,这也从侧面可以看出ruby语法的灵活。
RM-GUI延期。。。最近被黑心老板压迫T_T
二次元少女的shitake,长着长脸,身高165,蓝色卷双马尾,FCUP,瞳色黑色,病气和御宅属性,是天才少女。

bluer
公主殿下

梦石
0
星屑
283
在线时间
533 小时
注册时间
2013-10-19
回帖
2017
发表于 2015-11-22 16:46:40 | 显示全部楼层
要我帮你换块尿布吗~~~~~~~~?
回复

使用道具 举报

百合控

梦石
0
星屑
6548
在线时间
1275 小时
注册时间
2013-8-21
回帖
3522

开拓者

发表于 2015-11-22 17:24:56 | 显示全部楼层
squre.jpg
B.png
C.png

点评

好歹后面两个图是我自己临时做的(  发表于 2015-11-27 20:06
纯图扣分,浴巾注意  发表于 2015-11-27 19:12
Σ( ゚д゚) 泥邹凯!  发表于 2015-11-22 18:36
正好成绩哔了浴巾大美女233  发表于 2015-11-22 18:31
萌新瑟瑟发抖
看到我请叫我去干活
回复

使用道具 举报

发表于 2015-11-22 19:02:20 来自手机 | 显示全部楼层
因为需要新语言所以放弃mv了啊哈哈哈哈哈哈哈哈⊙▽⊙ 哈哈哈哈哈哈哈哈哈哈哈哈哈 哈哈哈哈哈哈哈哈哈哈哈哈哈 哈哈哈哈哈哈哈哈哈哈哈哈哈 哈哈哈哈哈哈哈哈哈哈哈哈哈
回复

使用道具 举报

梦石
0
星屑
48
在线时间
134 小时
注册时间
2015-11-7
回帖
509
发表于 2015-11-22 22:45:20 | 显示全部楼层
ruby跑js没什么卵用

让mv跑xpvxva的脚本才爽
回复

使用道具 举报

梦石
0
星屑
211
在线时间
905 小时
注册时间
2010-9-6
回帖
3138
发表于 2015-11-23 13:26:21 | 显示全部楼层
哎呀,窝渠……看到花括号好兴奋捏。肿么办?!偶会用JAVA的,虽然是刚学滴。
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部