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

Project1

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

[原创发布] 【伪·3D】脚本【非原创】及建筑物显示问题。【已经解决】

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
111 小时
注册时间
2012-4-21
帖子
299
跳转到指定楼层
1
发表于 2012-6-9 10:45:04 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 晚安世界 于 2012-7-2 15:50 编辑

伪·3D脚本最近出现了建筑物无法显示的问题(注:此脚本并非我原创,我只是告诉大家如何设置其中要显示的建筑物而已,作者发布时并未说明这个问题。)

就是明明已经设置了建筑物,在执行游戏测试时却显示不出来。

解决方法是:

打开数据库——图块。然后调到地形标志——将要显示的建筑改为1

如下


然后就可以正常显示了。

伪3D脚本如下
  1. #克蓝娜德 CNGAMES
  2. =begin
  3. 把下面的字符加到你的地图名里面
  4. [W3D]  -  使用伪3D 如果你不填的话 就木有效果
  5. [#XX] -  XX = 叉叉范围是0-89之间 惯例用了我给你的伪3D看到这个是不是有违和感
  6. [-X]  -  X = 这个X的范围是0或者1 0为显示两面墙 1为仅显示
  7. 法线正面的墙(只是个概念伪3D肿么会有法线,也就是正面朝着你的墙)
  8. 如果你不写[#XX]或者[-X]就会使用默认的
  9. 默认参数为:
  10. [#XX] = [#45]
  11. [-X] = [-1]
  12. =end
  13. class Game_System
  14.   alias initialize_W3D initialize
  15.    
  16.   attr_reader :factor
  17.   attr_reader :correct
  18.   
  19.   attr_reader :scroll_y
  20.   attr_reader :distance
  21.   attr_reader :angle
  22.   attr_reader :height
  23.   attr_reader :columns
  24.   attr_reader :filter
  25.   attr_reader :zoom
  26.   attr_accessor :new_zoom
  27.   attr_accessor :hidewalls
  28.   attr_accessor :hide
  29.   attr_accessor :new_angle
  30.   attr_accessor :need_refresh
  31.   attr_accessor :coord
  32.   def initialize
  33.     initialize_W3D
  34.     @zoom = 1.00
  35.     @scroll_y = 256#相机与角色的距离
  36.     @height = 1    #地图原件的高度,建议不要改 除非你做特殊效果
  37.     @columns = 8   #伪3D图块的质量,值为8或者16。如果场景不大可以用16。
  38.                    #针对纵面 8的话图块边缘锯齿比较大,流畅。16边缘锯齿较小,卡。
  39.     @filter = 2*32 #纵向墙的高度设定(如果增加高度 不要忘了在上面加上标志)
  40.     @hidewalls = 1 #这个就是默认的双面还是单面墙显示的值,值为0或1。
  41.     @distance = 480#焦距 玩过相机的人都知道 值不要太低,默认为480,不要低于256。
  42.     #焦距值越高看到纵面的墙壁面积就越少,越低看到的墙壁面积就越多。
  43.     @hide = 90#角色与原件距离的Y坐标的值,用于遮挡角色时半透明。
  44.     #一个原件为32像素所以值至少为33 不然低于33 你脸贴到墙上墙都不会管你。
  45.     self.angle = 45 #摄像机角度
  46.     #以上属性均可在游戏中更改,用事件页第三页的脚本调用  格式为:
  47.     #$game_system.(属性) = value(值)
  48.     #举个例子:
  49.     #$game_system.zoom = 1.5   #(1.5为放大150%)
  50.     #或者
  51.     #$game_system.columns = 8
  52.    
  53.     #以下为内部使用,请勿随意更改
  54.     @new_angle = false
  55.     @need_refresh = false
  56.     @new_zoom = false
  57.     @coord = nil
  58.   end
  59.   
  60.   #部分脚本基于Neo Mode07。
  61.   def zoom=(n)
  62.     if @zoom != n
  63.       @new_zoom = true
  64.     end
  65.     @zoom = n
  66.   end
  67.   
  68.   def refresh(x,y)
  69.     @coord = [x,y]
  70.   end
  71.   
  72.   def screen2W3D_y(y)
  73.     y *= @zoom
  74.     return @scroll_y + (@cd * y) / (@distance - y * @sinus)
  75.   end
  76.   
  77.   def screen2map_y(y)
  78.     return ((@distance * (@scroll_y - y) / @zoom /
  79.       (@dif - y * @sinus) + @scroll_y))
  80.   end
  81.   
  82.   def screen2zoom(y)
  83.     return (y * @factor + @correct) * @zoom
  84.   end
  85.   
  86.   def angle=(n)
  87.     @angle = n
  88.     @cosinus = Math.cos(Math::PI * (@angle / 180.0))
  89.     @sinus = Math.sin(Math::PI * (@angle / 180.0))
  90.     @cd = @cosinus * @distance
  91.     @ys = @scroll_y * @sinus
  92.     @dif = @ys - @cd
  93.    
  94.     z0 = @distance / (@distance + @scroll_y * @sinus)
  95.     h0 = (-@distance * @scroll_y * @cosinus) /
  96.       (@distance + @scroll_y * @sinus) + @scroll_y
  97.     @factor = (1.0 - z0) / (@scroll_y - h0)
  98.     @correct = 1.0 - @scroll_y * @factor
  99.     @new_angle = true
  100.   end
  101.   
  102.   def distance=(n)
  103.     @distance = n
  104.     self.angle = @angle
  105.   end
  106.   
  107.   def height=(n)
  108.     @height = n
  109.     @need_refresh = true
  110.   end
  111.   
  112.   def columns=(n)
  113.     @columns = n
  114.     @need_refresh = true
  115.   end
  116. end

  117. $data_maps = load_data("Data/MapInfos.rxdata")

  118. class W3DTilemap
  119.   attr_reader   :autotiles
  120.   attr_accessor :tileset
  121.   attr_accessor :priorities
  122.   
  123.   def initialize(vp)
  124.     @viewport = vp
  125.     @horizontal = {}  
  126.     @vertical = {}   
  127.     @tileset = nil
  128.     @map_data = nil
  129.     @priorities = nil
  130.     @bitmap = Bitmap.new(1,1)
  131.     @sprites = []     
  132.     @autotiles = []
  133.     refresh
  134.   end
  135.   
  136.   def refresh(sprites=true)
  137.     @height = $game_system.height
  138.     @columns = $game_system.columns
  139.     @scroll_y = $game_system.scroll_y
  140.     @filter = $game_system.filter
  141.     @ox = -1
  142.     @oy = -1
  143.     if sprites
  144.       w = nil
  145.       @sprites.each{ |w|
  146.         w.dispose}
  147.       @sprites = []
  148.       for i in 0...(@scroll_y / @height)
  149.         @sprites[i] = Sprite.new(@viewport)
  150.         @sprites[i].y = i * @height
  151.       end
  152.       for i in (@scroll_y / @height)...(((480-@scroll_y) / 2 + @scroll_y) /
  153.                                                                       @height)
  154.         @sprites[i] = Sprite.new(@viewport)
  155.         @sprites[i].y = i * @height * 2 - @scroll_y
  156.       end
  157.     end
  158.     @sprites.each {|w|
  159.       w.zoom_x = $game_system.screen2zoom(w.y+1)
  160.       if w.zoom_x > 1
  161.         w.zoom_y = w.zoom_x
  162.       end
  163.       w.x = 320
  164.     }
  165.     if sprites
  166.       unless @map_data.nil?
  167.         refresh_bitmap
  168.       end
  169.     end
  170.   end
  171.   
  172.   def terrain=(n)
  173.     @terrain = n
  174.   end
  175.   
  176.   def tileset=(bitmap)
  177.     @tileset = bitmap
  178.   end
  179.   
  180.   def ox=(n)
  181.     return if @ox == n
  182.     @ox = n
  183.     dif = (@oy + @scroll_y)
  184.     ox = n + 320
  185.     w = nil
  186.     i = nil
  187.     a = nil
  188.     z = nil
  189.     erase = nil
  190.    
  191.     @sprites.each{ |w|
  192.       w.ox = ox}
  193.       
  194.     @horizontal.each{ |i, a|
  195.       new_y = $game_system.screen2W3D_y(i - dif)
  196.       z = $game_system.screen2zoom(new_y)
  197.       erase = (a[0].y - 256).between?(1,$game_system.hide)
  198.       a.each{ |w|
  199.         w.x = 320 + z * (w.map_x - ox)
  200.         if erase and 28 >= (ox - w.map_x).abs
  201.           w.opacity = 100
  202.         else
  203.           w.opacity = 255
  204.         end
  205.       }
  206.     }
  207.    
  208.     @vertical.each{ |i, a|
  209.       new_y = $game_system.screen2W3D_y(i - dif)
  210.       z = $game_system.screen2zoom(new_y)
  211.       erase = (a[0].map_y % 6 != 0)
  212.       a.each{ |w|
  213.         if erase and (w.map_x - ox).abs < @filter
  214.           w.jump = true     
  215.           w.visible = false
  216.           next
  217.         end
  218.         w.jump = false
  219.         if w.visible
  220.           if w.visible = (ox*w.side >= w.map_x*w.side)
  221.             w.x = 320 + z * (w.map_x - ox)
  222.           end
  223.         elsif w.visible = (ox*w.side >= w.map_x*w.side)
  224.           w.y = new_y
  225.           w.x = 320 + z * (w.map_x - ox)
  226.           w.zoom_y = z
  227.         end
  228.       }
  229.     }
  230.   end
  231.   
  232.   def oy=(n)
  233.     return if @oy == n
  234.     @oy = n
  235.     ox320 = @ox + 320
  236.     dif = (n + @scroll_y)
  237.     w = nil
  238.     i = nil
  239.     a = nil
  240.     z = nil
  241.     mz = nil
  242.     new_y = nil
  243.     erase = nil
  244.    
  245.     @sprites.each{ |w|
  246.       w.src_rect.y = $game_system.screen2map_y(w.y+1).round + @oy
  247.     }
  248.    
  249.     @horizontal.each{ |i, a|
  250.       new_y = $game_system.screen2W3D_y(i - dif)
  251.       z = $game_system.screen2zoom(new_y)
  252.       erase = (a[0].y - 256).between?(1,$game_system.hide)
  253.       a.each{ |w|
  254.         w.y = new_y
  255.         w.x = 320 + (z * (w.map_x - ox320))
  256.         w.zoom_x = (w.zoom_y = z + 0.04)
  257.         if erase and 28 >= (ox320 - w.map_x).abs
  258.           w.opacity = 100
  259.         else
  260.           w.opacity = 255
  261.         end
  262.       }
  263.     }
  264.    
  265.     @vertical.each{ |i, a|
  266.     new_y = $game_system.screen2W3D_y(i - dif)
  267.     z = $game_system.screen2zoom(new_y)
  268.     mz = [z,1].max
  269.     a.each { |w|
  270.       if w.visible
  271.         w.y = new_y
  272.         w.x = 320 + z * (w.map_x - ox320)
  273.         w.zoom_y = z
  274.         w.zoom_x = mz
  275.       end
  276.       }
  277.     }
  278.   end
  279.   
  280.   def map_data=(data)
  281.     @map_data = data
  282.     refresh_bitmap
  283.   end
  284.   
  285.   def refresh_bitmap
  286.     @terrain = $game_map.terrain_tags if @terrain.nil?
  287.     @horizontal.each{ |i, c|
  288.       c.each{ |w|
  289.         w.dispose}}
  290.     @vertical.each{ |i, c|
  291.       c.each{ |w|
  292.         w.dispose}}
  293.     @horizontal.clear
  294.     @vertical.clear
  295.    
  296.     @bitmap.dispose
  297.     @bitmap = Bitmap.new(@map_data.xsize*32,@map_data.ysize*32)
  298.    
  299.     rect = Rect.new(0,0,32,32)
  300.     source = Rect.new(0,0,32,32)
  301.     i = 0
  302.     x = 0
  303.     y = 0
  304.     z = 0
  305.     data = nil
  306.     wall = nil
  307.     for x in 0...@map_data.xsize
  308.       for y in 0...@map_data.ysize
  309.         rect.x = x*32
  310.         rect.y = y*32
  311.         source.x = ((@map_data[x,y,0] - 384) % 8) * 32
  312.         source.y = ((@map_data[x,y,0] - 384) / 8) * 32
  313.         @bitmap.stretch_blt(rect,@tileset,source)
  314.         for z in 0..2
  315.           data = @map_data[x,y,z]
  316.           if @terrain[data] == 2  
  317.             if @terrain[@map_data[[x+1,@map_data.xsize-1].min,y,z].to_i] != 2
  318.               for i in 0...@columns
  319.                 wall = SWall.new(@viewport,@columns)
  320.                 wall.map_x = x * 32 + 32
  321.                 wall.map_y = y * 32 + (@columns-i) * 32 / @columns
  322.                 wall.bitmap = @tileset
  323.                 wall.z = wall.map_y
  324.                 wall.side = 1 * $game_system.hidewalls
  325.                 wall.set_src(@terrain, data, i)
  326.                 wall.ox = 32 / @columns / 2 - 1
  327.                 if @vertical.key?(wall.map_y)
  328.                   @vertical[wall.map_y].push(wall)
  329.                 else
  330.                   @vertical[wall.map_y] = [wall]
  331.                 end
  332.               end
  333.             end
  334.             if @terrain[@map_data[[x-1,0].max,y,z].to_i] != 2
  335.               for i in 0...@columns
  336.                 wall = SWall.new(@viewport,@columns)
  337.                 wall.map_x = x * 32
  338.                 wall.map_y = y * 32 + (@columns-i) * 32 / @columns
  339.                 wall.bitmap = @tileset
  340.                 wall.mirror = true
  341.                 wall.set_src(@terrain, data, i)
  342.                 wall.z = wall.map_y
  343.                 wall.side = -1 * $game_system.hidewalls
  344.                 wall.ox = 32 / @columns / 2
  345.                 if @vertical.key?(wall.map_y)
  346.                   @vertical[wall.map_y].push(wall)
  347.                 else
  348.                   @vertical[wall.map_y] = [wall]
  349.                 end
  350.               end
  351.             end
  352.           end
  353.           if @terrain[data] == 1 and
  354.             (y+1 == @map_data.ysize or
  355.               @map_data[x,y+1,z] != data + 8)
  356.             wall = Wall.new(@viewport,1,@map_data)
  357.             wall.map_x = x * 32 + 16
  358.             wall.map_y = y * 32 + 32 + 1
  359.             wall.real_y = y
  360.             wall.bitmap = @tileset
  361.             wall.set_src(@terrain, data)
  362.             wall.ox = 15
  363.             wall.z = wall.map_y
  364.             if @horizontal.key?(wall.map_y)
  365.               @horizontal[wall.map_y].push(wall)
  366.             else
  367.               @horizontal[wall.map_y] = [wall]
  368.             end
  369.           end
  370.         end
  371.       end
  372.     end
  373.     for i in [email protected]
  374.       @sprites[i].bitmap = @bitmap
  375.       @sprites[i].src_rect.set(0,i,@bitmap.width,@height)
  376.       if i >= @scroll_y / @height
  377.         @sprites[i].src_rect.height *= 2
  378.       end
  379.     end
  380.   end
  381.   
  382.   def update
  383.     if $game_system.coord
  384.       x = $game_system.coord[0]
  385.       y = $game_system.coord[1]
  386.       source = Rect.new(0,0,32,32)
  387.       rect = Rect.new(x*32,y*32,32,32)
  388.       for z in 0..2
  389.         if not [1,2].include?(@terrain[@map_data[x,y,z]])
  390.           source.x = ((@map_data[x,y,z] - 384) % 8) * 32
  391.           source.y = ((@map_data[x,y,z] - 384) / 8) * 32
  392.           @bitmap.stretch_blt(rect,@tileset,source)
  393.         end
  394.       end
  395.       $game_system.coord = nil
  396.     end
  397.    
  398.     if $game_system.need_refresh
  399.       $game_system.new_angle = false
  400.       $game_system.need_refresh = false
  401.       refresh
  402.       return
  403.     end
  404.     if $game_system.new_zoom
  405.       $game_system.new_zoom = false
  406.       refresh(false)
  407.       return
  408.     end
  409.     if $game_system.new_angle
  410.       @sprites.each {|w|
  411.       w.zoom_x = $game_system.screen2zoom(w.y+1)
  412.         if w.zoom_x > 1
  413.           w.zoom_y = w.zoom_x
  414.         end
  415.         w.x = 320
  416.       }
  417.       x = @ox
  418.       y = @oy
  419.       @ox += 1
  420.       @oy += 1
  421.       self.ox = x
  422.       self.oy = y
  423.       $game_system.new_angle = false
  424.     end
  425.   end
  426.   
  427.   def dispose
  428.     @horizontal.each{ |i, c|
  429.       c.each{ |w|
  430.         w.dispose}}
  431.     @vertical.each{ |i, c|
  432.       c.each{ |w|
  433.         w.dispose}}
  434.     @sprites.each{ |w|
  435.         w.dispose}
  436.     @bitmap.dispose
  437.   end
  438. end

  439. class Wall < Sprite
  440.   attr_accessor :map_x
  441.   attr_accessor :map_y
  442.   attr_accessor :real_y
  443.   attr_accessor :side
  444.   attr_accessor :jump
  445.   attr_accessor :height
  446.   def initialize(vp,spalten,data=nil)
  447.     super(vp)
  448.     @data = data
  449.     @spalten = spalten
  450.     @jump = false
  451.     @real_y = 0
  452.     @map_x = 0
  453.     @map_y = 0
  454.     @side = 0
  455.     self.x = 320
  456.     self.z = 100
  457.     @blick = true
  458.   end
  459.   
  460.   def set_src(terrain,tile,i=0)
  461.     height = 1
  462.     while terrain[tile - height * 8].to_i == 1
  463.       height += 1
  464.     end
  465.     self.src_rect.set(
  466.             ((tile % 8) * 32) + 32 / @spalten * i,
  467.             ((tile - 384) / 8 - height + 1) * 32,
  468.             32 / @spalten,
  469.             32 * height)
  470.     self.oy = height * 32 - 1
  471.     @height = height
  472.   end
  473. end

  474. class SWall < Wall
  475.   def set_src(terrain,tile,i)
  476.     super
  477.     self.src_rect.height -= 32
  478.     self.oy -= 32
  479.   end
  480. end

  481. class Game_Map
  482.   attr_reader :W3D
  483.   
  484.   alias scroll_down_W3D scroll_down
  485.   alias scroll_left_W3D scroll_left
  486.   alias scroll_right_W3D scroll_right
  487.   alias scroll_up_W3D scroll_up
  488.   alias setup_W3D setup
  489.   
  490.   def scroll_down(distance)
  491.     if $game_map.W3D
  492.       @display_y += distance
  493.     else
  494.       scroll_down_W3D(distance)
  495.     end
  496.   end
  497.   
  498.   def scroll_left(distance)
  499.     if $game_map.W3D
  500.       @display_x -= distance
  501.     else
  502.       scroll_left_W3D(distance)
  503.     end
  504.   end
  505.   
  506.   def scroll_right(distance)
  507.     if $game_map.W3D
  508.       @display_x += distance
  509.     else
  510.       scroll_right_W3D(distance)
  511.     end
  512.   end
  513.   
  514.   def scroll_up(distance)
  515.     if $game_map.W3D
  516.       @display_y -= distance
  517.     else
  518.       scroll_up_W3D(distance)
  519.     end
  520.   end
  521.   
  522.   def name
  523.     return $data_maps[@map_id].name
  524.   end
  525.   
  526.   def setup(id)
  527.     setup_W3D(id)
  528.     @W3D = false
  529.     for part in self.name.split("[")
  530.       case part
  531.       when /#(.*)\]/
  532.         $game_system.angle = $1.to_i
  533.       when "W3D]"
  534.         @W3D = true
  535.       when  /-(.*)\]/
  536.         $game_system.hidewalls = $1.to_i
  537.       end
  538.     end
  539.   end
  540. end

  541. class Game_Character
  542.   alias screen_z_W3D screen_z
  543.   def screen_z(height = 0)
  544.     if $game_map.W3D
  545.       if @always_on_top
  546.         return $game_map.height * 32 + 10
  547.       end
  548.       return @real_y / 4 + 33
  549.     else
  550.       screen_z_W3D(height)
  551.     end
  552.   end
  553. end

  554. class Game_Player
  555.   alias center_W3D center
  556.   def center(x, y)
  557.     if $game_map.W3D
  558.       $game_map.display_x = x * 128 - CENTER_X
  559.       $game_map.display_y = y * 128 - CENTER_Y
  560.     else
  561.       center_W3D(x, y)
  562.     end
  563.   end
  564. end

  565. class Sprite_Character
  566.   alias update_W3D update
  567.   def update
  568.     update_W3D
  569.     return unless $game_map.W3D
  570.     self.y = $game_system.screen2W3D_y(self.y - $game_system.scroll_y)
  571.     self.zoom_x = self.zoom_y = $game_system.screen2zoom(self.y)
  572.     self.x = 320 + (self.zoom_x * (self.x - 320))
  573.   end
  574. end

  575. class Spriteset_Map
  576.   def initialize
  577.     @viewport1 = Viewport.new(0, 0, 640, 480)
  578.     @viewport2 = Viewport.new(0, 0, 640, 480)
  579.     @viewport3 = Viewport.new(0, 0, 640, 480)
  580.     @viewport2.z = 200
  581.     @viewport3.z = 5000
  582.     if $game_map.W3D
  583.       @tilemap = W3DTilemap.new(@viewport1)
  584.       @tilemap.terrain = $game_map.terrain_tags
  585.     else
  586.       @tilemap = Tilemap.new(@viewport1)
  587.     end
  588.     @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)
  589.     for i in 0..6
  590.       autotile_name = $game_map.autotile_names[i]
  591.       @tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name)
  592.     end
  593.     @tilemap.map_data = $game_map.data
  594.     @tilemap.priorities = $game_map.priorities
  595.     @panorama = Plane.new(@viewport1)
  596.     @panorama.z = -1000
  597.     @fog = Plane.new(@viewport1)
  598.     @fog.z = 3000
  599.     @character_sprites = []
  600.     for i in $game_map.events.keys.sort
  601.       sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
  602.       @character_sprites.push(sprite)
  603.     end
  604.     @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
  605.     @weather = RPG::Weather.new(@viewport1)
  606.     @picture_sprites = []
  607.     for i in 1..50
  608.       @picture_sprites.push(Sprite_Picture.new(@viewport2,
  609.         $game_screen.pictures[i]))
  610.     end
  611.     @timer_sprite = Sprite_Timer.new
  612.     update
  613.   end
  614. ###########重定义update       更改远景图更新速度 直接复制默认的  顺着箭头往下走
  615.   def update
  616.     # 远景与现在的情况有差异发生的情况下                                     ↓
  617.     if @panorama_name != $game_map.panorama_name or#                         ↓
  618.        @panorama_hue != $game_map.panorama_hue#                              ↓
  619.       @panorama_name = $game_map.panorama_name#                              ↓
  620.       @panorama_hue = $game_map.panorama_hue#                                ↓
  621.       if @panorama.bitmap != nil#                                            ↓
  622.         @panorama.bitmap.dispose#                                            ↓
  623.         @panorama.bitmap = nil#                                              ↓
  624.       end
  625.       if @panorama_name != ""#                                               ↓
  626.         @panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue)
  627.       end
  628.       Graphics.frame_reset#                                                  ↓
  629.     end
  630.     # 雾与现在的情况有差异的情况下                                           ↓
  631.     if @fog_name != $game_map.fog_name or @fog_hue != $game_map.fog_hue#     ↓
  632.       @fog_name = $game_map.fog_name#                                        ↓
  633.       @fog_hue = $game_map.fog_hue#                                          ↓
  634.       if @fog.bitmap != nil#                                                 ↓
  635.         @fog.bitmap.dispose#                                                 ↓
  636.         @fog.bitmap = nil#                                                   ↓
  637.       end
  638.       if @fog_name != ""
  639.         @fog.bitmap = RPG::Cache.fog(@fog_name, @fog_hue)#                   ↓
  640.       end
  641.       Graphics.frame_reset#                                                  ↓
  642.     end
  643.     # 刷新元件地图
  644.     @tilemap.ox = $game_map.display_x / 4#                                   ↓
  645.     @tilemap.oy = $game_map.display_y / 4#                                   ↓
  646.     @tilemap.update
  647.     # 刷新远景平面#                                                          ↓
  648.     @panorama.ox = $game_map.display_x / 8 #这里更改X速度                   ←
  649.     @panorama.oy = $game_map.display_y * 0 #这里更改Y速度                   ←
  650.     # 刷新雾平面
  651.     @fog.zoom_x = $game_map.fog_zoom / 100.0
  652.     @fog.zoom_y = $game_map.fog_zoom / 100.0
  653.     @fog.opacity = $game_map.fog_opacity
  654.     @fog.blend_type = $game_map.fog_blend_type
  655.     @fog.ox = $game_map.display_x / 4 + $game_map.fog_ox
  656.     @fog.oy = $game_map.display_y / 4 + $game_map.fog_oy
  657.     @fog.tone = $game_map.fog_tone
  658.     # 刷新角色活动块
  659.     for sprite in @character_sprites
  660.       sprite.update
  661.     end
  662.     # 刷新天候图形
  663.     @weather.type = $game_screen.weather_type
  664.     @weather.max = $game_screen.weather_max
  665.     @weather.ox = $game_map.display_x / 4
  666.     @weather.oy = $game_map.display_y / 4
  667.     @weather.update
  668.     # 刷新图片
  669.     for sprite in @picture_sprites
  670.       sprite.update
  671.     end
  672.     # 刷新计时器块
  673.     @timer_sprite.update
  674.     # 设置画面的色调与震动位置
  675.     @viewport1.tone = $game_screen.tone
  676.     @viewport1.ox = $game_screen.shake
  677.     # 设置画面的闪烁色
  678.     @viewport3.color = $game_screen.flash_color
  679.     # 刷新显示端口
  680.     @viewport1.update
  681.     @viewport3.update
  682.   end
  683. end
复制代码
下面来两张效果截图:






‘‘──晚安世界于2012-6-9 12:50补充以下内容:

回复的有木有
’’

评分

参与人数 1星屑 +14 收起 理由
踏步诗人 + 14 惊艳

查看全部评分

哇哈哈哈!祝你吃面吃到鼻孔里!

Lv1.梦旅人

梦石
0
星屑
144
在线时间
7 小时
注册时间
2012-6-8
帖子
1
2
发表于 2012-6-9 13:27:40 | 只看该作者
好东西~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
290 小时
注册时间
2012-6-8
帖子
109
3
发表于 2012-6-16 13:11:20 | 只看该作者
skill。。。你什么意思
冰龙龙我最喜欢了~~快快点击让他们更强壮吧
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
48
在线时间
773 小时
注册时间
2012-4-5
帖子
223
4
发表于 2012-6-16 14:17:02 | 只看该作者
给张玉兰吧= =、
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3657
在线时间
4466 小时
注册时间
2008-6-12
帖子
802
5
发表于 2012-6-16 15:19:40 | 只看该作者
啊,晕,来张3D效果截图也好啊

点评

好,马上更新..  发表于 2012-6-17 10:19
本人三无老人,请大神轻拍
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
54
在线时间
1049 小时
注册时间
2012-1-27
帖子
1446
6
发表于 2012-6-24 11:17:35 | 只看该作者
海水等貌似没法显示呢?
放上去就是黑乎乎的一片
惨了,没装全局变量,这下只能玩读档进EXTRA的把戏了∑(゚ω゚ノ)ノ
我感觉我快成兜售Q键幻灯片狂魔了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
111 小时
注册时间
2012-4-21
帖子
299
7
 楼主| 发表于 2012-6-24 15:54:57 | 只看该作者
黑化の鼠标 发表于 2012-6-24 11:17
海水等貌似没法显示呢?
放上去就是黑乎乎的一片

这个问题还不知...现在正在着力研究中...
哇哈哈哈!祝你吃面吃到鼻孔里!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

失忆的幽灵

梦石
0
星屑
50
在线时间
504 小时
注册时间
2009-12-14
帖子
501

贵宾

8
发表于 2012-6-24 17:12:59 | 只看该作者
版规当中有指出
4) 没有取得对本版任意 1 名有管理权限的会员的许可,不得使用「回复可见」和「付费主题」功能。

@Kimu

点评

._.以为你不在线,结果貌似Kimu也不在线?  发表于 2012-7-11 19:21
UI> 233为什么不叫我  发表于 2012-7-11 18:24
如果我能遗忘掉一件事物,我希望遗忘掉我自己
最初你觉得这是一个梦想,最终这只是个妄想
即使你认为你自己是黑暗,即使你认为你自己站在黑暗,但看的见你的人只有我!
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
826
在线时间
584 小时
注册时间
2012-6-3
帖子
366
9
发表于 2012-7-2 12:00:02 | 只看该作者
不错啊哈哈哈


‘‘──1733450036于2012-7-2 12:00补充以下内容:

必要的东西
’’
小白狐一只~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
565 小时
注册时间
2010-10-30
帖子
167
10
发表于 2012-7-2 13:08:22 | 只看该作者
就这个?我还以为有什么更高级的。。。
(ARPG)赵云突围: http://rpg.blue/thread-303844-1-1.html
(剧情向战斗)命运赌局: http://rpg.blue/thread-257144-1-1.html
(ARPG)三英战吕布: http://rpg.blue/thread-220451-1-1.html
(R剧)秋风五丈原: http://rpg.blue/thread-211306-1-1.html
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 17:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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