RMRK is retiring.
Registration is disabled. The site will remain online, but eventually become a read-only archive. More information.

RMRK.net has nothing to do with Blockchains, Cryptocurrency or NFTs. We have been around since the early 2000s, but there is a new group using the RMRK name that deals with those things. We have nothing to do with them.
NFTs are a scam, and if somebody is trying to persuade you to buy or invest in crypto/blockchain/NFT content, please turn them down and save your money. See this video for more information.
MA Customizable Main Menu Addon: Cozziekuns Ring Menu

0 Members and 1 Guest are viewing this topic.

*****
Rep:
Level 84
This text is way too personal.
Bronze - GIAW 11 (Hard)Silver - GIAW Halloween
MA Customizable Main Menu Addon: Cozziekuns Ring Menu
Version: 1.0
Author: cozziekuns
Date: February 5, 2013

Version History


  • <Version 1.0> 2013.02.05 - Original Release

Description


An addon to Modern Algebra's lovely Customisable Main Menu script, allowing it to be transformed into a ring menu ala Seiken Densetsu 3.

Features

  • Plug and play!
  • Easy to configure.

Screenshots



Instructions

Essentially plug and play, with a few editable regions in the module.

Script


Code: [Select]
#=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
# ** Cozziekuns Ring Menu Addon
#-------------------------------------------------------------------------------
# Version: 1.0
# Author: cozziekuns (rmrk)
# Last Date Updated: 2/4/2013
#===============================================================================
# Description:
#-------------------------------------------------------------------------------
# An addon to Modern Algebra's lovely Customisable Main Menu script, allowing
# it to be transformed into a ring menu ala Seiken Densetsu 3.
#===============================================================================
# Instructions:
#-------------------------------------------------------------------------------
# Everything should be pretty straight forward. Edit the module as you wish.
#=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=

#=============================================================================
# ** Cozziekuns
#=============================================================================

module Cozziekuns
 
  module Ring_Menu
   
    #\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
    #  Editable Region
    #||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
   
    Ring_Menu_Radius = 128 # How large the ring menu will be
    Ring_Menu_Speed = 16 # How quickly the ring menu scrolls (less is faster)
    Ring_Menu_Icons ={ # Syntax: MA Command Symbol => Icon Index
      :item => 260,
      :skill => 418,
      :equip => 147,
      :status => 121,
      :formation => 164,
      :save => 227,
      :game_end => 225,
    }
   
    #||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
    #  END Editable Region
    #//////////////////////////////////////////////////////////////////////////
   
  end
 
end

include Cozziekuns

#=============================================================================
# ** Math
#=============================================================================

module Math
   
  def self.sind(value)
    sin(value * PI / 180)
  end
   
  def self.cosd(value)
   cos(value * PI / 180)
  end
     
  def self.tand(value)
    tan(value * PI / 180)
  end
     
end

#==============================================================================
# ** Window_MenuCommand
#==============================================================================

class Window_MenuCommand
 
  alias coz_ringmnu_wmcmnd_initialize initialize
  def initialize(*args)
    @angle = 0
    coz_ringmnu_wmcmnd_initialize(*args)
    self.opacity = 0
    cursor_rect.empty
    refresh
  end

  def window_width
    Graphics.width
  end
 
  def window_height
    Graphics.height
  end
 
  def angle_size
    360 / item_max
  end

  def draw_item(index)
    radius = Ring_Menu::Ring_Menu_Radius
    n = (index - @index) * angle_size + @angle
    cx = radius * Math.sind(n) + Graphics.width / 2
    cy = -radius * Math.cosd(n) + Graphics.height / 2
    draw_zoom_icon(Ring_Menu::Ring_Menu_Icons[@list[index][:symbol]], cx - 24, cy - 24, n == 0)
    if n == 0
      change_color(normal_color, command_enabled?(index))
      item_rect = Rect.new(0, 0, 0, 0)
      item_rect.x = Graphics.width / 2 - 80
      item_rect.y = Graphics.height / 2 - line_height
      item_rect.width = 160
      item_rect.height = line_height
      draw_text(item_rect, command_name(index), 1)
    end
  end
 
  def draw_zoom_icon(icon_index, x, y, enabled = true)
    bitmap = Cache.system("Iconset")
    rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
    stretch_rect = Rect.new(x, y, 48, 48)
    contents.stretch_blt(stretch_rect, bitmap, rect, enabled ? 255 : translucent_alpha)
  end
 
  def update
    update_index
    process_handling
  end
 
  def update_cursor
    cursor_rect.empty
  end
 
  def update_spin(reverse = false)
    speed = Ring_Menu::Ring_Menu_Speed
    @angle += (reverse ? -angle_size : angle_size) / speed.to_f
    Graphics.update
    refresh
  end
 
  def update_index
    if Input.trigger?(:LEFT)
      Sound.play_cursor
      update_spin while @angle.round < angle_size
      @index -= 1
      @index %= item_max
      @angle = 0
      refresh
    elsif Input.trigger?(:RIGHT)
      Sound.play_cursor
      update_spin(true) while @angle.round > -angle_size
      @index += 1
      @index %= item_max
      @angle = 0
      refresh
    end
  end
 
end

#==============================================================================
# ** Scene_Menu
#==============================================================================

class Scene_Menu
 
  def command_personal
    on_personal_ok
  end
 
end

Credit


  • cozziekuns
  • Modern Algebra

Thanks

  • Modern Algebra, for making such a fantastic script in the first place!

Known Compatibility Issues

None as of 5/2/2013.

Terms of Use


I adopt RMRK's default Terms of Use.

*
Rep:
Level 97
2014 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Best Member2012 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best RPG Maker User (Scripting)2011 Best Use of Avatar and Signature Space2010 Most Mature Member2010 Favourite Staff Member
Looks great cozzie!

*****
my name is Timothy what's yours
Rep:
Level 79
Hello
2014 Most Missed Member2014 Zero to Hero2014 Best IRC Quote2012 Zero To HeroSecret Santa 2012 ParticipantContestant - GIAW 9For frequently finding and reporting spam and spam bots2011 Zero to Hero
Well, this looks familiar! :P
Prettiful as always, Cozzie.
it's like a metaphor or something i don't know