Jump to content
Rpg²S Forum
  • 0

Script Carro Armato


Hurricane
 Share

Question

#================================
# ■ Carro Armato
#================================
# By: Hurricane
# Date: 10.09.08
#================================
# Implementazione di un veicolo generico utilizzato 
# come superclasse per tutti gli altri veicoli.
class Veicoli 
 # quantità di carburante nel veicolo
attr_reader:carburante
 # crea un nuovo veicolo con una determinata
 # quantità di carburante
def initialize(carburante)
$carburante = 100
end
# rifornisce il veicolo di carburante
def rifornimento(quantita)
$carburante += quantita
end
end
# Implementazione di un carro armato, 
# ha come superclasse Veicolo.
class Carro_Armato < Veicoli
 # numero di munizioni presenti
 attr_reader :munizioni  
# crea un nuovo carro armato con una data quantità
# di carburante e di colpi
 def initialize(munizioni,carburante)
 super (carburante)
 $munizioni = 10
 end 
 def rifornimento(quantita)
  if (@carburante + quantita) > CAPACITA
  quantita = CAPACITA - @carburante
  else
@carburante += quantita
puts "Carburante erogato:#{quantita}"
puts "Carburante totale:#{carburante}"
end
 end
end

class Window_Carro < Window_Base
 def initialize
super(0, 0, 160, 64)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
 end
 def refresh
self.contents.clear
  cx = contents.text_size("Munizioni").width
  self.contents.font.color = normal_color
self.contents.draw_text(4, 0, 120-cx-2, 32, $munizioni.to_s, 2)
self.contents.font.color = system_color
self.contents.draw_text(124-cx, 0, cx, 32, $carburante.to_s, 2)
 end
 end

#==============================================================================
# ** Scene_Map
#------------------------------------------------------------------------------
#  This class performs map screen processing.
#==============================================================================

class Scene_Map
 #--------------------------------------------------------------------------
 # * Main Processing
 #--------------------------------------------------------------------------
 def main
# Make sprite set
@spriteset = Spriteset_Map.new
# Make message window
@message_window = Window_Message.new
@carro = Window_Carro.new
# Transition run
Graphics.transition
# Main loop
loop do
  # Update game screen
  Graphics.update
  # Update input information
  Input.update
  # Frame update
  update
  # Abort loop if screen is changed
  if $scene != self
	break
  end
end
# Prepare for transition
Graphics.freeze
# Dispose of sprite set
@spriteset.dispose
# Dispose of message window
@message_window.dispose
@carro.dispose
# If switching to title screen
if $scene.is_a?(Scene_Title)
  # Fade out screen
  Graphics.transition
  Graphics.freeze
end
 end
 #--------------------------------------------------------------------------
 # * Frame Update
 #--------------------------------------------------------------------------
 def update
# Loop
loop do
  # Update map, interpreter, and player order
  # (this update order is important for when conditions are fulfilled 
  # to run any event, and the player isn't provided the opportunity to
  # move in an instant)
  $game_map.update
  $game_system.map_interpreter.update
  $game_player.update
  $munizioni.update
  $carburante.update
  # Update system (timer), screen
  $game_system.update
  $game_screen.update
# Abort loop if player isn't place moving
  unless $game_temp.player_transferring
	break
  end
  # Run place move
  transfer_player
  # Abort loop if transition processing
  if $game_temp.transition_processing
	break
  end
end
# Update sprite set
@spriteset.update
# Update message window
@message_window.update
# If game over
if $game_temp.gameover
  # Switch to game over screen
  $scene = Scene_Gameover.new
  return
end
# If returning to title screen
if $game_temp.to_title
  # Change to title screen
  $scene = Scene_Title.new
  return
end
# If transition processing
if $game_temp.transition_processing
  # Clear transition processing flag
  $game_temp.transition_processing = false
  # Execute transition
  if $game_temp.transition_name == ""
	Graphics.transition(20)
  else
	Graphics.transition(40, "Graphics/Transitions/" +
	  $game_temp.transition_name)
  end
end
# If showing message window
if $game_temp.message_window_showing
  return
end
# If encounter list isn't empty, and encounter count is 0
if $game_player.encounter_count == 0 and $game_map.encounter_list != []
  # If event is running or encounter is not forbidden
  unless $game_system.map_interpreter.running? or
		 $game_system.encounter_disabled
	# Confirm troop
	n = rand($game_map.encounter_list.size)
	troop_id = $game_map.encounter_list[n]
	# If troop is valid
	if $data_troops[troop_id] != nil
	  # Set battle calling flag
	  $game_temp.battle_calling = true
	  $game_temp.battle_troop_id = troop_id
	  $game_temp.battle_can_escape = true
	  $game_temp.battle_can_lose = false
	  $game_temp.battle_proc = nil
	end
  end
end
# If B button was pressed
if Input.trigger?(Input::B)
  # If event is running, or menu is not forbidden
  unless $game_system.map_interpreter.running? or
		 $game_system.menu_disabled
	# Set menu calling flag or beep flag
	$game_temp.menu_calling = true
	$game_temp.menu_beep = true
  end
end
# If debug mode is ON and F9 key was pressed
if $DEBUG and Input.press?(Input::F9)
  # Set debug calling flag
  $game_temp.debug_calling = true
end
# If player is not moving
unless $game_player.moving?
  # Run calling of each screen
  if $game_temp.battle_calling
	call_battle
  elsif $game_temp.shop_calling
	call_shop
  elsif $game_temp.name_calling
	call_name
  elsif $game_temp.menu_calling
	call_menu
  elsif $game_temp.save_calling
	call_save
  elsif $game_temp.debug_calling
	call_debug
  end
end
 end
 #--------------------------------------------------------------------------
 # * Battle Call
 #--------------------------------------------------------------------------
 def call_battle
# Clear battle calling flag
$game_temp.battle_calling = false
# Clear menu calling flag
$game_temp.menu_calling = false
$game_temp.menu_beep = false
# Make encounter count
$game_player.make_encounter_count
# Memorize map BGM and stop BGM
$game_temp.map_bgm = $game_system.playing_bgm
$game_system.bgm_stop
# Play battle start SE
$game_system.se_play($data_system.battle_start_se)
# Play battle BGM
$game_system.bgm_play($game_system.battle_bgm)
# Straighten player position
$game_player.straighten
# Switch to battle screen
$scene = Scene_Battle.new
 end
 #--------------------------------------------------------------------------
 # * Shop Call
 #--------------------------------------------------------------------------
 def call_shop
# Clear shop call flag
$game_temp.shop_calling = false
# Straighten player position
$game_player.straighten
# Switch to shop screen
$scene = Scene_Shop.new
 end
 #--------------------------------------------------------------------------
 # * Name Input Call
 #--------------------------------------------------------------------------
 def call_name
# Clear name input call flag
$game_temp.name_calling = false
# Straighten player position
$game_player.straighten
# Switch to name input screen
$scene = Scene_Name.new
 end
 #--------------------------------------------------------------------------
 # * Menu Call
 #--------------------------------------------------------------------------
 def call_menu
# Clear menu call flag
$game_temp.menu_calling = false
# If menu beep flag is set
if $game_temp.menu_beep
  # Play decision SE
  $game_system.se_play($data_system.decision_se)
  # Clear menu beep flag
  $game_temp.menu_beep = false
end
# Straighten player position
$game_player.straighten
# Switch to menu screen
$scene = Scene_Menu.new
 end
 #--------------------------------------------------------------------------
 # * Save Call
 #--------------------------------------------------------------------------
 def call_save
# Straighten player position
$game_player.straighten
# Switch to save screen
$scene = Scene_Save.new
 end
 #--------------------------------------------------------------------------
 # * Debug Call
 #--------------------------------------------------------------------------
 def call_debug
# Clear debug call flag
$game_temp.debug_calling = false
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Straighten player position
$game_player.straighten
# Switch to debug screen
$scene = Scene_Debug.new
 end
 #--------------------------------------------------------------------------
 # * Player Place Move
 #--------------------------------------------------------------------------
 def transfer_player
# Clear player place move call flag
$game_temp.player_transferring = false
# If move destination is different than current map
if $game_map.map_id != $game_temp.player_new_map_id
  # Set up a new map
  $game_map.setup($game_temp.player_new_map_id)
end
# Set up player position
$game_player.moveto($game_temp.player_new_x, $game_temp.player_new_y)
# Set player direction
case $game_temp.player_new_direction
when 2  # down
  $game_player.turn_down
when 4  # left
  $game_player.turn_left
when 6  # right
  $game_player.turn_right
when 8  # up
  $game_player.turn_up
end
# Straighten player position
$game_player.straighten
# Update map (run parallel process event)
$game_map.update
# Remake sprite set
@spriteset.dispose
@spriteset = Spriteset_Map.new
# If processing transition
if $game_temp.transition_processing
  # Clear transition processing flag
  $game_temp.transition_processing = false
  # Execute transition
  Graphics.transition(20)
end
# Run automatic change for BGM and BGS set on the map
$game_map.autoplay
# Frame reset
Graphics.frame_reset
# Update input information
Input.update
 end
end

 

 

 

Ho messo sulla mappa l'evento x far partire il tutto

e un ciclo che fa scendere il carburante ogni 10 frames così: $carburante -= 1

 

ma la finestra nn si aggiorna.... aiuti???

 

grazie

Edited by Hurricane

http://www.webgif.org/gif_animate/animali/insetti/immagini/10.gif

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Allora leggendo così ti direi di aggiungere subito dopo la riga di codice def update della classe Scnene_Map questa riga di codice:

 

@carro.refresh

 

dimmi se cambia qualcosa..

 

PS: cmq il codice l'ho solo letto quindi sto andando a intuito.

"A tre settimane da oggi io mieterò il mio raccolto, immaginate dove vorrete essere perchè così sarà. Serrate i ranghi! Seguitemi! E se vi ritroverete soli a cavalcare su verdi praterie col sole sulla faccia non preoccupatevi troppo perchè sarete nei campi elisi e sarete già morti! Fratelli, ciò che facciamo in vita riecheggia nell'eternità!"

 

"C'era un sogno che era roma sarà realizzato. Questo era il desiderio di Marco Aurelio!"

Link to comment
Share on other sites

  • 0
nn va

 

allora lo metto su un progetto nuovo e vedo cosa può essere.

"A tre settimane da oggi io mieterò il mio raccolto, immaginate dove vorrete essere perchè così sarà. Serrate i ranghi! Seguitemi! E se vi ritroverete soli a cavalcare su verdi praterie col sole sulla faccia non preoccupatevi troppo perchè sarete nei campi elisi e sarete già morti! Fratelli, ciò che facciamo in vita riecheggia nell'eternità!"

 

"C'era un sogno che era roma sarà realizzato. Questo era il desiderio di Marco Aurelio!"

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...