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

Project1

 找回密码
 注册会员
搜索
查看: 2723|回复: 9
打印 上一主题 下一主题

[已经过期] 啊~要是让小草也随风摆动多好

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1759
在线时间
2524 小时
注册时间
2010-10-12
帖子
1454

开拓者

跳转到指定楼层
1
发表于 2012-6-5 18:25:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个比较难啊,有人能做出来么。尽量不占用太多运算效率,这草有过膝盖的,也有很高的芦苇。

Lv4.逐梦者

梦石
8
星屑
2804
在线时间
1611 小时
注册时间
2010-10-22
帖子
1059

极短25获奖

2
发表于 2012-6-5 18:55:45 | 只看该作者
这个,用PS不行么...做成Autotiles的动画元件?
【2022.06.03】原本以为已经不可能再找回来的东西重新找回来了,原本一直念念不忘的坑终于再一次拿起铲子了。一别竟近10年,你好,我的世界我的梦。
【不可阻挡】异元-地劫黎明
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
35186
在线时间
4169 小时
注册时间
2007-12-15
帖子
10067
3
发表于 2012-6-6 13:16:38 | 只看该作者
本帖最后由 89444640 于 2012-6-6 13:18 编辑

做640 480 的草 无缝拼接 4帧循环。芦苇也是此效果,不过高度的话,要考虑视角问题而定,芦苇横版的比较容易。
参考图可以找侍魂 斩红狼无双剑牙神的芦苇地图。
回复

使用道具 举报

Lv3.寻梦者

虚空人形

梦石
0
星屑
4604
在线时间
2037 小时
注册时间
2011-8-11
帖子
3398

贵宾

4
发表于 2012-6-6 15:19:50 | 只看该作者
把草摆动的各个图片做成行走图,
用事件点(允许穿透)排布在地图上,
如果不要很多的话。

点评

然后主角就站在草上了  发表于 2012-6-6 15:52
回复

使用道具 举报

Lv1.梦旅人

梦·贤者

梦石
0
星屑
50
在线时间
1141 小时
注册时间
2007-12-15
帖子
4100
5
发表于 2012-6-6 16:58:12 | 只看该作者
放那么多并行处理的事件,游戏会卡的
http://rpg.blue/home.php?mod=space&uid=34951&do=blog&id=12799
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

6
发表于 2012-6-7 09:19:42 | 只看该作者
hcm 发表于 2012-6-6 15:19
把草摆动的各个图片做成行走图,
用事件点(允许穿透)排布在地图上,
如果不要很多的话。 ...

调整地图元件的等级(0—5,5为完全遮挡主角)

点评

5不错  发表于 2012-6-9 18:16
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
51
在线时间
13 小时
注册时间
2012-6-6
帖子
29
7
发表于 2012-6-7 16:39:37 | 只看该作者
这个不知道行不行

{:4_139:}{:4_139:}{:4_139:}{:4_139:}{:4_139:}{:4_139:}

class Game_Picture
  #--------------------------------------------------------------------------
  # ● 定义实例变量
  #--------------------------------------------------------------------------
  attr_reader   :number                   # 图片编号
  attr_reader   :name                     # 文件名
  attr_reader   :origin                   # 原点
  attr_reader   :x                        # X 坐标
  attr_reader   :y                        # Y 坐标
  attr_reader   :zoom_x                   # X 方向放大率
  attr_reader   :zoom_y                   # Y 方向放大率
  attr_reader   :opacity                  # 不透明度
  attr_reader   :blend_type               # 合成方式
  attr_reader   :tone                     # 色调
  attr_reader   :angle                    # 旋转角度
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #     number : 图片编号
  #--------------------------------------------------------------------------
  def initialize(number)
    @number = number
    @name = ""
    @origin = 0
    @x = 0.0
    @y = 0.0
    @zoom_x = 100.0
    @zoom_y = 100.0
    @opacity = 255.0
    @blend_type = 1
    @duration = 0
    @target_x = @x
    @target_y = @y
    @target_zoom_x = @zoom_x
    @target_zoom_y = @zoom_y
    @target_opacity = @opacity
    @tone = Tone.new(0, 0, 0, 0)
    @tone_target = Tone.new(0, 0, 0, 0)
    @tone_duration = 0
    @angle = 0
    @rotate_speed = 0
  end
  #--------------------------------------------------------------------------
  # ● 显示图片
  #     name         : 文件名
  #     origin       : 原点
  #     x            : X 坐标
  #     y            : Y 坐标
  #     zoom_x       : X 方向放大率
  #     zoom_y       : Y 方向放大率
  #     opacity      : 不透明度
  #     blend_type   : 合成方式
  #--------------------------------------------------------------------------
  def show(name, origin, x, y, zoom_x, zoom_y, opacity, blend_type)
    @name = name
    @origin = origin
    @x = x.to_f
    @y = y.to_f
    @zoom_x = zoom_x.to_f
    @zoom_y = zoom_y.to_f
    @opacity = opacity.to_f
    @blend_type = blend_type
    @duration = 0
    @target_x = @x
    @target_y = @y
    @target_zoom_x = @zoom_x
    @target_zoom_y = @zoom_y
    @target_opacity = @opacity
    @tone = Tone.new(0, 0, 0, 0)
    @tone_target = Tone.new(0, 0, 0, 0)
    @tone_duration = 0
    @angle = 0
    @rotate_speed = 0
  end
  #--------------------------------------------------------------------------
  # ● 移动图片
  #     duration     : 时间
  #     origin       : 原点
  #     x            : X 坐标
  #     y            : Y 坐标
  #     zoom_x       : X 方向放大率
  #     zoom_y       : Y 方向放大率
  #     opacity      : 不透明度
  #     blend_type   : 合成方式
  #--------------------------------------------------------------------------
  def move(duration, origin, x, y, zoom_x, zoom_y, opacity, blend_type)
    @duration = duration
    @origin = origin
    @target_x = x.to_f
    @target_y = y.to_f
    @target_zoom_x = zoom_x.to_f
    @target_zoom_y = zoom_y.to_f
    @target_opacity = opacity.to_f
    @blend_type = blend_type
  end
  #--------------------------------------------------------------------------
  # ● 更改旋转速度
  #     speed : 旋转速度
  #--------------------------------------------------------------------------
  def rotate(speed)
    @rotate_speed = speed
  end
  #--------------------------------------------------------------------------
  # ● 开始更改色调
  #     tone     : 色调
  #     duration : 时间
  #--------------------------------------------------------------------------
  def start_tone_change(tone, duration)
    @tone_target = tone.clone
    @tone_duration = duration
    if @tone_duration == 0
      @tone = @tone_target.clone
    end
  end
  #--------------------------------------------------------------------------
  # ● 消除图片
  #--------------------------------------------------------------------------
  def erase
    @name = ""
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update
    if @duration >= 1
      d = @duration
      @x = (@x * (d - 1) + @target_x) / d
      @y = (@y * (d - 1) + @target_y) / d
      @zoom_x = (@zoom_x * (d - 1) + @target_zoom_x) / d
      @zoom_y = (@zoom_y * (d - 1) + @target_zoom_y) / d
      @opacity = (@opacity * (d - 1) + @target_opacity) / d
      @duration -= 1
    end
    if @tone_duration >= 1
      d = @tone_duration
      @tone.red = (@tone.red * (d - 1) + @tone_target.red) / d
      @tone.green = (@tone.green * (d - 1) + @tone_target.green) / d
      @tone.blue = (@tone.blue * (d - 1) + @tone_target.blue) / d
      @tone.gray = (@tone.gray * (d - 1) + @tone_target.gray) / d
      @tone_duration -= 1
    end
    if @rotate_speed != 0
      @angle += @rotate_speed / 2.0
      while @angle < 0
        @angle += 360
      end
      @angle %= 360
    end
  end
end

点评

这是啥  发表于 2012-6-9 18:16
开发中。。。。。。
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
758
在线时间
2064 小时
注册时间
2011-10-3
帖子
1686
8
发表于 2012-6-7 17:13:12 | 只看该作者
图块不是有动态原件的吗?把草也做成动态原件就好了嘛

点评

还是有区别的  发表于 2012-6-9 18:16
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

9
发表于 2012-6-9 18:53:44 | 只看该作者
003号人 发表于 2012-6-7 16:39
这个不知道行不行
  1. class Game_Picture
  2.   #--------------------------------------------------------------------------
  3.   # ● 定义实例变量
  4.   #--------------------------------------------------------------------------
  5.   attr_reader   :number                   # 图片编号
  6.   attr_reader   :name                     # 文件名
  7.   attr_reader   :origin                   # 原点
  8.   attr_reader   :x                        # X 坐标
  9.   attr_reader   :y                        # Y 坐标
  10.   attr_reader   :zoom_x                   # X 方向放大率
  11.   attr_reader   :zoom_y                   # Y 方向放大率
  12.   attr_reader   :opacity                  # 不透明度
  13.   attr_reader   :blend_type               # 合成方式
  14.   attr_reader   :tone                     # 色调
  15.   attr_reader   :angle                    # 旋转角度
  16.   #--------------------------------------------------------------------------
  17.   # ● 初始化对像
  18.   #     number : 图片编号
  19.   #--------------------------------------------------------------------------
  20.   def initialize(number)
  21.     @number = number
  22.     @name = ""
  23.     @origin = 0
  24.     @x = 0.0
  25.     @y = 0.0
  26.     @zoom_x = 100.0
  27.     @zoom_y = 100.0
  28.     @opacity = 255.0
  29.     @blend_type = 1
  30.     @duration = 0
  31.     @target_x = @x
  32.     @target_y = @y
  33.     @target_zoom_x = @zoom_x
  34.     @target_zoom_y = @zoom_y
  35.     @target_opacity = @opacity
  36.     @tone = Tone.new(0, 0, 0, 0)
  37.     @tone_target = Tone.new(0, 0, 0, 0)
  38.     @tone_duration = 0
  39.     @angle = 0
  40.     @rotate_speed = 0
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   # ● 显示图片
  44.   #     name         : 文件名
  45.   #     origin       : 原点
  46.   #     x            : X 坐标
  47.   #     y            : Y 坐标
  48.   #     zoom_x       : X 方向放大率
  49.   #     zoom_y       : Y 方向放大率
  50.   #     opacity      : 不透明度
  51.   #     blend_type   : 合成方式
  52.   #--------------------------------------------------------------------------
  53.   def show(name, origin, x, y, zoom_x, zoom_y, opacity, blend_type)
  54.     @name = name
  55.     @origin = origin
  56.     @x = x.to_f
  57.     @y = y.to_f
  58.     @zoom_x = zoom_x.to_f
  59.     @zoom_y = zoom_y.to_f
  60.     @opacity = opacity.to_f
  61.     @blend_type = blend_type
  62.     @duration = 0
  63.     @target_x = @x
  64.     @target_y = @y
  65.     @target_zoom_x = @zoom_x
  66.     @target_zoom_y = @zoom_y
  67.     @target_opacity = @opacity
  68.     @tone = Tone.new(0, 0, 0, 0)
  69.     @tone_target = Tone.new(0, 0, 0, 0)
  70.     @tone_duration = 0
  71.     @angle = 0
  72.     @rotate_speed = 0
  73.   end
  74.   #--------------------------------------------------------------------------
  75.   # ● 移动图片
  76.   #     duration     : 时间
  77.   #     origin       : 原点
  78.   #     x            : X 坐标
  79.   #     y            : Y 坐标
  80.   #     zoom_x       : X 方向放大率
  81.   #     zoom_y       : Y 方向放大率
  82.   #     opacity      : 不透明度
  83.   #     blend_type   : 合成方式
  84.   #--------------------------------------------------------------------------
  85.   def move(duration, origin, x, y, zoom_x, zoom_y, opacity, blend_type)
  86.     @duration = duration
  87.     @origin = origin
  88.     @target_x = x.to_f
  89.     @target_y = y.to_f
  90.     @target_zoom_x = zoom_x.to_f
  91.     @target_zoom_y = zoom_y.to_f
  92.     @target_opacity = opacity.to_f
  93.     @blend_type = blend_type
  94.   end
  95.   #--------------------------------------------------------------------------
  96.   # ● 更改旋转速度
  97.   #     speed : 旋转速度
  98.   #--------------------------------------------------------------------------
  99.   def rotate(speed)
  100.     @rotate_speed = speed
  101.   end
  102.   #--------------------------------------------------------------------------
  103.   # ● 开始更改色调
  104.   #     tone     : 色调
  105.   #     duration : 时间
  106.   #--------------------------------------------------------------------------
  107.   def start_tone_change(tone, duration)
  108.     @tone_target = tone.clone
  109.     @tone_duration = duration
  110.     if @tone_duration == 0
  111.       @tone = @tone_target.clone
  112.     end
  113.   end
  114.   #--------------------------------------------------------------------------
  115.   # ● 消除图片
  116.   #--------------------------------------------------------------------------
  117.   def erase
  118.     @name = ""
  119.   end
  120.   #--------------------------------------------------------------------------
  121.   # ● 刷新画面
  122.   #--------------------------------------------------------------------------
  123.   def update
  124.     if @duration >= 1
  125.       d = @duration
  126.       @x = (@x * (d - 1) + @target_x) / d
  127.       @y = (@y * (d - 1) + @target_y) / d
  128.       @zoom_x = (@zoom_x * (d - 1) + @target_zoom_x) / d
  129.       @zoom_y = (@zoom_y * (d - 1) + @target_zoom_y) / d
  130.       @opacity = (@opacity * (d - 1) + @target_opacity) / d
  131.       @duration -= 1
  132.     end
  133.     if @tone_duration >= 1
  134.       d = @tone_duration
  135.       @tone.red = (@tone.red * (d - 1) + @tone_target.red) / d
  136.       @tone.green = (@tone.green * (d - 1) + @tone_target.green) / d
  137.       @tone.blue = (@tone.blue * (d - 1) + @tone_target.blue) / d
  138.       @tone.gray = (@tone.gray * (d - 1) + @tone_target.gray) / d
  139.       @tone_duration -= 1
  140.     end
  141.     if @rotate_speed != 0
  142.       @angle += @rotate_speed / 2.0
  143.       while @angle < 0
  144.         @angle += 360
  145.       end
  146.       @angle %= 360
  147.     end
  148.   end
  149. end
复制代码
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
539 小时
注册时间
2012-1-15
帖子
1234
10
发表于 2012-6-9 19:50:32 | 只看该作者
我记得之前有个动态双远景
骑鹿走歧路,路不平鹿颠行,人心难安定。

男儿志兮天下事,但有进兮不可止,言志已酬便无志

黑夜穿梭幽灵影,白色骷髅形似马,郎唤南宫名带恨,君扬怒眉杀天下
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-2 07:12

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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