Jump to content
New account registrations are disabed. This website is now an archive. Read more here.
kellessdee

Mini-games pack?

Recommended Posts

DRIVING MINI-GAME

I finally got around to finishing this!

Updated with more descriptive instructions.

 

Instructions

 

First and foremost, You need to copy and paste the script above main.

To use this script, you must actually create a map, used for where the driving game will take place. To do this, simply create a map with the default width(there is no handling for scrolling wider maps) and whatever height you wish (the longer the map, the longer the mini-game will last)

Once you create this map, you will need to add %d to the map name, so that the script will know the player has been transferred to a driving map.

To better portray this here is a screenshot:

 

mapnr.th.png

 

Once you have created this map, simply use any tileset to create what the course will look like. However, once that is finished you will need to manually place obstacles and health boosts on this map. To do so, I have set it up so you simply need to create an event, and use either &o or &h as its name. &o is for obstacles, and &h is for health boosts:

 

obstacle.th.png

Obstacle event

 

healthi.th.png

Health boost event

 

And blam0, your driving map is set up. Now, to use this map correctly, you will need to create an event to send the player to this driving map, however there are a few things you need to do.

1) Store the map ID you wish to return to, the x co-ordinate, and the y co-ordinate all into separate variables (which variables to use, will depend on what you set them in the script, which I explain further down)

(You can store the current Map ID, player x and y coordinates into separate variables, however if you wish for the player to move to a new map when the game is over, you will have to manually set the values.)

 

mapid.th.png

If you open up map properties, this is the ID (so if 001, set the variable to 1, etc)

 

40148033.th.png

This is where you find the x and y coordinates of the current map, just select a tile (in event mode) and it will tell you x, y. Set x to the first value, y to the second value.

 

2) You will probably want to change the player to invisible so when they go to the driving map, the player is not seen there. I have added an opacity method to the player, so before transferring to the driving map call a script and write in

$game_player.set_opacity(0)

this will make the player invisible. Then when you transfer the player, make sure you place them at the very bottom of the driving map.

 

switchtodrive.th.png

This is the event I set up for the demo.

 

And there you have it! All done.

 

Configuration

At the beginning of the script there is a module called "Driving" this is all the configuration settings for the mini-game. I will explain each setting here better.

 

SPEED - This determines how fast the vehicle moves, to be more specific it is the number of pixels per frame when a directional key is being pressed. If you find the vehicle moving too slow, increase this value.

 

SCROLL_SPEED - This determines how fast the screen will scroll. Just like the vehicle, it is the number of pixels scrolled per frame.

 

GRAPHIC_NAME - This is the name of the file that holds the "vehicles" graphic...It actually uses character sets, so place the graphic in that folder, and put its filename (without the extension) here. Also, in case you we wondering it DOES handle character animation. Try putting this as an actual player sprite, and you will see the run the whole way!

 

GRAPHIC_HUE - This is the hue adjustment value for the graphic used. You probably won't need to change this at all, but if you'd like you can alter the colours in the graphic. 0 = original colour.

 

OBSTACLE_DAMAGE - This is how much damage is received when the player runs into an obstacle. The "max" hp for the vehicle is 100, so try not to set this too high (unless you wish to make it hard :D)

 

HEALTH_BOOST - This is how much health is recovered when the player picks up a health boost.

 

MAP_VAR_ID - This is the ID number of the variable that will be used to store the Map ID of the map the player will transfer to once the game is over. You will reuse the variables each time you have an instance of this game, but do not worry, you can set this value in the event editor each time if you want the player to return to a different map (Variable id is the number of the variable in the event editor, Variable 0001:'s ID is 1.)

 

X_VAR_ID - The ID number of the variable that will store the x-coordinate of the map you wish the player to be transferred to.

 

Y_VAR_ID - The ID number of the variable that will store the y-coordinate of the map you wish the player to be transferred to.

 

VICTORY_SWITCH_ID - The ID number of the switch that will hold whether the player won or lost the race. when ON, it means they won, when OFF they lost. You can use this to handle winning and losing events

 

COUNTDOWN_SE - Path/Name of sound effect each time the start timer counts down. If set to nil, no sound will play (as with any SE/ME, the sound will not play if set to nil)

 

START_SE - Path/Name of sound effect played the when GO is displayed

 

VICTORY_ME - Path/Name of music effect (ME) played when the player wins

 

LOSE_ME - Path/Name of music effect (ME) played when the player loses

 

OBSTACLE_SE - Path/Name of sound effect played the when player runs into an obstacle

 

HEALTH_SE - Path/Name of sound effect played the when player picks up a health boost

 

*NOTE: Whatever the map has as its BGM will be played during the race.

 

 

Script

 

=begin
 * DRIVING MINI-GAME
 * by kellessdee
 ------------------------------------------------------------------------------
 * This is a simple driving mini-game, you create a "Driving" map in the map
 * editor, and when the player is teleported to said map, the game begins.
 ------------------------------------------------------------------------------
 * To signify a driving mini-game, just change the name of the map
 * to include %d at the beginning.
 ------------------------------------------------------------------------------
 * There are 2 kinds of events that are used at this time in the game, 
 * Obstacles and Health recovery. To create these in the game, just add events
 * to the map and include &o (for obstacle) or &h (for health) in the event
 * name.
 ------------------------------------------------------------------------------
 * If you have any questions or need clarification on this script you can
 * contact me:
 * @ http://www.rmxpunlimited.net/forums/
 * or by e-mail: kellessdee@gmail.com
 * You will probably have better luck getting in contact with me @rmxpunlimited,
 * plus they are a very friendly and helpful rmxp community, so if you want
 * join up! 
 ------------------------------------------------------------------------------
 * You are free to do whatever you wish with this script as long as you give 
 * credit where due!
 * Thanks to LNER_fan for the car image!
 ------------------------------------------------------------------------------
 * The following module are the configuration settings for the mini-game,
 * each one is explained within the module.
 ------------------------------------------------------------------------------
=end
module Driving
 # Speed of the vehicle, how many pixels are travelled when moving
 SPEED = 5 
 # How fast the screen scrolls per frame
 SCROLL_SPEED = 32 
 # Name of the file in character sets for vehicle
 GRAPHIC_NAME = 'shmuptestchar' 
 # Color adjustment of aformentioned file
 GRAPHIC_HUE = 0 
 # How much damage is inflicted by the obstacles
 OBSTACLE_DAMAGE = 10 
 # How much health is recovered by health items
 HEALTH_BOOST = 25 
 # The ID of the variable that contains the map ID to go to after game is 
 # finished
 MAP_VAR_ID = 1 
 # ID of the variable for X coordinate to transfer player to on said map ID
 X_VAR_ID = 2
 # ID of the variable for X coordinate to transfer player to on said map ID
 Y_VAR_ID = 3
 # ID of the switch that holds whether the player won or lost the match
 VICTORY_SWITCH_ID = 1
 # File name of sound during countdown. If set to nil, there will be no sound
 COUNTDOWN_SE = 'Audio/SE/002-System02'
 # File name of sound played when GO! is displayed
 START_SE = 'Audio/SE/014-Move02'
 # File name of ME when you win game
 VICTORY_ME = 'Audio/ME/004-Victory04'
 # File name of ME when you lose game
 LOSE_ME = 'Audio/ME/005-Defeat01'
 # File name of sound when you collide with obstacle
 OBSTACLE_SE = 'Audio/SE/104-Attack16'
 # File name of sound when you pick up health boost
 HEALTH_SE = 'Audio/SE/146-Support04'
end

#============================================================================
# ** Game_Vehicle
#----------------------------------------------------------------------------
#   Handles the vehicle in driving mini-game
#============================================================================
class Game_Vehicle < RPG::Sprite
 #--------------------------------------------------------------------------
 # * Public Instance Variables
 #--------------------------------------------------------------------------
 attr_reader     :damage   # Remaining damage left on vehicle
 #--------------------------------------------------------------------------
 # * Object Initialization
 #--------------------------------------------------------------------------
 def initialize(viewport)
   super(viewport)
   self.bitmap = RPG::Cache.character(Driving::GRAPHIC_NAME, Driving::GRAPHIC_HUE)
   @h = self.bitmap.height / 4
   @w = self.bitmap.width / 4
   # Initialize graphic to facing UP
   self.src_rect = Rect.new(0, @h * 3, @w, @h)
   # Set up hit box
   self.ox = @w / 2
   self.oy = @h / 2
   # Set up Screen location
   self.x = 320
   self.y = 480 - @h
   # Initialize Animation frames
   @anim = 0
   @crashing = false
   @damage = 100
   @timer = 0
 end
 #--------------------------------------------------------------------------
 # * Update Frame
 #--------------------------------------------------------------------------
 def update
   super
   if @timer > 0
     @timer -= 1
     self.whiten
   end
   if @timer == 0 && @crashing
     @crashing = false
   end
   # Increase animation frame
   @anim += 1
   if @anim == 16
     @anim = 0
   end # if
   # Check if user is moving vehicle
   case Input.dir8
   when 1  # Down Left
     move_left
     move_down
   when 2  # Down
     move_down
   when 3  # Down Right
     move_right
     move_down
   when 4  # Left
     move_left
   when 6  # Right
     move_right
   when 7  # Up Left
     move_left
     move_up
   when 8  # Up
     move_up
   when 9  # Up Right
     move_right
     move_up
   end # case
   # Update Animation frame
   update_animation
   # Check for obstacles/pick-ups
   check_location
 end # update
 #--------------------------------------------------------------------------
 # * Update Animation Frame Graphic
 #--------------------------------------------------------------------------
 def update_animation
   # Check which Animation frame
   self.src_rect = Rect.new((@anim / 4) * @w, @h * 3, @w, @h)
 end
 #--------------------------------------------------------------------------
 # * Check Vehicle Location
 #--------------------------------------------------------------------------
 def check_location
   # Check driving map's event at vehicle location
   x, y = get_map_x, get_map_y
   event = $game_map.get_event_name(x, y - 1)
   # if Obstacle
   if event.include?('&o') && !@crashing
     Audio.se_play(Driving::OBSTACLE_SE) unless Driving::OBSTACLE_SE == nil
     # damage vehicle
     @damage -= Driving::OBSTACLE_DAMAGE
     @crashing = true
     @timer = 10
     return
   # if Health Boost
   elsif event.include?('&h')
     Audio.se_play(Driving::HEALTH_SE) unless Driving::HEALTH_SE == nil
     # heal vehicle
     @damage += Driving::HEALTH_BOOST
     if @damage > 100
       @damage = 100
     end # if
     $game_map.erase_event(x, y - 1)
     return
   end # if
   event = $game_map.get_event_name(x, y + 1)
   # if Obstacle
   if event.include?('&o') && !@crashing
     Audio.se_play(Driving::OBSTACLE_SE) unless Driving::OBSTACLE_SE == nil
     # damage vehicle
     @damage -= Driving::OBSTACLE_DAMAGE
     @crashing = true
     @timer = 10
     return
   # if Health Boost
   elsif event.include?('&h')
     Audio.se_play(Driving::HEALTH_SE) unless Driving::HEALTH_SE == nil
     # heal vehicle
     @damage += Driving::HEALTH_BOOST
     if @damage > 100
       @damage = 100
     end # if
     $game_map.erase_event(x, y + 1)
     return
   end # if
   event = $game_map.get_event_name(x - 1, y)
   # if Obstacle
   if event.include?('&o') && !@crashing
     Audio.se_play(Driving::OBSTACLE_SE) unless Driving::OBSTACLE_SE == nil
     # damage vehicle
     @damage -= Driving::OBSTACLE_DAMAGE
     @crashing = true
     @timer = 10
     return
   # if Health Boost
   elsif event.include?('&h')
     Audio.se_play(Driving::HEALTH_SE) unless Driving::HEALTH_SE == nil
     # heal vehicle
     @damage += Driving::HEALTH_BOOST
     if @damage > 100
       @damage = 100
     end # if
     $game_map.erase_event(x - 1, y)
     return
   end # if
   event = $game_map.get_event_name(x + 1, y)
   # if Obstacle
   if event.include?('&o') && !@crashing
     Audio.se_play(Driving::OBSTACLE_SE) unless Driving::OBSTACLE_SE == nil
     # damage vehicle
     @damage -= Driving::OBSTACLE_DAMAGE
     @crashing = true
     @timer = 10
     return
   # if Health Boost
   elsif event.include?('&h')
     Audio.se_play(Driving::HEALTH_SE) unless Driving::HEALTH_SE == nil
     # heal vehicle
     @damage += Driving::HEALTH_BOOST
     if @damage > 100
       @damage = 100
     end # if
     $game_map.erase_event(x + 1, y)
     return
   end # if
 end # check_location
 #--------------------------------------------------------------------------
 # * Move Vehicle Up
 #--------------------------------------------------------------------------
 def move_up
   # If graphic is below very top of the screen
   if self.y - Driving::SPEED >= 0
     self.y -= Driving::SPEED
   end
 end 
 #--------------------------------------------------------------------------
 # * Move Vehicle Down
 #--------------------------------------------------------------------------
 def move_down
   # If graphic is above bottom of the screen
   if self.y + Driving::SPEED <= 480
     self.y += Driving::SPEED
   end
 end # move_down
 #--------------------------------------------------------------------------
 # * Move Vehicle Left
 #--------------------------------------------------------------------------
 def move_left
   # If graphic is right of left of the screen
   if self.x - Driving::SPEED >= 0
     self.x -= Driving::SPEED
   end
 end # move_left
 #--------------------------------------------------------------------------
 # * Move Vehicle Right
 #--------------------------------------------------------------------------
 def move_right
   # If graphic is left of right of screen
   if self.x + Driving::SPEED <= 640
     self.x += Driving::SPEED
   end
 end # move_right
 #--------------------------------------------------------------------------
 # * Get Map X
 #--------------------------------------------------------------------------
 def get_map_x
   # Convert Screen X into Map X 
   return (self.x + ($game_map.display_x / 4)) / 32
 end # get_map_x
 #--------------------------------------------------------------------------
 # * Get Map Y
 #--------------------------------------------------------------------------
 def get_map_y
   # Convert Screen Y into Map Y
   return (self.y + ($game_map.display_y / 4)) / 32
 end # get_map_y
end # Game_Vehicle
#=============================================================================
# ** Scene_Driving
#-----------------------------------------------------------------------------
#   This scene handles the driving mini-game
#=============================================================================
class Scene_Driving
 #---------------------------------------------------------------------------
 # * Object Initialization
 #---------------------------------------------------------------------------
 def initialize
   @victory = false
   @gameover = false
   @PREV_MAP_ID = $game_variables[Driving::MAP_VAR_ID]
   @PREV_MAP_X = $game_variables[Driving::X_VAR_ID]
   @PREV_MAP_Y = $game_variables[Driving::Y_VAR_ID]
 end # initialize
 #---------------------------------------------------------------------------
 # * Main Processsing
 #---------------------------------------------------------------------------
 def main
   # Draw Driving Course
   @course = Spriteset_Map.new
   # Create vehicle
   @vehicle = Game_Vehicle.new(@course.viewport1)
   # Create Screen display
   @fg = Sprite.new
   @fg.bitmap = Bitmap.new(640, 480)
   @fg.bitmap.font.size = 72
   @fg.bitmap.font.bold = true
   @fg.bitmap.font.italic = true
   # Create Driving Timer
   @timer = 160
   # Execute Transition
   Graphics.transition
   # Starting loop
   loop do
     # Update Graphics
     Graphics.update
     # Update frame
     update_start
     # if timer is finished, start Driving
     if @timer == 0
       break
     end # if
   end # loop
   @fg.bitmap.font.size = 18
   @fg.bitmap.font.color = Color.new(255, 255, 255, 255)
   # Setup Health Bar / Progress Bar
   update_health_display(100)
   # Main loop
   loop do
     # Update Graphics
     Graphics.update
     # Update Input
     Input.update
     # Update frame
     update_drive
     # If game is over, finish drive
     if @gameover
       break
     end # if
   end # loop
   @fg.bitmap.font.size = 72
   # Set timer
   @timer = 160
   # Finishing loop
   loop do
     # Update Graphics
     Graphics.update
     # Update finish
     if @victory
       update_finish
     else
       update_lose
     end
     # timer is finished leave scene
     if @timer == 0
       break
     end
   end
   # Adjust WIN/LOSE switches
   $game_switches[Driving::VICTORY_SWITCH_ID] = @victory
   # Prepare transition
   Graphics.freeze
   # Change Map
   $game_map.setup(@PREV_MAP_ID)
   $game_player.moveto(@PREV_MAP_X, @PREV_MAP_Y)
   $scene = Scene_Map.new
   $game_player.set_opacity(255)
   # Dispose graphics
   @course.dispose
   @fg.dispose
   @vehicle.dispose
 end # main
 #---------------------------------------------------------------------------
 # * Update drive
 #---------------------------------------------------------------------------
 def update_drive
   # Temporarily store vehicle hp
   hp = @vehicle.damage
   # Scroll Screen
   $game_map.scroll_up(Driving::SCROLL_SPEED)
   # Update Map
   $game_map.update
   @course.update
   # Update Vehicle
   @vehicle.update
   # Check if hp has changed
   if hp != @vehicle.damage
     update_health_display(@vehicle.damage)
   end
   if $game_map.display_y == 0
     @gameover = true
     @victory = true
   end # if
 end # update_drive
 #---------------------------------------------------------------------------
 # * Update Start
 #---------------------------------------------------------------------------
 def update_start
   # Update Timer
   @timer -= 1
   case @timer
   when 159
     draw_info('3')
   when 120..158
     @fg.opacity += 20
     unless Driving::COUNTDOWN_SE == nil
       Audio.se_play(Driving::COUNTDOWN_SE) if @timer == 155
     end
   when 119
     draw_info('2')
   when 80..118
     @fg.opacity += 20
     unless Driving::COUNTDOWN_SE == nil
       Audio.se_play(Driving::COUNTDOWN_SE) if @timer == 115
     end
   when 79
     draw_info('1')
   when 40..78
     @fg.opacity += 20
     unless Driving::COUNTDOWN_SE == nil
       Audio.se_play(Driving::COUNTDOWN_SE) if @timer == 75
     end
   when 39
     draw_info('GO!')
   when 0..38
     @fg.opacity += 20
     unless Driving::START_SE == nil
       Audio.se_play(Driving::START_SE) if @timer == 5
     end
   end # case
 end # update_start
 #---------------------------------------------------------------------------
 # * Update Finish
 #---------------------------------------------------------------------------
 def update_finish
   # Update Timer
   @timer -= 1
   case @timer
   when 158..159
     Audio.me_play(Driving::VICTORY_ME) unless Driving::VICTORY_ME == nil
     draw_info('WIN!')
   when 0..157
     @fg.opacity += 10
   end # case
 end # update_finish
 #---------------------------------------------------------------------------
 # * Update Lose
 #---------------------------------------------------------------------------
 def update_lose
   # Update Timer
   @timer -= 1
   case @timer
   when 158..159
     Audio.me_play(Driving::LOSE_ME) unless Driving::LOSE_ME == nil
     draw_info('LOSE...')
   when 0..157
     @fg.opacity += 5
   end # case
 end
 #---------------------------------------------------------------------------
 # * Draw Info
 #---------------------------------------------------------------------------
 def draw_info(text)
   # Clear Bitmap
   @fg.bitmap.clear
   # Make transparent
   @fg.opacity = 0
   # Get Center Screen location
   w = @fg.bitmap.text_size(text).width
   h = @fg.bitmap.text_size(text).height
   x = 320 - w / 2
   y = 240 - h / 2
   # Draw Black Outline
   @fg.bitmap.font.color = Color.new(0, 0, 0, 255)
   @fg.bitmap.draw_text(x - 3, y - 3, w, h, text, 1)
   @fg.bitmap.draw_text(x + 3, y - 3, w, h, text, 1)
   @fg.bitmap.draw_text(x - 3, y + 3, w, h, text, 1)
   @fg.bitmap.draw_text(x + 3, y + 3, w, h, text, 1)
   # Draw White inner Outline
   @fg.bitmap.font.color = Color.new(255, 255, 255, 255)
   @fg.bitmap.draw_text(x - 2, y - 2, w, h, text, 1)
   @fg.bitmap.draw_text(x + 2, y - 2, w, h, text, 1)
   @fg.bitmap.draw_text(x - 2, y + 2, w, h, text, 1)
   @fg.bitmap.draw_text(x + 2, y + 2, w, h, text, 1)
   # Draw Orange Center
   @fg.bitmap.font.color = Color.new(255, 100, 0, 255)
   @fg.bitmap.draw_text(x, y, w, h, text, 1)
 end # draw_info
 #---------------------------------------------------------------------------
 # * Update Health Display
 #---------------------------------------------------------------------------
 def update_health_display(health)
   @fg.bitmap.clear
   # Draw bar
   @fg.bitmap.draw_gradient_bar(16, 16, 304, 12, health, 100, 
     Color.new(255, 0, 0, 255), Color.new(255, 75, 75, 255))
   # Draw Label
   @fg.bitmap.font.color = Color.new(0, 0, 0, 255)
   @fg.bitmap.draw_text(19, 1, 300, 16, 'Health')
   @fg.bitmap.draw_text(21, 1, 300, 16, 'Health')
   @fg.bitmap.draw_text(19, -1, 300, 16, 'Health')
   @fg.bitmap.draw_text(21, -1, 300, 16, 'Health')
   @fg.bitmap.font.color = Color.new(255, 255, 255, 255)
   @fg.bitmap.draw_text(20, 0, 300, 16, 'Health')
   # Check if health is 0
   if health <= 0
     @gameover = true
   end
 end # update_health_display
end # Scene_Driving


#=============================================================================
#=============================================================================
#=============================================================================
# ** MODIFIED CLASSES ********************************************************
#=============================================================================
#=============================================================================
#=============================================================================


#============================================================================
# ** Spriteset_Map
#============================================================================
class Spriteset_Map
 #--------------------------------------------------------------------------
 # * Public Instance Variable
 #--------------------------------------------------------------------------
 attr_reader     :viewport1
end # Spriteset_Map
#============================================================================
# ** Game_Event
#============================================================================
class Game_Event < Game_Character
 #--------------------------------------------------------------------------
 # * New Public Instance Variable
 #--------------------------------------------------------------------------
 attr_reader   :event
 attr_reader   :erased
end # Game_Event
#============================================================================#
# ** Scene_Map aliased to check if player is in driving mini-game map        #
#============================================================================#
class Scene_Map
 #--------------------------------------------------------------------------
 # * Alias Update
 #--------------------------------------------------------------------------
 alias driving_update update
 def update
   driving_update
   # If player is in a driving map, start driving
   if $game_map.is_driving?
     $scene = Scene_Driving.new
   end # if
 end # update
end # Scene_Map
#============================================================================#
# ** Game_Map additional methods                                             #
#============================================================================#
class Game_Map
 @@map_info = load_data('Data/MapInfos.rxdata')
 #---------------------------------------------------------------------------
 # * Check if current map has '%d' characters in name, which notates a  
 # * driving map.
 #---------------------------------------------------------------------------
 def is_driving?(id=@map_id)
   name = @@map_info[id].name
   return name.include?('%d')
 end # is_driving?
 #--------------------------------------------------------------------------
 # * Get Event Name
 #--------------------------------------------------------------------------
 def get_event_name(x, y)
   for event in $game_map.events.values
     if event.x == x and event.y == y
       unless event.erased
         return event.event.name
       end
     end
   end
 end # get_event_name
 #--------------------------------------------------------------------------
 # * Erase Event
 #--------------------------------------------------------------------------
 def erase_event(x, y)
   for event in $game_map.events.values
     if event.x == x and event.y == y
       event.erase
     end
   end
 end
end # Game_Map
#============================================================================#
# ** Game_Player additional method                                           #
#============================================================================#
class Game_Player
 #---------------------------------------------------------------------------
 # * Set Opacity
 #---------------------------------------------------------------------------
 def set_opacity(opacity)
   @opacity = opacity
 end
end # Game_Player
#============================================================================
# * Bitmap class, added gradient bars
#============================================================================
class Bitmap
 #--------------------------------------------------------------------------
 # * Draw Gradient Bar
 #--------------------------------------------------------------------------
 def draw_gradient_bar(x, y, width, height, min, max, start_color, end_color)
   # Colors
   black = Color.new(0, 0, 0, 255)
   # Draw Bar back
   self.fill_rect(x, y, width, height, black)
   self.fill_rect(x - 1, y + 1, 1, height - 2, black)
   self.fill_rect(x + width, y + 1, 1, height - 2, black)
   # Get fill amount
   x += 3
   y += 3
   height -= 6
   width -= 6
   fill = (min.to_f / max) * width
   width = (width.to_f / fill) * 100
   dr = (end_color.red - start_color.red) / width.to_f
   dg = (end_color.green - start_color.green) / width.to_f
   db = (end_color.blue - start_color.blue) / width.to_f
   da = (end_color.alpha - start_color.alpha) / width.to_f
   (0...fill).each {|i|
     start_color.red += dr unless start_color.red + dr < 0
     start_color.green += dg unless start_color.green + dg < 0
     start_color.blue += db unless start_color.blue + db < 0
     start_color.alpha += da unless start_color.alpha + da < 0
     self.fill_rect(x + i, y, 1, height, start_color)
   }
 end
end

 

 

As usual, if you have any issues or questions or whatever, let me know :)

 

DEMO:

http://www.mediafire.com/?srrx21rxbw0bc8n

 

VIDEO:

http://www.youtube.com/watch?v=91Pk0Ya4t9M

 

DISCLAIMER: Use however you wish! Use it in your game, learn from it, modify it, make it better, post it elsewhere! I don't really care what you do with it, as long as you give credit where necessary :) Also, if you do improve the script at all, if you don't mind sending me what you did or letting me check it out I would be very interested to see what someone may have done with it; or if you wish post your improved version in this topic! Most importantly, have fun with the script!

Edited by kellessdee

Share this post


Link to post
Share on other sites

I'd find it useful. Maybe a script for one of those old driving arcade games?

 

Details:

The player character is continuously moving forward, but can still maneuver (Like in Touhou and other shoot-em'-ups)

 

The player must dodge other objects on the road (other vehicles, pot-holes, etc.)

 

Thanks in advance!

Share this post


Link to post
Share on other sites

I believe there is a Mario Party game for the RPG Maker. I remember seeing videos of it on youtube. I think it is very possible. You may be able to do it without scripts, and use a lot of events.

Share this post


Link to post
Share on other sites

LNER fan's idea soudns really good. It can be used in different situations. I'm only not sure if this would be better if evented instead of scripted.

 

Thanks! I mentioned it because I need it for my project. It's going to be a major part of the game.

Share this post


Link to post
Share on other sites

@LNER fan: That sounds like a good challenge! but I think it can be done, do you think it would be nicer with a mode 7 style view or a top-down style?

 

@RATED-RKOFRANKLIN: Mario party rmxp? That sounds really cool, I wonder if it's still kicking around somewhere.

 

And about eventing vs. scripting although eventing these mini-games would probably hella easier and could do just as nice of a job, in my opinion scripts can be more efficient as well as it would be MUCH easier for others to plug and play into their games; it would be a matter of copying + pasting the scripts, then use an event to call the script.

 

But since this will be found useful I will start working on this, I was going to start with black jack or something, but since LNER fan wants the driving game specifically I will work on that first

 

Another question for anyone: would you guys rather I release each mini-game as I finish it, then compile them into a pack once they are finished? or should I just get them all finished then post the final pack?

 

EDIT: I have updated my original post to make a list of mini-games to be included, and will update if people post ideas, which I hope to get a lot (enough to release a nice-sized package...lol sounds dirty)

Edited by kellessdee

Share this post


Link to post
Share on other sites

Oh cool, for some reason I am not surprised. I will have to check it out (If i can at least make a more improved version; it will still be worth doing)

But thanks man :)

Share this post


Link to post
Share on other sites

Galaga actually sounds like a good idea :P

 

@joman I thought about the racing game, and decided that it would probably a lot easier and a lot more efficient (well for me anyways, I dunno if I am fluent enough with ruby to get an actual racing game moving smoothly...unless it was like a straight away/drag race, that would be easy enough. if you want me to put together an event based one though let me know!)

Share this post


Link to post
Share on other sites

Now that I think of it, the script you wrote for me could make a nice base for those two suggestions.

Share this post


Link to post
Share on other sites

It could work as a base, but the main issue with the racing game itself is that it depends on how in-depth the racing game is, with racing, you need to take in account acceleration, different terrain affecting speed, AI for other racers, turning corners, etc... I don't mean to say it couldn't be done; however a racing game that is actually worth making would be involving coding that is a little advanced for me and could get very resource heavy...A drag racing game may be more plausible; then one simply needs to worry about acceleration and a simple AI--but then the question is, how fast would one get bored of playing a simple drag race? Although, perhaps a chrono trigger style race would make more sense (but even then, how fun was the racing game in chrono trigger?)

Share this post


Link to post
Share on other sites

i still think it could be great, for example a medieval horse race with obstacles and competetors etc. would be great to see in action. If you want to take up this challenge, i'll cheer for you :alright:

Share this post


Link to post
Share on other sites

So I started to get working on the Galaga mini-game and I must say it has been fun to make so far! I have gotten movement, shooting, etc. done. I just need to code the enemies and their patterns and then that will be done :)

 

And I have decided on trying to put together a more simple racing game, Similar to the driving game except instead of being damaged you get stopped, and there are opponents to race, and screen is not constantly moving.

 

galagat.png

GALAGA

Share this post


Link to post
Share on other sites

So I started to get working on the Galaga mini-game and I must say it has been fun to make so far! I have gotten movement, shooting, etc. done. I just need to code the enemies and their patterns and then that will be done :)

 

And I have decided on trying to put together a more simple racing game, Similar to the driving game except instead of being damaged you get stopped, and there are opponents to race, and screen is not constantly moving.

 

galagat.png

GALAGA

Share this post


Link to post
Share on other sites

Your work looks great, man! Too bad i don't see many people posting in this thread at the moment, but I for sure am following your work and i'll be more than happy when these get released :)

Share this post


Link to post
Share on other sites

You definitely rekindled my interest, I will put my current menu script project aside for at least long enough to finish galaga! I am sorry if anyone else was looking forward to these, but shame on you for not pestering me to finish them! (seriously, guys, bug me, I know i make it sound like it annoys me, but seriously it helps me stick to my projects!)

Share this post


Link to post
Share on other sites

Excellent do what ever you can! Well, if my buddy doesn't get a hold of me soon, I will be assuming I am staying in for the night. And Despite having no sleep the bit of wine i had seemed to rejuvenate me so if nothing pans out i will be working on galaga

 

EDIT: I think I have decided that once I complete and release galaga, I am gonna stop this project. I sincerely apologize if anyone was looking forward to the full project release. LNERFan, of course if you still need any help or support with the driving script I will help ya out (and I do plan on finishing that up and releasing it at some point) but I just realized that I am too much of an RPG whore to to this mini-game stuff (although galaga is gonna be pretty fun)

 

I just have so many project ideas I want to move onto and I hate to break this, but I just can't find the motivation.

Edited by kellessdee

Share this post


Link to post
Share on other sites

I think these script will be really useful for me and the others. I really want the Driving Mini Game and Galaga one, but if you don't mind may I give an idea?

 

 

I really want a guitar hero or stepmania minigame script.

 

 

EDIT : Eh, what? Are you going to stop the project? *sob*

Oh okay, guess I'll cancel my request above

Edited by someoneyouknow

Share this post


Link to post
Share on other sites

Thanks joman, I had a feeling it was gonna happen I was starting to get bored with it, and it just didn't seem as helpful as I originally thought.

 

@someoneyouknow: The driving mini-game and galaga will be released. I am not going to be finishing this pack, well not at this point maybe i will continue it in the future. However you can request a script if you want, but I can't make any promises on when it will get done.

But you can still suggest one if you'd like

Share this post


Link to post
Share on other sites

I really want the Driving Mini Game

 

I have it. If he's okay with it I could send it to you.

 

I really want a guitar hero or stepmania minigame script.

 

YESSSSSS to the guitar hero one, but what buttons would you use? How would you make charts?

Share this post


Link to post
Share on other sites

@LNER fan yeah man of course you can send it off :) and oh yeah do you still need it set up to read the switch to see if you get game over or not?

 

That kind of game would actually be relatively easy to make, but like you said LNER fan the difficulty would lay in setting up the charts. It would probably be best to set it up with the arrow-keys and make it like DDR. But the charts would either have to be compiled in image files that just scroll - but then the timing would probably be off. The best way would be to generate an arrow at a time and pre-program the charts. Which would be difficult unless you were good at making those kind of charts AND was able to script (I would be no good at making charts that fit the song) HOWEVER, once upon a time I played an RPG maker 2000/3 game that was basically dance dance revolution, and worked pretty good. So, eventing may actually be easier for this.

Edited by kellessdee

Share this post


Link to post
Share on other sites

I hate to double post, but I'd like to show you guys my current progress

 

http://www.youtube.com/watch?v=3DK6J3IiFmc

 

I need to fix the points (it seems like you get points if you shoot a dead enemy fast enough, i will fix this) and I realize now, the invincibility time for the player is too long

 

Also, there is sound + music, but it never got picked up :( I guess now camstudio is acting up for me too lol

 

But i have decided to make the game like this: each "round" there is a set of enemies of 1 type. The next round it's a new type and the enemies are stronger, once you beat 10 rounds it resets and enemies get faster. So it will be purely arcade! Is everyone cool with that?

 

EDIT:

http://www.mediafire.com/?07hkgej2a1m33e8

here's a little demo. I went and made the mistake of scripting when I should be sleeping...but I am beginning to worry that this mini-game is gonna lag like hell. I have a decent cpu and ram..so if you guys don't mind trying this out and letting me know what the lag levels are like.

NOTE: you cannot "die" yet...you will run out of lives but thats it, you still get to play

Just if you guys could let me know if you experience any lag, and if you don't mind letting me know what your current specs are...also of course if you find any bugs let me know as well

Edited by kellessdee

Share this post


Link to post
Share on other sites

thanks man! I am hoping it doesn't lag...however I may be able to reduce lag by reducing either the amount of on screen enemies and on screen lasers..and I could theoretically make the background not scroll to reduce lag as well

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...