mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-07 21:24:59 +00:00
release 6.2
This commit is contained in:
192
Data/Scripts/005_Sprites/014_Sprite_Hat.rb
Normal file
192
Data/Scripts/005_Sprites/014_Sprite_Hat.rb
Normal file
@@ -0,0 +1,192 @@
|
||||
class Sprite_Hat < Sprite_Wearable
|
||||
def initialize(player_sprite, filename, action, viewport)
|
||||
super
|
||||
@relative_z = 2
|
||||
#@sprite.z = @player_sprite.z + 2
|
||||
|
||||
end
|
||||
|
||||
def set_sprite_position(action, direction, current_frame)
|
||||
@sprite.x = @player_sprite.x - @player_sprite.ox
|
||||
@sprite.y = @player_sprite.y - @player_sprite.oy
|
||||
case action
|
||||
when "run"
|
||||
if direction == DIRECTION_DOWN
|
||||
apply_sprite_offset(Outfit_Offsets::RUN_OFFSETS_DOWN, current_frame)
|
||||
elsif direction == DIRECTION_LEFT
|
||||
apply_sprite_offset(Outfit_Offsets::RUN_OFFSETS_LEFT, current_frame)
|
||||
elsif direction == DIRECTION_RIGHT
|
||||
apply_sprite_offset(Outfit_Offsets::RUN_OFFSETS_RIGHT, current_frame)
|
||||
elsif direction == DIRECTION_UP
|
||||
apply_sprite_offset(Outfit_Offsets::RUN_OFFSETS_UP, current_frame)
|
||||
end
|
||||
when "surf"
|
||||
if direction == DIRECTION_DOWN
|
||||
apply_sprite_offset(Outfit_Offsets::SURF_OFFSETS_DOWN,current_frame)
|
||||
elsif direction == DIRECTION_LEFT
|
||||
apply_sprite_offset( Outfit_Offsets::SURF_OFFSETS_LEFT,current_frame)
|
||||
elsif direction == DIRECTION_RIGHT
|
||||
apply_sprite_offset( Outfit_Offsets::SURF_OFFSETS_RIGHT,current_frame)
|
||||
elsif direction == DIRECTION_UP
|
||||
apply_sprite_offset( Outfit_Offsets::SURF_OFFSETS_UP,current_frame)
|
||||
end
|
||||
when "dive"
|
||||
if direction == DIRECTION_DOWN
|
||||
apply_sprite_offset(Outfit_Offsets::DIVE_OFFSETS_DOWN,current_frame)
|
||||
elsif direction == DIRECTION_LEFT
|
||||
apply_sprite_offset( Outfit_Offsets::DIVE_OFFSETS_LEFT,current_frame)
|
||||
elsif direction == DIRECTION_RIGHT
|
||||
apply_sprite_offset( Outfit_Offsets::DIVE_OFFSETS_RIGHT,current_frame)
|
||||
elsif direction == DIRECTION_UP
|
||||
apply_sprite_offset( Outfit_Offsets::DIVE_OFFSETS_UP,current_frame)
|
||||
end
|
||||
when "bike"
|
||||
if direction == DIRECTION_DOWN
|
||||
apply_sprite_offset(Outfit_Offsets::BIKE_OFFSETS_DOWN,current_frame)
|
||||
elsif direction == DIRECTION_LEFT
|
||||
apply_sprite_offset( Outfit_Offsets::BIKE_OFFSETS_LEFT,current_frame)
|
||||
elsif direction == DIRECTION_RIGHT
|
||||
apply_sprite_offset( Outfit_Offsets::BIKE_OFFSETS_RIGHT,current_frame)
|
||||
elsif direction == DIRECTION_UP
|
||||
apply_sprite_offset( Outfit_Offsets::BIKE_OFFSETS_UP,current_frame)
|
||||
end
|
||||
else
|
||||
@sprite.x = @player_sprite.x - @player_sprite.ox
|
||||
@sprite.y = @player_sprite.y - @player_sprite.oy
|
||||
end
|
||||
@sprite.y -= 2 if current_frame % 2 == 1
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
# class Sprite_Hat < RPG::Sprite
|
||||
# attr_accessor :filename
|
||||
# attr_accessor :action
|
||||
# attr_accessor :hat_sprite
|
||||
#
|
||||
# def initialize(player_sprite, filename, action, viewport)
|
||||
# @player_sprite = player_sprite
|
||||
# @viewport = viewport
|
||||
# @hat_sprite = Sprite.new(@viewport)
|
||||
# @hatBitmap = AnimatedBitmap.new(filename) if pbResolveBitmap(filename)
|
||||
# @filename = filename
|
||||
# @hat_sprite.bitmap = @hatBitmap.bitmap if @hatBitmap
|
||||
# @action = action
|
||||
# @color = 0
|
||||
# @frameWidth = 80 #@hat_sprite.width
|
||||
# @frameHeight = 80 #@hat_sprite.height / 4
|
||||
# @hat_sprite.z = @player_sprite.z + 2
|
||||
# echoln(_INTL("init had at z = {1}, player sprite at {2}",@hat_sprite.z,@player_sprite.z))
|
||||
#
|
||||
# #Unused position offset
|
||||
# # @x_pos_base_offset = 0
|
||||
# # @y_pos_base_offset = 0
|
||||
# end
|
||||
#
|
||||
# def apply_sprite_offset(offsets_array, current_frame)
|
||||
# @hat_sprite.x += offsets_array[current_frame][0]
|
||||
# @hat_sprite.y += offsets_array[current_frame][1]
|
||||
# end
|
||||
#
|
||||
# def set_sprite_position(action, direction, current_frame)
|
||||
# @hat_sprite.x = @player_sprite.x - @player_sprite.ox
|
||||
# @hat_sprite.y = @player_sprite.y - @player_sprite.oy
|
||||
# case action
|
||||
# when "run"
|
||||
# if direction == DIRECTION_DOWN
|
||||
# apply_sprite_offset(Outfit_Offsets::RUN_OFFSETS_DOWN, current_frame)
|
||||
# elsif direction == DIRECTION_LEFT
|
||||
# apply_sprite_offset(Outfit_Offsets::RUN_OFFSETS_LEFT, current_frame)
|
||||
# elsif direction == DIRECTION_RIGHT
|
||||
# apply_sprite_offset(Outfit_Offsets::RUN_OFFSETS_RIGHT, current_frame)
|
||||
# elsif direction == DIRECTION_UP
|
||||
# apply_sprite_offset(Outfit_Offsets::RUN_OFFSETS_UP, current_frame)
|
||||
# end
|
||||
# when "surf"
|
||||
# if direction == DIRECTION_DOWN
|
||||
# apply_sprite_offset(Outfit_Offsets::SURF_OFFSETS_DOWN,current_frame)
|
||||
# elsif direction == DIRECTION_LEFT
|
||||
# apply_sprite_offset( Outfit_Offsets::SURF_OFFSETS_LEFT,current_frame)
|
||||
# elsif direction == DIRECTION_RIGHT
|
||||
# apply_sprite_offset( Outfit_Offsets::SURF_OFFSETS_RIGHT,current_frame)
|
||||
# elsif direction == DIRECTION_UP
|
||||
# apply_sprite_offset( Outfit_Offsets::SURF_OFFSETS_UP,current_frame)
|
||||
# end
|
||||
# when "dive"
|
||||
# if direction == DIRECTION_DOWN
|
||||
# apply_sprite_offset(Outfit_Offsets::DIVE_OFFSETS_DOWN,current_frame)
|
||||
# elsif direction == DIRECTION_LEFT
|
||||
# apply_sprite_offset( Outfit_Offsets::DIVE_OFFSETS_LEFT,current_frame)
|
||||
# elsif direction == DIRECTION_RIGHT
|
||||
# apply_sprite_offset( Outfit_Offsets::DIVE_OFFSETS_RIGHT,current_frame)
|
||||
# elsif direction == DIRECTION_UP
|
||||
# apply_sprite_offset( Outfit_Offsets::DIVE_OFFSETS_UP,current_frame)
|
||||
# end
|
||||
# when "bike"
|
||||
# if direction == DIRECTION_DOWN
|
||||
# apply_sprite_offset(Outfit_Offsets::BIKE_OFFSETS_DOWN,current_frame)
|
||||
# elsif direction == DIRECTION_LEFT
|
||||
# apply_sprite_offset( Outfit_Offsets::BIKE_OFFSETS_LEFT,current_frame)
|
||||
# elsif direction == DIRECTION_RIGHT
|
||||
# apply_sprite_offset( Outfit_Offsets::BIKE_OFFSETS_RIGHT,current_frame)
|
||||
# elsif direction == DIRECTION_UP
|
||||
# apply_sprite_offset( Outfit_Offsets::BIKE_OFFSETS_UP,current_frame)
|
||||
# end
|
||||
# else
|
||||
# @hat_sprite.x = @player_sprite.x - @player_sprite.ox
|
||||
# @hat_sprite.y = @player_sprite.y - @player_sprite.oy
|
||||
# end
|
||||
# @hat_sprite.y -= 2 if current_frame % 2 == 1
|
||||
# end
|
||||
#
|
||||
# def animate(action)
|
||||
# @action = action
|
||||
# current_frame = @player_sprite.character.pattern
|
||||
# direction = @player_sprite.character.direction
|
||||
# crop_spritesheet(direction)
|
||||
# set_sprite_position(@action, direction, current_frame)
|
||||
# adjust_hat_layer()
|
||||
# end
|
||||
#
|
||||
# def update(action, hatFilename,color)
|
||||
# @hat_sprite.opacity = @player_sprite.opacity if @hatBitmap
|
||||
# if hatFilename != @filename || color != @color
|
||||
# if pbResolveBitmap(hatFilename)
|
||||
# #echoln pbResolveBitmap(hatFilename)
|
||||
# @hatBitmap = AnimatedBitmap.new(hatFilename,color)
|
||||
# @hat_sprite.bitmap = @hatBitmap.bitmap
|
||||
# else
|
||||
# @hatBitmap = nil
|
||||
# @hat_sprite.bitmap = nil
|
||||
# end
|
||||
# @color =color
|
||||
# @filename = hatFilename
|
||||
# end
|
||||
# animate(action)
|
||||
# end
|
||||
#
|
||||
# def adjust_hat_layer()
|
||||
# if @hat_sprite.z != @player_sprite.z
|
||||
# @hat_sprite.z = @player_sprite.z
|
||||
# end
|
||||
# end
|
||||
#
|
||||
# def crop_spritesheet(direction)
|
||||
# sprite_x = 0
|
||||
# sprite_y = ((direction - 2) / 2) * @frameHeight
|
||||
# @hat_sprite.src_rect.set(sprite_x, sprite_y, @frameWidth, @frameHeight)
|
||||
# end
|
||||
#
|
||||
# def dispose
|
||||
# return if @disposed
|
||||
# @hat_sprite.dispose if @hat_sprite
|
||||
# @hat_sprite = nil
|
||||
# @disposed = true
|
||||
# end
|
||||
#
|
||||
# def disposed?
|
||||
# @disposed
|
||||
# end
|
||||
#
|
||||
# end
|
||||
Reference in New Issue
Block a user