设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: 喵呜喵5
打印 上一主题 下一主题

[胡扯] 【用代码说话】#2.史莱姆巢穴

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3574
在线时间
2338 小时
注册时间
2015-8-25
帖子
960

开拓者

11
发表于 2016-8-5 00:34:48 | 只看该作者
可以請教一下吗。。假如想要写史莱姆们的生命值是共用的话,按照对象化的思想应该是怎么样写呢?

我只会用@hp = $hp这种低级的写法。。。

RUBY 代码复制
  1. #像是rpg游戏里面,高级的粘液怪物假如不全部消灭的话又会不断再生。
  2.  
  3. #那么假想出一种所有史莱姆共用一条生命值的情况。
  4.  
  5. $hp = 10  #所有史莱姆共用10血
  6.  
  7. class Slime
  8.   def appear; @hp = $hp; end  #即使是新出现的史莱姆,生命值也是和共用生命值相同的。
  9.   def die; @hp = 0 $hp = 0; end
  10.   def bark
  11.     if @hp == 0
  12.       p 'Uuuu...'
  13.     else
  14.       p 'GaO!!'
  15.     end
  16.   end
  17. end

点评

恩,是的,现在我也学会用这个了。  发表于 2016-9-27 16:30
有一种变量叫类变量,@@hp  发表于 2016-9-27 16:24
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
126
在线时间
48 小时
注册时间
2016-2-9
帖子
31
12
发表于 2016-8-5 06:47:02 | 只看该作者
{:2_249:}顶一个
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

13
发表于 2016-8-5 07:47:16 | 只看该作者
七重 发表于 2016-8-5 00:34
可以請教一下吗。。假如想要写史莱姆们的生命值是共用的话,按照对象化的思想应该是怎么样写呢?

我只会用 ...

RUBY 代码复制
  1. class Slime
  2.   @hp = 10
  3.   class << self
  4.     attr_accessor :hp
  5.   end
  6.  
  7.   def hp
  8.     Slime.hp
  9.   end
  10.  
  11.   def appear
  12.     Slime.hp = 10
  13.   end
  14.  
  15.   def die
  16.     Slime.hp = 0
  17.   end
  18.  
  19.   def bark
  20.     if hp == 0
  21.       # ...
  22.     end
  23.   end
  24.  
  25. end

评分

参与人数 1星屑 +15 收起 理由
七重 + 15 谢谢你的解答!

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
67 小时
注册时间
2010-8-12
帖子
24
14
发表于 2016-8-5 11:06:27 | 只看该作者

面向对象的道理我都懂,然而我就是习惯面向过程怎么办
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-26 15:03

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表