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

Project1

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

开头特效的问题【2】

 关闭 [复制链接]

Lv3.寻梦者

贝鲁耶的依叶森林
持镰的苍色水野

梦石
2
星屑
659
在线时间
563 小时
注册时间
2007-4-8
帖子
1304

第4届短篇游戏比赛季军短篇八RM组亚军

跳转到指定楼层
1
发表于 2008-6-7 00:30:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
  1. #==============================================================================
  2. # ■ Scene_Title
  3. #------------------------------------------------------------------------------
  4. #  タイトル画面の処理を行うクラスです。
  5. #==============================================================================

  6. class Scene_Title < Scene_Base
  7.   WEATHER = 4     # 使用自定义效果(0:无,1:雨,2:暴风雨,3:雪,4:自定义)
  8.   MAXNUMBER = 30  # 天气图片数量
  9.   
  10.   WEATHER_FILE = "Graphics/Pictures/star.png"
  11.   # 自定义图片路径,这个文件是流星雨
  12.   
  13.   BLEND_TYPE = 0 # 合成方式(0:普通,1:加法,2:减法)
  14.   WEATHER_X = 2 # X方向每回合减少象素
  15.   WEATHER_Y = 2 # Y方向每回合减少象素
  16.   WEATHER_OPACITY = 1 #每回合减低透明度
  17.   START_OPACITY = 255 #出现时的透明度
  18.   RAND_X = 1200 # 随机X范围
  19.   RAND_Y = 600 # 随机Y范围
  20.   HEIGHT = -600 # 出现时候的屏幕Y
  21.   WIDTH = 100 # 出现时候的屏幕X
  22.   #--------------------------------------------------------------------------
  23.   # ● メイン処理
  24.   #--------------------------------------------------------------------------
  25.   def main
  26.     if $BTEST                         # 戦闘テストの場合
  27.       battle_test                     # 戦闘テストの開始処理
  28.     else                              # 通常のプレイの場合
  29.       super                           # 本来のメイン処理
  30.     end
  31.   end
  32.   #--------------------------------------------------------------------------
  33.   # ● 開始処理
  34.   #--------------------------------------------------------------------------
  35.   def start
  36.     super
  37.     load_database                     # データベースをロード
  38.     create_game_objects               # ゲームオブジェクトを作成
  39.     check_continue                    # コンティニュー有効判定
  40.     create_title_graphic   # タイトルグラフィックを作成
  41.     @ox = 0
  42.     @oy = 0
  43.     color1 = Color.new(255, 255, 255, 255)
  44.     color2 = Color.new(255, 255, 255, 128)
  45.     @rain_bitmap = Bitmap.new(7, 56)
  46.     for i in 0..6
  47.       @rain_bitmap.fill_rect(6-i, i*8, 1, 8, color1)
  48.     end
  49.     @storm_bitmap = Bitmap.new(34, 64)
  50.     for i in 0..31
  51.       @storm_bitmap.fill_rect(33-i, i*2, 1, 2, color2)
  52.       @storm_bitmap.fill_rect(32-i, i*2, 1, 2, color1)
  53.       @storm_bitmap.fill_rect(31-i, i*2, 1, 2, color2)
  54.     end
  55.     @snow_bitmap = Bitmap.new(6, 6)
  56.     @snow_bitmap.fill_rect(0, 1, 6, 4, color2)
  57.     @snow_bitmap.fill_rect(1, 0, 4, 6, color2)
  58.     @snow_bitmap.fill_rect(1, 2, 4, 2, color1)
  59.     @snow_bitmap.fill_rect(2, 1, 2, 4, color1)
  60.     @sprites = []
  61.     for i in 1..40
  62.       sprite = Sprite.new
  63.       case WEATHER
  64.       when 1
  65.         sprite.bitmap = @rain_bitmap
  66.       when 2
  67.         sprite.bitmap = @storm_bitmap
  68.       when 3
  69.         sprite.bitmap = @snow_bitmap
  70.       when 4
  71.         sprite.bitmap = Bitmap.new(WEATHER_FILE)
  72.       end
  73.       sprite.z = 1000
  74.       sprite.x = -1000
  75.       sprite.y = 1000
  76.       sprite.visible = (i <= MAXNUMBER)
  77.       sprite.blend_type = BLEND_TYPE
  78.       sprite.opacity = START_OPACITY
  79.       @sprites.push(sprite)
  80.     end
  81.     weather_update
  82.     create_command_window             # コマンドウィンドウを作成
  83.     play_title_music                  # タイトル画面の音楽を演奏
  84.   end
  85.   #--------------------------------------------------------------------------
  86.   # ● トランジション実行
  87.   #--------------------------------------------------------------------------
  88.   def perform_transition
  89.     Graphics.transition(20)
  90.   end
  91.   #--------------------------------------------------------------------------
  92.   # ● 開始後処理
  93.   #--------------------------------------------------------------------------
  94.   def post_start
  95.     super
  96.     open_command_window
  97.   end
  98.   #--------------------------------------------------------------------------
  99.   # ● 終了前処理
  100.   #--------------------------------------------------------------------------
  101.   def pre_terminate
  102.     super
  103.     close_command_window
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # ● 終了処理
  107.   #--------------------------------------------------------------------------
  108.   def terminate
  109.     super
  110.     dispose_command_window
  111.     snapshot_for_background
  112.     @sprite.bitmap.dispose
  113.     @sprite.dispose
  114.     for sprite in @sprites
  115.       sprite.dispose
  116.     end
  117.     @rain_bitmap.dispose
  118.     @storm_bitmap.dispose
  119.     @snow_bitmap.dispose
  120.     dispose_title_graphic
  121.   end
  122.   
  123.   def weather_update
  124.     return if WEATHER == 0
  125.     for i in 1..MAXNUMBER
  126.       sprite = @sprites[i]
  127.       if sprite == nil
  128.         break
  129.       end
  130.       if WEATHER == 1
  131.         sprite.x -= 2
  132.         sprite.y += 16
  133.         sprite.opacity -= 8
  134.       end
  135.       if WEATHER == 2
  136.         sprite.x -= 8
  137.         sprite.y += 16
  138.         sprite.opacity -= 12
  139.       end
  140.       if WEATHER == 3
  141.         sprite.x -= 2
  142.         sprite.y += 8
  143.         sprite.opacity -= 8
  144.       end
  145.       if WEATHER == 4
  146.         sprite.x -= WEATHER_X
  147.         sprite.y += WEATHER_Y
  148.         sprite.opacity -= WEATHER_OPACITY
  149.       end
  150.       x = sprite.x - @ox
  151.       y = sprite.y - @oy
  152.       if sprite.opacity < 32 or x < -100 or x > 750 or y < -1000 or y > 500
  153.         sprite.x = rand(RAND_X) + WIDTH + @ox
  154.         sprite.y = rand(RAND_Y) + HEIGHT + @oy
  155.         sprite.opacity = START_OPACITY
  156.       end
  157.     end
  158.   end
  159.   #--------------------------------------------------------------------------
  160.   # ● フレーム更新
  161.   #--------------------------------------------------------------------------
  162.   def update
  163.     super
  164.     @command_window.update
  165.     if Input.trigger?(Input::C)
  166.       case @command_window.index
  167.       when 0    # ニューゲーム
  168.         command_new_game
  169.       when 1    # コンティニュー
  170.         command_continue
  171.       when 2    # シャットダウン
  172.         command_shutdown
  173.       end
  174.     end
  175.     weather_update
  176.   end
  177.   #--------------------------------------------------------------------------
  178.   # ● データベースのロード
  179.   #--------------------------------------------------------------------------
  180.   def load_database
  181.     $data_actors        = load_data("Data/Actors.rvdata")
  182.     $data_classes       = load_data("Data/Classes.rvdata")
  183.     $data_skills        = load_data("Data/Skills.rvdata")
  184.     $data_items         = load_data("Data/Items.rvdata")
  185.     $data_weapons       = load_data("Data/Weapons.rvdata")
  186.     $data_armors        = load_data("Data/Armors.rvdata")
  187.     $data_enemies       = load_data("Data/Enemies.rvdata")
  188.     $data_troops        = load_data("Data/Troops.rvdata")
  189.     $data_states        = load_data("Data/States.rvdata")
  190.     $data_animations    = load_data("Data/Animations.rvdata")
  191.     $data_common_events = load_data("Data/CommonEvents.rvdata")
  192.     $data_system        = load_data("Data/System.rvdata")
  193.     $data_areas         = load_data("Data/Areas.rvdata")
  194.   end
  195.   #--------------------------------------------------------------------------
  196.   # ● 戦闘テスト用データベースのロード
  197.   #--------------------------------------------------------------------------
  198.   def load_bt_database
  199.     $data_actors        = load_data("Data/BT_Actors.rvdata")
  200.     $data_classes       = load_data("Data/BT_Classes.rvdata")
  201.     $data_skills        = load_data("Data/BT_Skills.rvdata")
  202.     $data_items         = load_data("Data/BT_Items.rvdata")
  203.     $data_weapons       = load_data("Data/BT_Weapons.rvdata")
  204.     $data_armors        = load_data("Data/BT_Armors.rvdata")
  205.     $data_enemies       = load_data("Data/BT_Enemies.rvdata")
  206.     $data_troops        = load_data("Data/BT_Troops.rvdata")
  207.     $data_states        = load_data("Data/BT_States.rvdata")
  208.     $data_animations    = load_data("Data/BT_Animations.rvdata")
  209.     $data_common_events = load_data("Data/BT_CommonEvents.rvdata")
  210.     $data_system        = load_data("Data/BT_System.rvdata")
  211.   end
  212.   #--------------------------------------------------------------------------
  213.   # ● 各種ゲームオブジェクトの作成
  214.   #--------------------------------------------------------------------------
  215.   def create_game_objects
  216.     $game_temp          = Game_Temp.new
  217.     $game_message       = Game_Message.new
  218.     $game_system        = Game_System.new
  219.     $game_switches      = Game_Switches.new
  220.     $game_variables     = Game_Variables.new
  221.     $game_self_switches = Game_SelfSwitches.new
  222.     $game_actors        = Game_Actors.new
  223.     $game_party         = Game_Party.new
  224.     $game_troop         = Game_Troop.new
  225.     $game_map           = Game_Map.new
  226.     $game_player        = Game_Player.new
  227.   end
  228.   #--------------------------------------------------------------------------
  229.   # ● コンティニュー有効判定
  230.   #--------------------------------------------------------------------------
  231.   def check_continue
  232.     @continue_enabled = (Dir.glob('Save*.rvdata').size > 0)
  233.   end
  234.   #--------------------------------------------------------------------------
  235.   # ● タイトルグラフィックの作成
  236.   #--------------------------------------------------------------------------
  237.   def create_title_graphic
  238.     @sprite = Sprite.new
  239.     @sprite.bitmap = Cache.system("Title")
  240.   end
  241.   #--------------------------------------------------------------------------
  242.   # ● タイトルグラフィックの解放
  243.   #--------------------------------------------------------------------------
  244.   def dispose_title_graphic
  245.     @sprite.bitmap.dispose
  246.     @sprite.dispose
  247.   end
  248.   #--------------------------------------------------------------------------
  249.   # ● コマンドウィンドウの作成
  250.   #--------------------------------------------------------------------------
  251.   def create_command_window
  252.     s1 = Vocab::new_game
  253.     s2 = Vocab::continue
  254.     s3 = Vocab::shutdown
  255.     @command_window = Window_Command.new(172, [s1, s2, s3])
  256.     @command_window.x = (544 - @command_window.width) / 2
  257.     @command_window.y = 288
  258.     if @continue_enabled                    # コンティニューが有効な場合
  259.       @command_window.index = 1             # カーソルを合わせる
  260.     else                                    # 無効な場合
  261.       @command_window.draw_item(1, false)   # コマンドを半透明表示にする
  262.     end
  263.     @command_window.openness = 0
  264.     @command_window.open
  265.   end
  266.   #--------------------------------------------------------------------------
  267.   # ● コマンドウィンドウの解放
  268.   #--------------------------------------------------------------------------
  269.   def dispose_command_window
  270.     @command_window.dispose
  271.   end
  272.   #--------------------------------------------------------------------------
  273.   # ● コマンドウィンドウを開く
  274.   #--------------------------------------------------------------------------
  275.   def open_command_window
  276.     @command_window.open
  277.     begin
  278.       @command_window.update
  279.       Graphics.update
  280.     end until @command_window.openness == 255
  281.   end
  282.   #--------------------------------------------------------------------------
  283.   # ● コマンドウィンドウを閉じる
  284.   #--------------------------------------------------------------------------
  285.   def close_command_window
  286.     @command_window.close
  287.     begin
  288.       @command_window.update
  289.       Graphics.update
  290.     end until @command_window.openness == 0
  291.   end
  292.   #--------------------------------------------------------------------------
  293.   # ● タイトル画面の音楽演奏
  294.   #--------------------------------------------------------------------------
  295.   def play_title_music
  296.     $data_system.title_bgm.play
  297.     RPG::BGS.stop
  298.     RPG::ME.stop
  299.   end
  300.   #--------------------------------------------------------------------------
  301.   # ● プレイヤーの初期位置存在チェック
  302.   #--------------------------------------------------------------------------
  303.   def confirm_player_location
  304.     if $data_system.start_map_id == 0
  305.       print "プレイヤーの初期位置が設定されていません。"
  306.       exit
  307.     end
  308.   end
  309.   #--------------------------------------------------------------------------
  310.   # ● コマンド : ニューゲーム
  311.   #--------------------------------------------------------------------------
  312.   def command_new_game
  313.     confirm_player_location
  314.     Sound.play_decision
  315.     $game_party.setup_starting_members            # 初期パーティ
  316.     $game_map.setup($data_system.start_map_id)    # 初期位置のマップ
  317.     $game_player.moveto($data_system.start_x, $data_system.start_y)
  318.     $game_player.refresh
  319.     $scene = Scene_Map.new
  320.     RPG::BGM.fade(1500)
  321.     close_command_window
  322.     Graphics.fadeout(60)
  323.     Graphics.wait(40)
  324.     Graphics.frame_count = 0
  325.     RPG::BGM.stop
  326.     $game_map.autoplay
  327.   end
  328.   #--------------------------------------------------------------------------
  329.   # ● コマンド : コンティニュー
  330.   #--------------------------------------------------------------------------
  331.   def command_continue
  332.     if @continue_enabled
  333.       Sound.play_decision
  334.       $scene = Scene_File.new(false, true, false)
  335.     else
  336.       Sound.play_buzzer
  337.     end
  338.   end
  339.   #--------------------------------------------------------------------------
  340.   # ● コマンド : シャットダウン
  341.   #--------------------------------------------------------------------------
  342.   def command_shutdown
  343.     Sound.play_decision
  344.     RPG::BGM.fade(800)
  345.     RPG::BGS.fade(800)
  346.     RPG::ME.fade(800)
  347.     $scene = nil
  348.   end
  349.   #--------------------------------------------------------------------------
  350.   # ● 戦闘テスト
  351.   #--------------------------------------------------------------------------
  352.   def battle_test
  353.     load_bt_database                  # 戦闘テスト用データベースをロード
  354.     create_game_objects               # ゲームオブジェクトを作成
  355.     Graphics.frame_count = 0          # プレイ時間を初期化
  356.     $game_party.setup_battle_test_members
  357.     $game_troop.setup($data_system.test_troop_id)
  358.     $game_troop.can_escape = true
  359.     $game_system.battle_bgm.play
  360.     snapshot_for_background
  361.     $scene = Scene_Battle.new
  362.   end
  363. end
复制代码

这个……也就是使用了自定义图片的时候,只能有1个图片,
能改到使用多个图片么
水野的主页><
头像来自于游戏《龙背上的骑兵3》主角——Zero

Lv1.梦旅人

很傻很天真

梦石
0
星屑
55
在线时间
3 小时
注册时间
2007-3-13
帖子
3667
2
发表于 2008-6-7 00:47:37 | 只看该作者
  WEATHER_FILE = "Graphics/Pictures/star.png"
改成:
  WEATHER_FILE = "Graphics/Pictures/star.png,Graphics/Pictures/star1.png,……"

不知道对不对....
只是瞎蒙..{/hx}
回复 支持 反对

使用道具 举报

Lv3.寻梦者

贝鲁耶的依叶森林
持镰的苍色水野

梦石
2
星屑
659
在线时间
563 小时
注册时间
2007-4-8
帖子
1304

第4届短篇游戏比赛季军短篇八RM组亚军

3
 楼主| 发表于 2008-6-7 00:51:52 | 只看该作者
这……
应该分开……但是分开会出错
水野的主页><
头像来自于游戏《龙背上的骑兵3》主角——Zero
回复 支持 反对

使用道具 举报

Lv1.梦旅人

忆颐

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-4-26
帖子
2048
4
发表于 2008-6-7 03:30:37 | 只看该作者
我试了...不可以啊...
我已经没有当时刚来6R时的那种激情了啊。
看来6R中的人又变了一轮,让我很陌生。
当时我只是路过,什么都没留下。
因为记得我的人已经不多了吧。
http://hi.baidu.com/fantasylen
回复 支持 反对

使用道具 举报

Lv3.寻梦者

贝鲁耶的依叶森林
持镰的苍色水野

梦石
2
星屑
659
在线时间
563 小时
注册时间
2007-4-8
帖子
1304

第4届短篇游戏比赛季军短篇八RM组亚军

5
 楼主| 发表于 2008-6-8 20:20:22 | 只看该作者
没人答么  自顶
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1624
在线时间
1609 小时
注册时间
2007-8-28
帖子
3253

第3届短篇游戏大赛主流游戏组冠军第1届Title华丽大赛新人奖

6
发表于 2008-6-8 23:25:39 | 只看该作者
when 4
        sprite.bitmap = Bitmap.new(WEATHER_FILE)

整个when 4部分全都改写。

可以用大图里面有好几个图片的

显示的时候,随机建立bitmap
然后根据i的值来判断显示什么图片。

得大改,就说说思路,对于有50多vip的来讲够了。
“我推荐你一个游戏吧,avg的,剧情特感人”
“我擦,都是文字图片的游戏有啥好玩的,连个战斗都没有!”
“我推荐你一个游戏吧,rpg的,战斗也新颖”
“我擦,怎么米有作i弊器?“
”你不是喜欢战斗么?”
“不,我是剧情党!!”

继续阅读请点击
http://rpg.blue/blog-53316-10027.html
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-25 21:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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