mirror of
https://forgejo.xatacraft.ru/Sunshine/mkxp-sunshine.git
synced 2026-08-22 23:06:18 +00:00
rotaaaaaaaaaations sdfkljhsgdjklljshkgdjhkl
This commit is contained in:
parent
c7bbb02473
commit
792c555250
1 changed files with 47 additions and 21 deletions
|
|
@ -21,7 +21,7 @@ class Scene_OF
|
||||||
HP_WIDTH = 400
|
HP_WIDTH = 400
|
||||||
HP_HEIGHT = 16
|
HP_HEIGHT = 16
|
||||||
|
|
||||||
MISS_TIME = 90
|
MISS_TIME = 60
|
||||||
|
|
||||||
SPRITES = {
|
SPRITES = {
|
||||||
:cat_base_arrow_left => Rect.new(0, 0, 32, 32), :cat_base_arrow_down => Rect.new(32, 0, 32, 32), :cat_base_arrow_up => Rect.new(64, 0, 32, 32), :cat_base_arrow_right => Rect.new(96, 0, 32, 32),
|
:cat_base_arrow_left => Rect.new(0, 0, 32, 32), :cat_base_arrow_down => Rect.new(32, 0, 32, 32), :cat_base_arrow_up => Rect.new(64, 0, 32, 32), :cat_base_arrow_right => Rect.new(96, 0, 32, 32),
|
||||||
|
|
@ -91,9 +91,8 @@ class Scene_OF
|
||||||
@miss_sound = Audio.create_sound("Audio/SE/shatter")
|
@miss_sound = Audio.create_sound("Audio/SE/shatter")
|
||||||
|
|
||||||
@viewport_ui = Viewport.new(0, 0, Graphics.width, Graphics.height)
|
@viewport_ui = Viewport.new(0, 0, Graphics.width, Graphics.height)
|
||||||
@viewport_arrows = Viewport.new(0, 0, Graphics.width, Graphics.height)
|
@viewport_ui.ox = -Graphics.width / 2
|
||||||
@viewport_ui.ox = @viewport_arrows.ox = -Graphics.width / 2
|
@viewport_ui.oy = -Graphics.height / 2
|
||||||
@viewport_ui.oy = @viewport_arrows.oy = -Graphics.height / 2
|
|
||||||
@spritesheet = RPG::Cache.misc(".cats")
|
@spritesheet = RPG::Cache.misc(".cats")
|
||||||
|
|
||||||
@cat_flying_arrows = []
|
@cat_flying_arrows = []
|
||||||
|
|
@ -104,6 +103,7 @@ class Scene_OF
|
||||||
@player_tails_end = []
|
@player_tails_end = []
|
||||||
@cat_arrows = []
|
@cat_arrows = []
|
||||||
@player_arrows = []
|
@player_arrows = []
|
||||||
|
@events = []
|
||||||
for i in 0..3
|
for i in 0..3
|
||||||
cat_arrow = Sprite.new(@viewport_ui)
|
cat_arrow = Sprite.new(@viewport_ui)
|
||||||
cat_arrow.bitmap = Bitmap.new(ARROW_SIZE, ARROW_SIZE)
|
cat_arrow.bitmap = Bitmap.new(ARROW_SIZE, ARROW_SIZE)
|
||||||
|
|
@ -157,6 +157,9 @@ class Scene_OF
|
||||||
@hp_icons.y = Graphics.height / 2 - ARROWS_SIDES_MARGIN + HP_HEIGHT / 2 - 6
|
@hp_icons.y = Graphics.height / 2 - ARROWS_SIDES_MARGIN + HP_HEIGHT / 2 - 6
|
||||||
@hp_icons.z = @hp_white.z + 1
|
@hp_icons.z = @hp_white.z + 1
|
||||||
|
|
||||||
|
@rotate_power = 0
|
||||||
|
@reverse = false;
|
||||||
|
|
||||||
self.hp = 50
|
self.hp = 50
|
||||||
|
|
||||||
@bst_debug = Sprite.new(@viewport_ui)
|
@bst_debug = Sprite.new(@viewport_ui)
|
||||||
|
|
@ -199,6 +202,13 @@ class Scene_OF
|
||||||
@miss_timeout -= 1
|
@miss_timeout -= 1
|
||||||
@voice_niko.volume = @miss_timeout <= 0 ? 1.0 : 0.0
|
@voice_niko.volume = @miss_timeout <= 0 ? 1.0 : 0.0
|
||||||
|
|
||||||
|
@events.each do |event|
|
||||||
|
if @total_time * ARROWS_SPEED >= event[1]
|
||||||
|
instance_exec(&event[0])
|
||||||
|
@events.delete(event)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# fl studio b:s:t :3
|
# fl studio b:s:t :3
|
||||||
beat = (@total_time / BPM_TIME / 2).to_i + 1
|
beat = (@total_time / BPM_TIME / 2).to_i + 1
|
||||||
step = (@total_time / BPM_TIME * 15 / 2).to_i % 15 + 1
|
step = (@total_time / BPM_TIME * 15 / 2).to_i % 15 + 1
|
||||||
|
|
@ -211,16 +221,17 @@ class Scene_OF
|
||||||
@icons_bump_timeout -= 1
|
@icons_bump_timeout -= 1
|
||||||
if @bump_timeout <= 0
|
if @bump_timeout <= 0
|
||||||
@bump_timeout += BPM_TIME
|
@bump_timeout += BPM_TIME
|
||||||
@viewport_arrows.scale_y = @viewport_ui.scale_y =
|
@viewport_ui.scale_y = @viewport_ui.scale_x = BUMP_SCALE
|
||||||
@viewport_arrows.scale_x = @viewport_ui.scale_x = BUMP_SCALE
|
|
||||||
end
|
end
|
||||||
if @icons_bump_timeout <= 0
|
if @icons_bump_timeout <= 0
|
||||||
@icons_bump_timeout += BPM_TIME / 2.0
|
@icons_bump_timeout += BPM_TIME / 2.0
|
||||||
@hp_icons.zoom_x = @hp_icons.zoom_y = ICONS_BUMP_SCALE
|
@hp_icons.zoom_x = @hp_icons.zoom_y = ICONS_BUMP_SCALE
|
||||||
|
@viewport_ui.rotation = @reverse ? -@rotate_power : @rotate_power
|
||||||
|
@reverse = !@reverse
|
||||||
end
|
end
|
||||||
@viewport_arrows.scale_x = @viewport_ui.scale_x =
|
@viewport_ui.scale_x = @viewport_ui.scale_y = @viewport_ui.scale_x * (1.0 - BUMP_RETURN_SPEED) + BUMP_RETURN_SPEED
|
||||||
@viewport_arrows.scale_y = @viewport_ui.scale_y = @viewport_ui.scale_x * (1.0 - BUMP_RETURN_SPEED) + BUMP_RETURN_SPEED
|
|
||||||
@hp_icons.zoom_x = @hp_icons.zoom_y = @hp_icons.zoom_x * (1.0 - ICONS_BUMP_RETURN_SPEED) + ICONS_BUMP_RETURN_SPEED
|
@hp_icons.zoom_x = @hp_icons.zoom_y = @hp_icons.zoom_x * (1.0 - ICONS_BUMP_RETURN_SPEED) + ICONS_BUMP_RETURN_SPEED
|
||||||
|
@viewport_ui.rotation = @viewport_ui.rotation * (1.0 - BUMP_RETURN_SPEED)
|
||||||
|
|
||||||
# Cat Arrows
|
# Cat Arrows
|
||||||
i = 0
|
i = 0
|
||||||
|
|
@ -273,10 +284,6 @@ class Scene_OF
|
||||||
arrow[0].dispose
|
arrow[0].dispose
|
||||||
@player_flying_arrows.delete(arrow)
|
@player_flying_arrows.delete(arrow)
|
||||||
i -= 1
|
i -= 1
|
||||||
#elsif arrow[0].y < ARROW_SIZE * ARROW_SCALE
|
|
||||||
# arrow[0].dispose
|
|
||||||
# @player_flying_arrows.delete(arrow)
|
|
||||||
# i -= 1
|
|
||||||
end
|
end
|
||||||
i += 1
|
i += 1
|
||||||
end
|
end
|
||||||
|
|
@ -375,7 +382,7 @@ class Scene_OF
|
||||||
arrow[0].dispose
|
arrow[0].dispose
|
||||||
@player_flying_arrows.delete(arrow)
|
@player_flying_arrows.delete(arrow)
|
||||||
self.hp += 5
|
self.hp += 5
|
||||||
@miss_sound.stop
|
@miss_sound.fade_out(0.2)
|
||||||
@miss_timeout = 0
|
@miss_timeout = 0
|
||||||
else
|
else
|
||||||
miss
|
miss
|
||||||
|
|
@ -451,7 +458,6 @@ class Scene_OF
|
||||||
arrow = make_arrow(dir, true)
|
arrow = make_arrow(dir, true)
|
||||||
arrow.x = cat_arrow_x
|
arrow.x = cat_arrow_x
|
||||||
arrow.y = ARROWS_TOP_MARGIN - Graphics.height / 2 + bst2time(beat, step, tick) - 32
|
arrow.y = ARROWS_TOP_MARGIN - Graphics.height / 2 + bst2time(beat, step, tick) - 32
|
||||||
arrow.z += 1
|
|
||||||
|
|
||||||
@cat_flying_arrows << [arrow, dir]
|
@cat_flying_arrows << [arrow, dir]
|
||||||
|
|
||||||
|
|
@ -475,7 +481,6 @@ class Scene_OF
|
||||||
arrow = make_arrow(dir, false)
|
arrow = make_arrow(dir, false)
|
||||||
arrow.x = player_arrow_x
|
arrow.x = player_arrow_x
|
||||||
arrow.y = ARROWS_TOP_MARGIN - Graphics.height / 2 + bst2time(beat, step, tick) - 32
|
arrow.y = ARROWS_TOP_MARGIN - Graphics.height / 2 + bst2time(beat, step, tick) - 32
|
||||||
arrow.z += 1
|
|
||||||
|
|
||||||
@player_flying_arrows << [arrow, dir]
|
@player_flying_arrows << [arrow, dir]
|
||||||
|
|
||||||
|
|
@ -496,6 +501,10 @@ class Scene_OF
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if line_data[7] != nil
|
||||||
|
@events << [line_data[7], bst2time(beat, step, tick)]
|
||||||
|
end
|
||||||
|
|
||||||
i += 1
|
i += 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -505,26 +514,29 @@ class Scene_OF
|
||||||
end
|
end
|
||||||
|
|
||||||
def make_arrow(direction, meow)
|
def make_arrow(direction, meow)
|
||||||
arrow = Sprite.new(@viewport_arrows)
|
arrow = Sprite.new(@viewport_ui)
|
||||||
arrow.bitmap = Bitmap.new(ARROW_SIZE, ARROW_SIZE)
|
arrow.bitmap = Bitmap.new(ARROW_SIZE, ARROW_SIZE)
|
||||||
arrow.bitmap.stretch_blt(Rect.new(0, 0, ARROW_SIZE, ARROW_SIZE), @spritesheet, SPRITES[(meow ? CAT_ARROWS_SPRITES : PLAYER_ARROWS_SPRITES)[:target][direction]])
|
arrow.bitmap.stretch_blt(Rect.new(0, 0, ARROW_SIZE, ARROW_SIZE), @spritesheet, SPRITES[(meow ? CAT_ARROWS_SPRITES : PLAYER_ARROWS_SPRITES)[:target][direction]])
|
||||||
arrow.zoom_x = arrow.zoom_y = ARROW_SCALE
|
arrow.zoom_x = arrow.zoom_y = ARROW_SCALE
|
||||||
|
arrow.z = 20
|
||||||
arrow
|
arrow
|
||||||
end
|
end
|
||||||
|
|
||||||
def make_tail(direction, meow)
|
def make_tail(direction, meow)
|
||||||
arrow = Sprite.new(@viewport_arrows)
|
arrow = Sprite.new(@viewport_ui)
|
||||||
arrow.bitmap = Bitmap.new(ARROW_SIZE, ARROW_SIZE / 2)
|
arrow.bitmap = Bitmap.new(ARROW_SIZE, ARROW_SIZE / 2)
|
||||||
arrow.bitmap.stretch_blt(Rect.new(0, 0, ARROW_SIZE, ARROW_SIZE / 2), @spritesheet, SPRITES[(meow ? CAT_ARROWS_SPRITES : PLAYER_ARROWS_SPRITES)[:tail][direction]])
|
arrow.bitmap.stretch_blt(Rect.new(0, 0, ARROW_SIZE, ARROW_SIZE / 2), @spritesheet, SPRITES[(meow ? CAT_ARROWS_SPRITES : PLAYER_ARROWS_SPRITES)[:tail][direction]])
|
||||||
arrow.zoom_x = arrow.zoom_y = ARROW_SCALE
|
arrow.zoom_x = arrow.zoom_y = ARROW_SCALE
|
||||||
|
arrow.z = 18
|
||||||
arrow
|
arrow
|
||||||
end
|
end
|
||||||
|
|
||||||
def make_tail_end(direction, meow)
|
def make_tail_end(direction, meow)
|
||||||
arrow = Sprite.new(@viewport_arrows)
|
arrow = Sprite.new(@viewport_ui)
|
||||||
arrow.bitmap = Bitmap.new(ARROW_SIZE, ARROW_SIZE / 2)
|
arrow.bitmap = Bitmap.new(ARROW_SIZE, ARROW_SIZE / 2)
|
||||||
arrow.bitmap.stretch_blt(Rect.new(0, 0, ARROW_SIZE, ARROW_SIZE / 2), @spritesheet, SPRITES[(meow ? CAT_ARROWS_SPRITES : PLAYER_ARROWS_SPRITES)[:tail_end][direction]])
|
arrow.bitmap.stretch_blt(Rect.new(0, 0, ARROW_SIZE, ARROW_SIZE / 2), @spritesheet, SPRITES[(meow ? CAT_ARROWS_SPRITES : PLAYER_ARROWS_SPRITES)[:tail_end][direction]])
|
||||||
arrow.zoom_x = arrow.zoom_y = ARROW_SCALE
|
arrow.zoom_x = arrow.zoom_y = ARROW_SCALE
|
||||||
|
arrow.z = 19
|
||||||
arrow
|
arrow
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -535,7 +547,7 @@ class Scene_OF
|
||||||
end
|
end
|
||||||
|
|
||||||
SONG_MAPPING = [ # Length
|
SONG_MAPPING = [ # Length
|
||||||
# arrows, B, S, T, | B, S, T
|
# arrows, B, S, T, | B, S, T | proc
|
||||||
["# | ", 5, 1, 0, 0, 1, 0],
|
["# | ", 5, 1, 0, 0, 1, 0],
|
||||||
[" # | ", 5, 3, 0, 0, 1, 0],
|
[" # | ", 5, 3, 0, 0, 1, 0],
|
||||||
[" # | ", 5, 5, 0, 0, 1, 0],
|
[" # | ", 5, 5, 0, 0, 1, 0],
|
||||||
|
|
@ -589,7 +601,7 @@ class Scene_OF
|
||||||
#[" |# ", 12, 16, 12],
|
#[" |# ", 12, 16, 12],
|
||||||
#[" |# ", 13, 1, 0],
|
#[" |# ", 13, 1, 0],
|
||||||
|
|
||||||
["# | ", 13, 1, 0],
|
["# | ", 13, 1, 0, 0, 0, 0, proc { @rotate_power = 1 }],
|
||||||
[" # | ", 13, 2, 0],
|
[" # | ", 13, 2, 0],
|
||||||
[" # | ", 13, 3, 0],
|
[" # | ", 13, 3, 0],
|
||||||
[" # | ", 13, 4, 0],
|
[" # | ", 13, 4, 0],
|
||||||
|
|
@ -694,7 +706,7 @@ class Scene_OF
|
||||||
[" | # ", 20, 12, 0],
|
[" | # ", 20, 12, 0],
|
||||||
[" | #", 20, 13, 0, 0, 1, 0],
|
[" | #", 20, 13, 0, 0, 1, 0],
|
||||||
|
|
||||||
[" # | ", 21, 1, 0],
|
[" # | ", 21, 1, 0, 0, 0, 0, proc { @rotate_power = 0 }],
|
||||||
[" # | ", 21, 2, 0],
|
[" # | ", 21, 2, 0],
|
||||||
["# | ", 21, 3, 0],
|
["# | ", 21, 3, 0],
|
||||||
["# # | ", 21, 5, 0],
|
["# # | ", 21, 5, 0],
|
||||||
|
|
@ -807,6 +819,20 @@ class Scene_OF
|
||||||
[" ##| ", 36, 9, 0, 0, 1, 0],
|
[" ##| ", 36, 9, 0, 0, 1, 0],
|
||||||
[" | # ", 36, 11, 0, 0, 1, 0],
|
[" | # ", 36, 11, 0, 0, 1, 0],
|
||||||
["# #| #", 36, 13, 0, 0, 1, 0],
|
["# #| #", 36, 13, 0, 0, 1, 0],
|
||||||
|
|
||||||
|
[" #| #", 37, 1, 0, 0, 0, 0, proc { @rotate_power = 1 }],
|
||||||
|
[" # | # ", 37, 2, 0],
|
||||||
|
["# |# ", 37, 3, 0],
|
||||||
|
[" # | # ", 37, 4, 0],
|
||||||
|
[" #| #", 37, 6, 0],
|
||||||
|
[" # | # ", 37, 7, 0],
|
||||||
|
[" # | # ", 37, 8, 0],
|
||||||
|
[" # | # ", 37, 9, 0],
|
||||||
|
[" #| #", 37, 10, 0],
|
||||||
|
[" # | # ", 37, 11, 0],
|
||||||
|
[" # | # ", 37, 12, 0],
|
||||||
|
[" #| #", 37, 13, 0, 0, 1, 0],
|
||||||
|
[" # | # ", 37, 15, 0],
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue