赞 | 0 |
VIP | 35 |
好人卡 | 0 |
积分 | 1 |
经验 | 96121 |
最后登录 | 2020-2-15 |
在线时间 | 22 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 55
- 在线时间
- 22 小时
- 注册时间
- 2006-4-22
- 帖子
- 370
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
前几天kaze在水区介绍了一个测验动态视力的游戏,打了几次,怎么打都是8级70多分,郁闷之极,后来就产生了做个RM版的念头,本来想用事件做的,这是最简单直接的方法,后来RP有问题,就改用了脚本了~~不过我没有半点编程基础,是半个脚本盲,所以写的算法有点原始,别见怪~~~~{/gg}不过无论如何效果达到了,只是不知道有没有潜在bug,有的话通知我吧~~不知道以前有没人做过类似的~~{/gg}
脚本如下:
- #===========================================================================
- #★方向键游戏
- #★作者:Zhong
- #★联系方式: 论坛短信
- #★个人论坛:god.5d6d.com
- #★附:在下是半个脚本盲,,可能实现游戏效果的方法有点不科学,不过总算达到效果了!
- #★ 有什么bug的话请提出来,能力范围内的,我会尽量更正~~~-__-|||
- #===========================================================================
- #==============================================================================
- # ■ Window_point
- #------------------------------------------------------------------------------
- # ★ 记分窗口
- #
- #==============================================================================
- class Window_point < Window_Base
- #--------------------------------------------------------------------------
- # ● 初始化窗口
- #--------------------------------------------------------------------------
- def initialize
- super(0, 0, 400, 400)
- self.contents = Bitmap.new(width - 32, height - 32)
- self.opacity = 0
- $p = 0 #初始分数
- $l = $p/10 # 初始等级
-
- refresh
- end
- #--------------------------------------------------------------------------
- # ● 刷新
- #--------------------------------------------------------------------------
- def refresh
- self.contents.clear
- $l = $p/10
- #描绘等级,分数字样
- self.contents.font.color = Color.new(0,0,0,200)
- self.contents.font.size = 27
- self.contents.draw_text(80,60,120,32,"Level")
- self.contents.font.size = 25
- self.contents.draw_text(150, 60, 120, 32, $l.to_s)
- self.contents.font.size = 22
- self.contents.draw_text(90,90,120,32,"分数")
- self.contents.font.size = 20
- self.contents.draw_text(150,90,120,32,$p.to_s)
- end
- end
- #============================================================================
- #=============================================================================
- class Scene_zhong
- #=============================================================================
-
- #--------------------------------------------------------------------------
- # ● 主处理
- #--------------------------------------------------------------------------
- def main
- @max_l = 10 #最大等级,但达到这个等级时自动胜出
- @f = false #用这个开关判断游戏是否刚运行,方便后面图的坐标排布
- @a = [] #随机数组
- @b = [] #玩家输入数组
- @test = [] #显示图片用的数组
- @t = -1 #次数
- @n = 0 #分数参数
- @se = 0 #判断se是否已播放,避免重播
-
- $game_variables[45] = 0 #这个变量时判断失败与否的变量,亦可用开关,主要时方便事件操作
-
- @sprite = [Sprite.new] #这个为了批量生成精灵的数组
-
- for i in 0..6
- @sprite[i] = Sprite.new
- @sprite[i].y = 173
- @sprite[i].z = 2
- end
- @sprite[5].bitmap = Bitmap.new("Graphics/pictures/前景图")
- @sprite[5].opacity = 255
- @sprite[5].y = 0
- @sprite[5].x = 0
- @sprite[5].z = 500
- @sprite[6].bitmap = Bitmap.new("Graphics/pictures/背景图")
- @sprite[6].y = 0
- @sprite[6].x = 0
- @sprite[6].z = 1
- @point_window = Window_point.new
- @point_window.z = 600
-
- #演奏BGM
- Audio.bgm_play("Audio/BGM/015-Theme04", 100, 100)
-
-
- # 执行过渡
- Graphics.transition
- # 主循环
- loop do
- # 刷新游戏画面
- Graphics.update
-
-
-
- # 刷新输入信息
- Input.update
-
- # 刷新
- update
-
- # 如果等级为最大级或失败就中断循环
- if $l == @max_l or $game_variables[45] == -1
- break
- end
- end
-
- # 准备过渡
- Graphics.freeze
-
- #停止播放bgm
- Audio.bgm_stop
-
- if $game_variables[45] == -1
- #演奏失败Me
- Audio.me_play("Audio/ME/005-Defeat01", 100, 100)
- else
- #演奏胜利乐章
- Audio.me_play("Audio/ME/002-Victory02", 100, 100)
- end
-
- for i in 1..100
- Graphics.update
- end
-
- #批量释放精灵和图片
- for i in 0..6
- @sprite[i].bitmap.dispose
- @sprite[i].dispose
- end
-
- @point_window.dispose
- $scene = Scene_Map.new
- end
- #--------------------------------------------------------------------------
- #★刷新定义
- #--------------------------------------------------------------------------
- def update
-
- #刷新积分窗口
- @point_window.refresh
-
- #以下就是传说中的核心算法,如果你是脚本达人就不要看下去了~~ 因为方法太原始了
- if @t == 4
- @n += 1
- @t = -1
- @se = 0
- end
- for j in 0..4
- if @a[j] == nil
- @a[j] = rand(4) + 1
- @test[j] = @a[j].to_s
-
- @sprite[j].bitmap = Bitmap.new("Graphics/pictures/E_#{@test[j]}")
- if @f == false
- @sprite[j].x = 530 + 100*j
- else
- @sprite[j].x = 530
- end
-
- end
- end
- #======================================================================
-
-
- #========================================================================
- for s in 0..4
- if @sprite[s].x > 28 #图象的边缘坐标
- @sprite[s].x -= 2 + $l*0.5 #计算移动数度的公式
- end
- end
- #=========================================================================
-
- input_zhong
- if @sprite[@t].x > 30 and @sprite[@t].x < 530 #当图片进入这一区域时按键才有效
-
- if @b[@t] != nil and @a[@t] != nil
- if @a[@t] == @b[@t]
-
- if @se == @t
- # 演奏 SE
- Audio.se_play("Audio/SE/056-Right02", 100, 100)
- @se += 1
- end
- $p = @t+ 1+ @n*5
- x = @sprite[@t].x
- @sprite[@t].bitmap.dispose
- @sprite[@t].bitmap = Bitmap.new("Graphics/pictures/h_#{@test[@t]}")
- @sprite[@t].x = x
-
- else
- # 演奏冻结 SE
- Audio.se_play("Audio/SE/011-System11", 100, 100)
- $game_variables[45] = -1
- end
-
- end
-
- end
-
-
- for g in 0..4
-
- if @sprite[g].x <= 30 #图片出了区域时
- if @b[g] != nil
- if @a[g] == @b[g]
- @sprite[g].bitmap.dispose
- @a[g] = nil
- @b[g] = nil
- @f = true
- else
- end
- else
- $game_variables[45] = -1
-
- end
- end
- end
- end
- #---------------------------------------------------------------------------
- #★ 按键输入判断
- #---------------------------------------------------------------------------
- def input_zhong
- if Input.trigger?(Input::LEFT)
-
- @t += 1
- @b[@t] = 1
- end
-
- if Input.trigger?(Input::UP)
-
- @t += 1
- @b[@t] = 2
- end
- if Input.trigger?(Input::RIGHT)
-
-
- @t += 1
- @b[@t] = 3
-
- end
- if Input.trigger?(Input::DOWN)
-
- @t += 1
- @b[@t] = 4
- end
- end
- #----------------------------------------------------------------------------
- end
-
-
复制代码
建议参考范例看一下吧~~素材规格是方向图片100*100,前景图中间镂出一个400*100的透明区域~~具体看范例~~~
范例 : http://rpg.blue/upload_program/files/方向游戏.rar
--------------------------------------------------------------------
大半个月前做的"美化"版,这段时间一直没机会上网,现在有点空,就发上来,其实很鸡肋~~~{/gg} 另:我把文件上传到ftp上时,才发现论坛附件最大可以上传5M的文件,晕~~~
http://rpg.blue/upload_program/files/美化_方向游戏.rar
|
|