Soroshiya Modérateur
Nombre de messages : 124 Age : 32 Date d'inscription : 16/11/2007
Feuille personnelle PAs (Points d'Aide): (0/130) Permis à Points: (40/40)
| Sujet: Nouvel ecran title Sam 17 Nov - 5:29 | |
| Nom du script : Nouvel écran titreAuteur : Corbaque Fonction : Permet d'avoir un nouvel écran titre Image(s) : Ressource(s) : les images des choix, à mettre dans le dossier "picture" : Et puis un petit fond à mettre dans le dossier Titles : Remarque : Merci de présicer si le script est fonctionnel, et de mettre les script qui sont compatible avec ou non.Installation : Allez dans l'éditeur de script ( F11 ) et suivez les instructions ci-dessous .A mettre au dessus de main, nommez le " title_cosmo " - Code:
-
#============================================= # Script créé par Corbaque #--------------------------------------------- # Modification du menu titre, # Les mouvement circulaire sont réglés pour # Trois Eléments, ci vous en voulez plus, # Contactez moi : [url=http://snakerpgmxp.free.fr]http://snakerpgmxp.free.fr[/url] # Ce script peu circuler librement sur le web # Tant que je (Corbaque) suis cité. #============================================= # ¤ Définition du nom de la scène class Scene_Title # * à l'initialisation def initialize # - définition de variables locale : # Sprites (images) @a = Choix_1.new @a.x = -200 @b = Choix_2.new @b.x = -200 @c = Choix_3.new @c.x = -200 @a.opacity = 200 @t = Titre.new @t.x = 220 @t.y = 190 @t.opacity = 200 # chaine de caractères @dir = nil # numérique @i = 0 $index = 0 @memory = 0 @premier = 0 # switch @continuer = false # fin de la fonction end # à l'appelle du script def main # Appelle la fonction battle_test lors du test du combat if $BTEST battle_test return end # chargement des données du jeu $data_actors = load_data("Data/Actors.rxdata") $data_classes = load_data("Data/Classes.rxdata") $data_skills = load_data("Data/Skills.rxdata") $data_items = load_data("Data/Items.rxdata") $data_weapons = load_data("Data/Weapons.rxdata") $data_armors = load_data("Data/Armors.rxdata") $data_enemies = load_data("Data/Enemies.rxdata") $data_troops = load_data("Data/Troops.rxdata") $data_states = load_data("Data/States.rxdata") $data_animations = load_data("Data/Animations.rxdata") $data_tilesets = load_data("Data/Tilesets.rxdata") $data_common_events = load_data("Data/CommonEvents.rxdata") $data_system = load_data("Data/System.rxdata") # défintion de $game_system, l'élément de controle principale du jeu $game_system = Game_System.new # définition du fond @fond = Sprite.new @fond.bitmap = RPG::Cache.title("fond") @fond.zoom_x = 2.5 @fond.zoom_y = 2.5 @fondarr = Sprite.new @fondarr.bitmap = RPG::Cache.title("fond") @fondarr.zoom_x = 2.5 @fondarr.zoom_y = 2.5 # place le fond arrière derrière les autres images @fondarr.z = -5 # Jouer une musique $game_system.bgm_play($data_system.title_bgm) # en 4 fois, chercher si le fichier Save(id).rxdata # existe, i auguemente à chaque fois for i in 0..3 if FileTest.exist?("Save#{i+1}.rxdata") @continuer = true end end # Fondu de 40 frames (deux secondes) Graphics.transition(40) # Tant que $scene est égale à cette scene while $scene == self # Mise à jour graphique Graphics.update # Mise à jour de l'appui sur bouton Input.update # Appelle la fonction update update # Fin de la boucle (tant que) end # Arrêt de la mise à jour graphique Graphics.freeze # supression des sprites @a.dispose @b.dispose @c.dispose @t.dispose @fond.dispose @fondarr # fin de la fonction end # définition de la fonction update def update # effet sur le fond, facultatif if @premier != 50 @fond.z = 100 @fond.zoom_x -= 0.025 @fond.zoom_y -= 0.025 @fondarr.zoom_x -= 0.025 @fondarr.zoom_y -= 0.025 @premier += 1 else @fond.opacity -= 5 end # Mise à jour des sprites @a.update @b.update @c.update @t.update @fond.update # Conditions sur le déplacement des fenêtres if Input.trigger?(Input::RIGHT) and @memory == 0 @memory = @i $game_system.se_play($data_system.cursor_se) $index -= 1 if $index < 0 $index = 2 # 2 => nombre de choix - 1 end @dir = "right" elsif Input.trigger?(Input::LEFT) and @memory == 0 @memory = @i $game_system.se_play($data_system.cursor_se) $index += 1 $index %= 3 # 3 => # nombre de choix @dir = "left" elsif @i >= @memory + 30 and @dir == "right"# 30 => nombre de point par mouvement @memory = 0 @dir = nil elsif @i <= @memory - 30 and @dir == "left" # 30 => nombre de point par mouvement @memory = 0 @dir = nil elsif @dir == "left" @i -= 1 elsif @dir == "right" @i += 1 # fin des conditions end =begin Déplacement des fenêtre en cercle celon l'index (@i) traduction : Position x de la fenêtre est égale à : rayon du cercle multiplié par le cosinus du produit de l'index par PI divisé par 45 le tout adittionner au centre du cercle cette methode peu sembler un peu barbare, mais pour construire un cercle ou faire un mouvement circulaire en radian, le calcule ce fait ainsi : Un nombre multiplié par le double de PI divisé par le nombre de fraction du cercle, c'est pourquoi le nombre de fractions du cercle est divisée par deux (simplification) le point seras déplacé sur le cercle celon l'index pour les coordonées y, c'est le même systême, mise à part que le cosinus est remplacé par un sinus. =end @a.x = 200 * Math.cos(@i * Math::PI / 45) + 270 @a.y = 100 * Math.sin(@i * Math::PI / 45) + 190 @b.x = 200 * Math.cos((@i + 30) * Math::PI / 45) + 270 @b.y = 100 * Math.sin((@i + 30) * Math::PI / 45) + 190 @c.x = 200 * Math.cos((@i + 60) * Math::PI / 45) + 270 @c.y = 100 * Math.sin((@i + 60) * Math::PI / 45) + 190 # Conditions servant à modifier l'opacitée des fenêtres celon # Leur position x if @a.x <= 370 @a.opacity -= 5 elsif @a.x >= 220 and @a.opacity <= 200 @a.opacity += 5 end if @b.x <= 370 @b.opacity -= 5 elsif @b.x >= 220 and @b.opacity <= 200 @b.opacity += 5 end if @c.x <= 370 @c.opacity -= 5 elsif @c.x >= 220 and @c.opacity <= 200 @c.opacity += 5 end # Si la touche Action/selection est appuyée if Input.trigger?(Input::C) # dans la variable @index case $index # Quand elle est égale à 0 when 0 # Lancer le jeu Audio.me_play("Audio/ME/015-Mystery01", 80, 50) until @a.zoom_x >= 7 # petit effet sympas ^^ Graphics.update @a.update @a.x -= 2 @a.y -= 2 @a.zoom_x += 0.04 @a.zoom_y += 0.04 @a.opacity -= 2 end go when 1 # Chargement d'une partie if @continuer == true $game_system.se_play($data_system.buzzer_se) return else Audio.me_play("Audio/ME/015-Mystery01", 80, 50) until @b.zoom_x >= 7 # petit effet sympas ^^ Graphics.update @b.update @b.x -= 2 @b.y -= 2 @b.zoom_x += 0.04 @b.zoom_y += 0.04 @b.opacity -= 2 end $scene = Scene_Load.new end when 2 # Quitter $game_system.se_play($data_system.decision_se) Audio.bgm_fade(800) Audio.bgs_fade(800) Audio.me_fade(800) $scene = nil # fin de la case end # fin de la condition end # fin de la fonction end # définition de la fonction go def go # ensemble de définition de variables et d'appels servant à lancer le jeu Audio.bgm_stop Graphics.frame_count = 0 $game_screen = Game_Screen.new $game_temp = Game_Temp.new $game_system = Game_System.new $game_switches = Game_Switches.new $game_variables = Game_Variables.new $game_self_switches = Game_SelfSwitches.new $game_actors = Game_Actors.new $game_party = Game_Party.new $game_troop = Game_Troop.new $game_map = Game_Map.new $game_player = Game_Player.new $game_party.setup_starting_members $game_map.setup($data_system.start_map_id) $game_player.moveto($data_system.start_x, $data_system.start_y) $game_player.refresh $game_map.autoplay $game_map.update $scene = Scene_Map.new end # définition de la fonction battle_test def battle_test # ensemble de définition de variables et d'appels servant à tester un combat $data_actors = load_data("Data/BT_Actors.rxdata") $data_classes = load_data("Data/BT_Classes.rxdata") $data_skills = load_data("Data/BT_Skills.rxdata") $data_items = load_data("Data/BT_Items.rxdata") $data_weapons = load_data("Data/BT_Weapons.rxdata") $data_armors = load_data("Data/BT_Armors.rxdata") $data_enemies = load_data("Data/BT_Enemies.rxdata") $data_troops = load_data("Data/BT_Troops.rxdata") $data_states = load_data("Data/BT_States.rxdata") $data_animations = load_data("Data/BT_Animations.rxdata") $data_tilesets = load_data("Data/BT_Tilesets.rxdata") $data_common_events = load_data("Data/BT_CommonEvents.rxdata") $data_system = load_data("Data/BT_System.rxdata") Graphics.frame_count = 0 $game_temp = Game_Temp.new $game_system = Game_System.new $game_switches = Game_Switches.new $game_variables = Game_Variables.new $game_self_switches = Game_SelfSwitches.new $game_screen = Game_Screen.new $game_actors = Game_Actors.new $game_party = Game_Party.new $game_troop = Game_Troop.new $game_map = Game_Map.new $game_player = Game_Player.new $game_party.setup_battle_test_members $game_temp.battle_troop_id = $data_system.test_troop_id $game_temp.battle_can_escape = true $game_map.battleback_name = $data_system.battleback_name $game_system.se_play($data_system.battle_start_se) $game_system.bgm_play($game_system.battle_bgm) $scene = Scene_Battle.new end # fin du script end #===================================================== # Les quatres scripts suivant ont étés à la base créés # par Corbaque #----------------------------------------------------- # La plupart des données sont modifiable, certain # problême peuvent être décelés, rien de bien méchant, # mais le principale est de savoir personnalisé son # sprite (expliqué aprés les sprites) #===================================================== #<><><><><><><><><><><><><><><><> # Sprite affichant le nom du jeu #<><><><><><><><><><><><><><><><> class Titre < Sprite def initialize() super() self.bitmap = Bitmap.new(200, 200) self.bitmap.font.name = "Gessele" # Police de caractère différente self.bitmap.font.italic = true # Police en Italique end def update # supprime le contenu du sprite (pour mettre à jour) self.bitmap.clear # défini la couleur du texte self.bitmap.font.color = Color.new(0, 200, 250, 255) # défini la taille du texte self.bitmap.font.size = 50 # défini le texte self.bitmap.draw_text(4, -44, 200, 200, "Titre du Jeu") # défini la couleur du texte self.bitmap.font.color = Color.new(0, 0, 250, 100) # défini la taille du texte self.bitmap.font.size = 50 # défini le texte self.bitmap.draw_text(3, -43, 200, 200, "Titre du Jeu") # affiche des lignes self.bitmap.fill_rect(4, 65, 180, 1, Color.new(0, 200, 250, 50)) self.bitmap.fill_rect(4, 66, 180, 1, Color.new(0, 200, 250, 100)) self.bitmap.fill_rect(4, 67, 180, 1, Color.new(0, 200, 250, 150)) self.bitmap.fill_rect(4, 68, 180, 1, Color.new(0, 200, 250, 100)) self.bitmap.fill_rect(4, 69, 180, 1, Color.new(0, 200, 250, 50)) end end #<><><><><><><><><><><><><><><><> # Sprites affichant les choix #<><><><><><><><><><><><><><><><> # - Nouvelle partie class Choix_1 < Sprite def initialize() super() self.bitmap = RPG::Cache.picture("1") # "1" est le nom de l'image end end # - Chargement class Choix_2 < Sprite def initialize() super() self.bitmap = RPG::Cache.picture("2") end end # - Quitter class Choix_3 < Sprite def initialize() super() self.bitmap = RPG::Cache.picture("3") end end # /!\ Personnaliser son sprite /!\ =begin Modifier ses position X et Y est inutile, puisque la scene les modifient en permanence (mouvements) de même pour l'opacitée par contre, l'angle, le blend_type, le ton... voici un simple extrait de la doc d'rpgmakerXP traduite en français pourquoi refaire ce qui existe (le tout à été adapté au contexte)! Citation : - self.z La coordonnée Z du sprite. Plus cette valeur est élevé, plus le sprite sera affiché près du joueur. Si plusieurs objets partage la même valeur Z, l'objet crée le plus récemment sera le plus près du joueur. - self.ox L'abscisse du point de départ du sprite. - self.oy L'abscisse du point départ du sprite. - self.zoom_x Le niveau de Zoom horizontal. 1.0 dénote la taille normal de pixel. - self.zoom_y Le niveau de Zoom vertical. 1.0 dénote la taille normal de pixel. - self.angle L'angle de rotation du sprite. Spécifies plus de 360 degrés pour une rotation en sens anti-horaire. Cependant, dessiner un sprite tournant prend des ressources, donc éviter les abus. - self.mirror Drapeau démontrant que le sprite est retourné horizontalement. Si TRUE(vrai), le sprite sera dessiné retourné. - self.bush_depth La profondeur de camouflage pour ce sprite. C'est une valeur de pixel indiquant combien la partie basse du sprite sera affichée comme semi-transaparente. - self.blend_type La mode de transparence du sprite(0: normal, 1: addition, 2: soustraction). - self.color La couleur (Color.new(rouge, vert, bleu, alpha/opacitée) à être mélangée avec le sprite pour la transparence. Les valeurs Alpha sont utilisées pour le taux de mélange. - self.tone Le ton de couleur du sprite (Tone.new(rouge, vert, bleu, [gris])). end
| |
|