RPG Creator : créez votre MMORPG ou RPG sans aucune connaissance en programmation


Disponible le 4 Juin !




- Jouez à votre jeu sur tablettes tactiles, Smartphones et navigateurs Web
- Personnalisez vos menus
- Dessinez facilement et rapidement vos cartes
- Créez des actions pour le combat A-RPG


www.rpgcreator.net


Heures au format UTC + 1 heure [ Heure d’été ]


Règles du forum


Consultez la liste des Scripts : cliquez ici

  • Voici les règles de la sous-section "Scripts à soumettre" :

    • Avant de poster un script, vérifier que le script n'est pas déjà présent sur le site ou le forum.
    • Si le script n'est pas de vous, assurez-vous que l'auteur en à permis la libre diffusion.
    • Les scripts postés doivent avoir de réels changements par rapport aux scripts par défaut de RPG Maker XP et VX.
    • Les scripts doivent être postés directement dans le sujet entourés des balises "code" (de préférence indentés).
    • Les démos sont facultatives et ne remplacent pas le fait de poster le code.
    • Le script doit être fourni avec les explications d'utilisation (dans le post ou bien dans le script lui même)



Publier un nouveau sujet Répondre au sujet  [ 1 message ] 
Auteur Message
 Sujet du message: [Mini-jeu] Script pour faire un Galaga
MessagePublié: 29 Aoû 2011, 03:17 
Villageois (Nv 1)

Inscrit le: 28 Aoû 2011, 02:51
Messages: 15
Sexe: Masculin
Points d'aide: 0/60

Créations :

Voir ses créations

Le script n'est pas de moi, mais apparement d'un certain kellessdee. Il demande a être complété pour être totalement fonctionnel, on ne peut pas mourir et seules les premières vagues d'aliens apparaissent. tout d'abord un lien vers la démo, pour les ressources (à modifier selon votre convenance) http://www.mediafire.com/?07hkgej2a1m33e8
et le script :
Code: Tout sélectionner
module Galaga
  # Sound Effects + Music
  BGM = 'R-Type Stage1'
  LASER_SE = 'galaga_laser'
  PAUSE_SE = '056-Right02'
end

#============================================================================
# ** Alias Title Screen New Game to add Galaga high scores
#============================================================================
class Scene_Title
  alias galaga_new_game command_new_game
 
  def command_new_game
    $galaga_high_scores = []
    galaga_new_game
  end
end
#============================================================================
# ** Alias Save Scene to Save Galaga high scores
#============================================================================
class Scene_Save
  alias galaga_save_game write_save_data
 
  def write_save_data(file)
    galaga_save_game(file)
    Marshal.dump($galaga_high_scores, file)
  end
end
#============================================================================
# ** Alias Load Scene to Load Galaga high scores
#============================================================================
class Scene_Load
  alias galaga_load_game read_save_data
 
  def read_save_data(file)
    galaga_load_game(file)
    $galaga_high_scores = Marshal.load(file)
  end
end
#============================================================================
# ** Galaga_Ship
#----------------------------------------------------------------------------
#   This class handles a space ship controlled by the player for the Galaga
#   mini-game
#============================================================================
class Galaga_Ship < RPG::Sprite
  # Constants
  SPEED = 10     # Number of pixels travelled per frame
  ANIM_ID = 2   # Animation ID in database for death
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor     :lives
  attr_accessor     :points
  attr_accessor     :dead
  attr_accessor     :shots_fired
  attr_accessor     :invincible
  attr_accessor     :timer
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(lives, viewport)
    super(viewport)
    self.visible = true
    self.bitmap = RPG::Cache.picture('Ship')
    self.src_rect = Rect.new(0, 0, 32, 32)
    self.ox = 16
    self.oy = 0
    self.x = 320
    self.y = 440
    @lives = lives
    @points = 0
    @shots_fired = 0
    @timer = 0
    @invincible = false
  end # initialize
  #--------------------------------------------------------------------------
  # * Update Frame
  #--------------------------------------------------------------------------
  def update
    super
    if @invincible
      @timer -= 1
      if @timer == 0
        @invincible = false
      elsif @timer % 4 >= 1
        self.visible = true
      elsif @timer % 4 < 1
        self.visible = false
      end
    end # if
    #
    if !@invincible && !self.visible
      self.visible = true
    end
    case Input.dir4
    when 4
      move_left
    when 6
      move_right
    end # case
  end # update
  #--------------------------------------------------------------------------
  # * Get Left Corner X
  #--------------------------------------------------------------------------
  def top_left
    return self.x - 16
  end # top_left
  #--------------------------------------------------------------------------
  # * Get Right Corner X
  #--------------------------------------------------------------------------
  def top_right
    return self.x + 16
  end # top right
  #--------------------------------------------------------------------------
  # * Get Y
  #--------------------------------------------------------------------------
  def get_y
    return self.y
  end
  #--------------------------------------------------------------------------
  # * Get X
  #--------------------------------------------------------------------------
  def get_x
    return self.x
  end
  #--------------------------------------------------------------------------
  # * Move Left
  #--------------------------------------------------------------------------
  def move_left
    # If ship can move left
    if top_left - SPEED >= 0
      # move distance
      self.x -= SPEED
    else
      # hug wall
      self.x = 16
    end # if
  end # move_left
  #--------------------------------------------------------------------------
  # * Move Right
  #--------------------------------------------------------------------------
  def move_right
    # if ship can move right
    if top_right + SPEED <= 640
      # move distance
      self.x += SPEED
    else
      # hug wall
      self.x = 624
    end # if
  end # move_right
  #--------------------------------------------------------------------------
  # * Death Sequence
  #--------------------------------------------------------------------------
  def death_anim
    self.animation($data_animations[ANIM_ID], true)
    @invincible = true
    @timer = 160
  end
end # Game_Ship
#============================================================================
# ** Galaga_Alien
#----------------------------------------------------------------------------
#   This class handles all the enemies for the galaga mini-game. It contains
#   The methods for each enemy's patterns
#============================================================================
class Galaga_Alien < RPG::Sprite
  #--------------------------------------------------------------------------
  # * Constants
  #--------------------------------------------------------------------------
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor   :speed
  attr_reader     :points
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(x, y, type, index)
    super()
    self.x = 640
    self.y = -32 * index
    if type == 1
      self.x = 32 * index
      self.y = -32
    end
    @start_x = x
    @start_y = y
    @move_y = 0
    @move_x = 0
    @type = type
    @width = 32
    @height = 32
    @timer = index * 20
    @frame_anim = 0
    @frame_count = 0
    @damage_count = type / 3
    @speed = 30
    @start = true
    self.bitmap = RPG::Cache.picture('Aliens')
    self.src_rect.set(0, type * 32, 32, 32)
  end # initialize
  #--------------------------------------------------------------------------
  # * Update Frame
  #--------------------------------------------------------------------------
  def update
    super
    if self.effect?
      return
    elsif !self.effect? && @damage_count < 0
      self.dispose
      return
    end
    @frame_count = (@frame_count + 1) % 7
    if @frame_count == 0
      @frame_anim = (@frame_anim + 1) % 2
      self.src_rect.set(@frame_anim * 32, @type * 32, 32, 32)
    end
    case @type
    when 0
      @timer -= 1 if @timer > 0
      if @start
        start_type_a
      elsif !@start && @timer == 0
        type_a_pattern
      end
    when 1
      @timer = 0
      if @start
        start_type_a
      else
        if rand(100) <= 25
          $scene.enemy_fire_laser(self)
        end
        @start_x += rand(200)
        @start_y += rand(200)
        if @start_x > 640
          @start_x = rand(50)
        end
        if @start_y > 480
          @start_y = rand(50)
        end
        @start = true
      end
    when 2
    when 3
    when 4
    when 5
    when 6
    when 7
    when 8
    when 9
    when 10
    end
  end
  #--------------------------------------------------------------------------
  # * Alien A start pattern
  #--------------------------------------------------------------------------
  def start_type_a
    if @timer == 0
      if self.x < @start_x
        self.x += (@start_x - self.x).abs / @speed
      elsif self.x > @start_x
        self.x -= (@start_x - self.x).abs / @speed
      end
      if self.y < @start_y
        self.y += (@start_y - self.y).abs / @speed
      elsif self.y  > @start_y
        self.y -= (@start_y - self.y).abs / @speed
      end
    end
    test_x = @start_x
    test_y = @start_y
    case self.x
    when test_x - 32..test_x + 32
      case self.y
      when test_y - 32..test_y + 32
        @start = false
        @timer = 120
        @move_x = rand(590) + 30
        @move_y = 640
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Alien A move pattern
  #--------------------------------------------------------------------------
  def type_a_pattern
    if self.x < @move_x
      self.x += (@move_x - self.x).abs / @speed
    elsif self.x > @move_x
      self.x -= (@move_x - self.x).abs / @speed
    end
    if self.y < @move_y
      self.y += (@move_y - self.y).abs / @speed
    elsif self.y > @move_y
      self.y -= (@move_x - self.x).abs / @speed
    end
    test_x = @move_x
    test_y = @move_y
    case self.x
    when test_x - 32..test_x + 32
      case self.y
      when test_y - 32..test_y + 32
        @start = true
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Damage
  #--------------------------------------------------------------------------
  def damage
    @damage_count -= 1
    if @damage_count < 0
      unless self.effect?
        $galaga_ship.points += (@type + 1) * 10
        self.animation($data_animations[3], true)
      end
    end
  end
end # Game_Galaga_Alien
#============================================================================
# ** Galaga_Laser
#----------------------------------------------------------------------------
#   This class handles the laser objects for the galaga mini-game.
#============================================================================
class Galaga_Laser < RPG::Sprite
  # Constants
  PLAYER = -1          # Player fired laser
  ENEMY = 1            # Enemy fired laser
  COLOR = Color.new(125, 255, 125, 255)   # Laser color
  SPEED = 32            # Laser movement speed
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(viewport, direction, x, y)
    super(viewport)
    self.bitmap = Bitmap.new(2, 32)
    self.bitmap.fill_rect(0, 0, 1, 32, COLOR)
    self.visible = true
    @direction = direction
    if @direction == ENEMY
      self.oy = 32
    end # if
    self.x = x
    self.y = y
  end # initiailize
  #--------------------------------------------------------------------------
  # * Update Frame
  #--------------------------------------------------------------------------
  def update(enemies=nil)
    # Move laser
    self.y += SPEED * @direction
    # if Enemies exist
    if enemies != nil && @direction < 0
      enemies.each {|enemy|
      # if hit enemy
      unless enemy.disposed?
        if (self.x >= enemy.x && self.x <= enemy.x + 32) &&
          (self.y >= enemy.y && self.y <= enemy.y + 32)
          enemy.damage
        end
      end
      }
    end
    # Check if laser hit player
    if @direction > 0
      if (self.x >= $galaga_ship.x && self.x <= $galaga_ship.x + 32) &&
        (self.y >= $galaga_ship.y && self.y <= $galaga_ship.y + 32)
        unless $galaga_ship.invincible
          $galaga_ship.death_anim
          $galaga_ship.lives -= 1
        end
      end
    end
    # Check if laser is off screen
    if self.y < -32 || self.y > 512
      self.dispose
    end
  end # update
end # Galaga_Laser
#============================================================================
# ** Galaga_Hud
#----------------------------------------------------------------------------
#   This class displays galaga game data, lives and points
#============================================================================
class Galaga_Hud < RPG::Sprite
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(viewport)
    super(viewport)
    self.bitmap = Bitmap.new(640, 480)
    refresh
  end # intialize
  #--------------------------------------------------------------------------
  # * Refresh Bitmap
  #--------------------------------------------------------------------------
  def refresh
    self.bitmap.clear
    # Draw Words
    self.bitmap.draw_text(0, 0, 200, 32, 'POINTS:')
    self.bitmap.draw_text(440, 0, 200, 32, '-LIVES-', 1)
    # Draw points
    self.bitmap.draw_text(0, 32, 200, 32, $galaga_ship.points.to_s)
    # Draw lives
    if $galaga_ship.lives > 0
      bitmap = RPG::Cache.picture('Ship')
      src_rect = Rect.new(0, 0, 32, 32)
      (0...$galaga_ship.lives).each {|i|
        new_rect = Rect.new(i * 20 + 500, 32, 16, 16)
        self.bitmap.stretch_blt(new_rect, bitmap, src_rect)
      }
    end # if
  end # refresh
end # Galaga_Hud
#============================================================================
# ** Galaga_Back
#----------------------------------------------------------------------------
#   This class displays and pans the space background
#============================================================================
class Galaga_Back
  # Constants
  BACKGROUND = 'Space'
  PAN_SPEED = 5
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_reader         :viewport1
  attr_reader         :viewport2
  attr_reader         :viewport3
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    # Make viewports
    @viewport1 = Viewport.new(0, 0, 640, 480)
    @viewport2 = Viewport.new(0, 0, 640, 480)
    @viewport3 = Viewport.new(0, 0, 640, 480)
    @viewport2.z = 200
    @viewport3.z = 5000
    # Make background
    @background = Plane.new(@viewport1)
    @background.bitmap = RPG::Cache.panorama(BACKGROUND, 0)
  end # Initialize
  #--------------------------------------------------------------------------
  # * Dispose
  #--------------------------------------------------------------------------
  def dispose
    # Dispose Background
    @background.dispose
    # Dispose Viewports
    @viewport1.dispose
    @viewport2.dispose
    @viewport3.dispose
  end # dispose
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  def update
    # Pan Background
    @background.oy -= PAN_SPEED
  end # update
end
#============================================================================
# ** Galaga_Menu
#----------------------------------------------------------------------------
#   This class displays and handles the galaga menu selection
#============================================================================
class Galaga_Menu < Sprite
  #==========================================================================
  # * Public Instance Variables
  #==========================================================================
  attr_reader     :index
  #==========================================================================
  # * Object Initialization
  #==========================================================================
  def initialize(viewport)
    super(viewport)
    self.bitmap = Bitmap.new(640, 480)
    @bit = RPG::Cache.picture('arrow_cursor')
    @index = 0
    refresh
  end # initialize
  #==========================================================================
  # * Refresh Contents
  #==========================================================================
  def refresh
    self.bitmap.clear
    # Draw Black Rectangle
    self.bitmap.fill_rect(64, 176, 512, 128, Color.new(0, 0, 0, 255))
    # Draw Title
    self.bitmap.font.size = 45
    self.bitmap.draw_text(0, 120, 640, 45, 'GALAGA', 1)
    self.bitmap.font.size = 24
    # Draw Options
    self.bitmap.draw_text(192, 192, 200, 32, 'Play Game')
    self.bitmap.draw_text(192, 224, 200, 32, 'High Scores')
    self.bitmap.draw_text(192, 256, 200, 32, 'Quit')
    # Draw Arrow
    self.bitmap.blt(176, @index * 32 + 202, @bit, Rect.new(0, 1, 11, 12))
  end # refresh
  #==========================================================================
  # * Update
  #==========================================================================
  def update
    # If Up Key is pressed
    if Input.trigger?(Input::UP)
      # Play cursor SE
      $game_system.se_play($data_system.cursor_se)
      # change index
      @index = (@index + 2) % 3
      # refresh contents
      refresh
    end # if
    # if Down Key is pressed
    if Input.trigger?(Input::DOWN)
      # Play cursor SE
      $game_system.se_play($data_system.cursor_se)
      # Change index
      @index = (@index + 1) % 3
      # refresh contents
      refresh
    end # if
  end # update
end # Galaga_Menu
#============================================================================
# ** Galaga_High_Scores
#----------------------------------------------------------------------------
#   This class handles displaying high scores
#============================================================================
class Galaga_High_Scores
end
#============================================================================
# ** Scene_Galaga
#----------------------------------------------------------------------------
#   This class handles the galaga mini-game itself and brings together all
#   the sprites
#============================================================================
class Scene_Galaga
  #--------------------------------------------------------------------------
  # * Game Constants
  #--------------------------------------------------------------------------
  MAX_PLAYER_LASERS = 5
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(lives=3)
    @lives = lives
    @pause = false
    @stage = -1
  end # initialize
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
    # Save current font
    default_f = Font.default_name
    default_s = Font.default_size
    $game_system.bgm_memorize
    Audio.bgm_play('Audio/BGM/' + Galaga::BGM)
    # Change font
    Font.default_name = 'Press Start K'
    Font.default_size = 16
    # Create game Objects
    @galaga_back = Galaga_Back.new
    @menu = Galaga_Menu.new(@galaga_back.viewport3)
    # Create Laser array
    @lasers = []
    # Create Enemy array
    @enemies = []
    # Execute Transition
    Graphics.transition
    # Main Loop
    loop do
      # Update Graphics
      Graphics.update
      # Update Input
      Input.update
      # Update
      update
      # If scene has changed
      if $scene != self
        break
      end # if
    end # loop
    # Dispose of objects
    if @lasers != nil
      @lasers.each {|laser| laser.dispose}
    end
    if @enemies != nil
      @enemies.each {|enemy| enemy.dispose}
    end
    $galaga_ship.dispose
    @galaga_hud.dispose
    @galaga_back.dispose
  end # main
  #--------------------------------------------------------------------------
  # * Update Frame
  #--------------------------------------------------------------------------
  def update
    # Check if menu is active
    if @menu != nil
      update_menu
      return
    end # if
    # Check if game is paused
    if @pause
      pause
      return
    end
    # Update Objects
    @lives = $galaga_ship.lives
    @galaga_back.update
    $galaga_ship.update
    @galaga_hud.refresh
    if @lives <= 0
      # game over
    end
   
    if @lasers != nil
      @lasers.each {|laser|
      unless laser.disposed?
        laser.update(@enemies)
        if laser.disposed?
          laser = nil
          @lasers.compact!
        end
      end
      }
    end
    if @enemies != nil
      @enemies.each {|enemy|
        unless enemy.disposed?
          if enemy.x / 32 == $galaga_ship.x / 32 &&
            enemy.y / 32 == $galaga_ship.y / 32
            unless $galaga_ship.invincible
              $galaga_ship.death_anim
              $galaga_ship.lives -= 1
            end
          end
          enemy.update
        else
          @enemies.delete(enemy)
        end
      }
    end
    if @enemies.size == 0
      @stage += 1
      add_enemies
      if @stage > 10
        @enemies.each {|enemy|
        enemy.speed -= 5
        if enemy.speed <= 0
          enemy.speed = 1
        end
        }
      end
    end
    # If C button is pressed, fire laser
    if Input.trigger?(Input::C) && !$galaga_ship.effect?
      player_fire_laser
    end # if
    # If B button is pressed, pause game
    if Input.trigger?(Input::B)
      @pause = true
    end # if
  end # update
  #--------------------------------------------------------------------------
  # * Add Enemies
  #--------------------------------------------------------------------------
  def add_enemies
    # Add 10 enemies at a time
    (0..9).each {|i|
      @enemies.push(Galaga_Alien.new(30 * i, 120, @stage % 10, i))
    }
  end
  #--------------------------------------------------------------------------
  # * Pause Game
  #--------------------------------------------------------------------------
  def pause
    # Play Pause sound effect
    Audio.se_play('Audio/SE/' + Galaga::PAUSE_SE)
    # Draw pause Screen
    pause = Sprite.new
    pause.bitmap = Bitmap.new(640, 480)
    pause.bitmap.fill_rect(160, 120, 320, 240, Color.new(0, 0, 0, 255))
    pause.bitmap.draw_text(160, 120, 320, 240, 'PAUSE', 1)
    # Pause loop
    loop do
      # update Graphics
      Graphics.update
      # update input
      Input.update
      # If B button is pressed
      if Input.trigger?(Input::B)
        # Play Pause sound effect
        Audio.se_play('Audio/SE/' + Galaga::PAUSE_SE)
        @pause = false
        pause.dispose
        break
      end # if
    end # loop
  end
  #--------------------------------------------------------------------------
  # * Update Menu
  #--------------------------------------------------------------------------
  def update_menu
    # menu loop
    loop do
      # Update Graphics
      Graphics.update
      # update Input
      Input.update
      # Update menu
      @menu.update
      # if C button is pressed
      if Input.trigger?(Input::C)
        # Play decision SE
        Audio.se_play('Audio/SE/' + Galaga::PAUSE_SE)
        case @menu.index
        when 0 # Play game
          # SetUp game objects
          $galaga_ship = Galaga_Ship.new(@lives, @galaga_back.viewport2)
          @galaga_hud = Galaga_Hud.new(@galaga_back.viewport3)
        when 1 # High Scores
          # Draw High Scores
        when 2 # Quit
          $scene = Scene_Map.new
        end
        # dispose menu
        @menu.dispose
        @menu = nil
        # break loop
        break
      end
    end
  end # update_menu
  #--------------------------------------------------------------------------
  # * Player Fire Laser
  #--------------------------------------------------------------------------
  def player_fire_laser
    # Add to shots fired
    $galaga_ship.shots_fired += 1
    Audio.se_play('Audio/SE/' + Galaga::LASER_SE)
    # Add laser to game
    @lasers.push(Galaga_Laser.new(@galaga_back.viewport1, -1, $galaga_ship.get_x,
                                  $galaga_ship.get_y))
  end # player_fire_laser
  #--------------------------------------------------------------------------
  # * Enemy Fire Laser
  #--------------------------------------------------------------------------
  def enemy_fire_laser(enemy)
    # Add laser to game
    Audio.se_play('Audio/SE/' + Galaga::LASER_SE)
    @lasers.push(Galaga_Laser.new(@galaga_back.viewport1, 1, enemy.x,
                                  enemy.y))
  end # player_fire_laser
end

qu'on appelle avec
Code: Tout sélectionner
$scene = Scene_Galaga.new
.
En bidouillant, je me suis aperçu que si entre les lignes 247 à 256 on recopiait ce qu'il y avait au dessus les vagues devenaient infinies, reste plus qu'à appuyer sur "esc" pour sortir. Plus concrètement ça donne ça :
Code: Tout sélectionner
when 2
      @timer -= 1 if @timer > 0
      if @start
        start_type_a
      elsif !@start && @timer == 0
        type_a_pattern
      end
    when 3
      @timer = 0
      if @start
        start_type_a
      else
        if rand(100) <= 25
          $scene.enemy_fire_laser(self)
        end
        @start_x += rand(200)
        @start_y += rand(200)
        if @start_x > 640
          @start_x = rand(50)
        end
        if @start_y > 480
          @start_y = rand(50)
        end
        @start = true
      end
    when 4
      @timer -= 1 if @timer > 0
      if @start
        start_type_a
      elsif !@start && @timer == 0
        type_a_pattern
      end
    when 5
      @timer = 0
      if @start
        start_type_a
      else
        if rand(100) <= 25
          $scene.enemy_fire_laser(self)
        end
        @start_x += rand(200)
        @start_y += rand(200)
        if @start_x > 640
          @start_x = rand(50)
        end
        if @start_y > 480
          @start_y = rand(50)
        end
        @start = true
      end
    when 6
      @timer -= 1 if @timer > 0
      if @start
        start_type_a
      elsif !@start && @timer == 0
        type_a_pattern
      end
    when 7
      @timer = 0
      if @start
        start_type_a
      else
        if rand(100) <= 25
          $scene.enemy_fire_laser(self)
        end
        @start_x += rand(200)
        @start_y += rand(200)
        if @start_x > 640
          @start_x = rand(50)
        end
        if @start_y > 480
          @start_y = rand(50)
        end
        @start = true
      end
    when 8
      @timer -= 1 if @timer > 0
      if @start
        start_type_a
      elsif !@start && @timer == 0
        type_a_pattern
      end
    when 9
      @timer = 0
      if @start
        start_type_a
      else
        if rand(100) <= 25
          $scene.enemy_fire_laser(self)
        end
        @start_x += rand(200)
        @start_y += rand(200)
        if @start_x > 640
          @start_x = rand(50)
        end
        if @start_y > 480
          @start_y = rand(50)
        end
        @start = true
      end
    when 10
      @timer -= 1 if @timer > 0
      if @start
        start_type_a
      elsif !@start && @timer == 0
        type_a_pattern
      end
      end
  end

Le problème reste toujours le même quand au fait de ne pas mourir, mais ça rallonge le plaisir de jeu. Alors si quelqu'un qui maitrise bien le Ruby pouvait l'améliorer, je suis sûr que ça intéresserait pas mal de monde, moi en premier, merci !


Haut
 Profil  
 
Afficher les messages depuis:  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 1 message ] 

Heures au format UTC + 1 heure [ Heure d’été ]


Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 2 invités


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Rechercher pour:
Sauter vers:  
cron
RPG Creative Forum version 5 ; Tous droits réservés
phpBB Group (Traduit par Xaphos)
Optimisé pour une résolution 1024*728