FAQRechercherPortailAccueilAccueilForumPraline au mielS'enregistrerConnexionMembres


Partagez
 

 Space invaders

Aller en bas 
AuteurMessage
chaipokoi

chaipokoi

Messages : 438


Space invaders Empty
MessageSujet: Space invaders   Space invaders Icon_minitimeSam 1 Jan - 14:22

Après une longue absence sur rpg maker detente, je reviens avec un script de space invaders ^^.
petit apercu:
"haha!":
 

les ressource sont ici
(dezzipez le fichier et placez le dans le dossier Graphics de votre jeu.)


IMPORTANT !!!!!!!
VEUILLEZ PLACER LES DIFFERENTES CLASS DANS DES SCRIPTS DIFFERENTS.
SI POSSIBLE AVANT LA CLASS SCENE_GAME;
Code:

=begin
================================================================================
■ Scene_game
par chaipokoi
--------------------------------------------------------------------------------
le script qui suit vous permet d'inserrer un space invaders a votre programme 
rpg maker xp.
toutes les ressources neccessaire sont a plcer dans le dossier picture des
ressources graphiques de votre jeu.
Lisez tout les script, je vous indique quels sont les lignes a modifier sans
risque pour personnaliser votre space invader.
pour le moment le script ne propose que 2 bonus, mais je vais bientot en creer
d'autres.
Pour tout probleme, klio17@live.fr
================================================================================
=end

class Scene_Game
 def main
@fond=Sprite.new
#-------------------------------------------------------------------------------
#vous poubez modifier l'image de fond du space invader en modifier le mot entre
#guillement ci-dessous
@fond.bitmap=RPG::Cache.picture("fond")
#-------------------------------------------------------------------------------
$gold=0
@rand_bonus=0
@vie=3
@taille_tir=50
@barre_vie=Barre_vie.new
@move_droite=0
@move_gauche=0
@move_tir=0
@move_bonus_3_tir=0
@move_bonus_reparation=0
@bonus_3_tir=Bonus.new("3_tir")
@bonus_reparation=Bonus.new("reparation")
@rand_tir_ennemy_1=2
@rand_tir_ennemy_2=2
@move_tir_ennemy_1=0
@move_tir_ennemy_2=0
@rand_repos=2
@barre=Barre.new
@tir_ennemy_1=Missile.new("ennemy",4)
@tir_ennemy_1.x=-50
@tir_ennemy_2=Missile.new("ennemy",4)
@tir_ennemy_2.x=0
@tir_ennemy_2.y=-50
@move_tir_ennemy_2=0
#-------------------------------------------------------------------------------
#vous pouvez modifier l'image du vaisseau du joueur en modifiant la ligne ci-des
#sous.
#IMPORTANT!!!!!!!!!!!!!!
#LE NOM DE VOTRE IMAGE REPRESENTANT LE VAISSEAU DU JOUEUR DOIT TOUJOURS COMMENCER
#PAR "vaisseau_".
@vaisseau=Vaisseau.new("gris",2)
#-------------------------------------------------------------------------------
@gold=Window_point.new
#-------------------------------------------------------------------------------
#vous pouvez modifier l'image du tir du joueur en modifiant la ligne ci-des
#sous.
#IMPORTANT!!!!!!!!!!!!!!
#LE NOM DE VOTRE IMAGE REPRESENTANT LE TIR DU JOUEUR DOIT TOUJOURS COMMENCER
#PAR "tir_".
@tir_allie=Missile.new("allie",4)
#-------------------------------------------------------------------------------
@tir_allie.x=-50
#-------------------------------------------------------------------------------
#vous pouvez modifier les images des 4 ennemis en modifiant les lignes ci-des
#sous.
#IMPORTANT!!!!!!!!!!!!!!
#POUR L'ANNIMATION, VOUS DEVEZ DESSINER 3 POSTURES PAR ENNEMIS.
#TOUTES LES POSTURES DOIVENT CE TERMINER PAR "_ext","_nor","_int".
#ici si vos image se nomment "truc_ext","truc_nor" et "truc_int", vous ne devez ecrire
#que "truc" sur les lignes qui suivent.
@ennemy_1=Ennemy.new("crane",1)
@ennemy_2=Ennemy.new("tama1",3)
@ennemy_3=Ennemy.new("tama2",2)
@ennemy_4=Ennemy.new("tama2",2)
#-------------------------------------------------------------------------------
Graphics.transition 
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@ennemy_1.dispose
@ennemy_2.dispose
@ennemy_3.dispose
@ennemy_4.dispose
@vaisseau.dispose
@barre.dispose
@gold.dispose
@barre_vie.dispose
  end

def update
#tir des ennemis
if @move_tir_ennemy_1==0
@rand_tir_ennemy_1=rand(41)
if @rand_tir_ennemy_1==0
@move_tir_ennemy_1=1
@tir_ennemy_1.y=@ennemy_3.y
@tir_ennemy_1.x=@ennemy_3.x
end
end
if @move_tir_ennemy_1==1
@tir_ennemy_1.tir_ennemy
if @tir_ennemy_1.y>480
@tir_ennemy_1.y=-50
@move_tir_ennemy_1=0
end
end

if @move_tir_ennemy_2==0
@rand_tir_ennemy_2=rand(41)
if @rand_tir_ennemy_2==0
@move_tir_ennemy_2=1
@tir_ennemy_2.y=@ennemy_4.y
@tir_ennemy_2.x=@ennemy_4.x
end
end
if @move_tir_ennemy_2==1
@tir_ennemy_2.tir_ennemy
if @tir_ennemy_2.y>480
@tir_ennemy_2.y=-50
@move_tir_ennemy_2=0
end
end
#déplacement des bonus
if @move_bonus_3_tir==1
@bonus_3_tir.move 
if @bonus_3_tir.y>480
@move_bonus_3_tir=0
end
end 
if @move_bonus_reparation==1
@bonus_reparation.move 
if @bonus_reparation.y>480
@move_bonus_reparation=0
end
end 
 
 
@gold.refresh
 # Animation du Sprite
@ennemy_1.update
@ennemy_2.update
@ennemy_3.update
@ennemy_4.update
 # Déplacement du Sprite
@ennemy_1.move
@ennemy_2.move
@ennemy_3.move
@ennemy_4.move
@barre.move
@barre_vie.refresh(@vie)

#_____________________________________________________________________________________
#déplacement du vaisseau
if Input.trigger?(Input::C)
@move_tir=1
end
if Input.trigger?(Input::RIGHT)
@move_gauche=0
@move_droite=1
end
if Input.trigger?(Input::LEFT)
@move_droite=0
@move_gauche=1
end
if @move_droite==1
@vaisseau.droite
end
if @move_gauche==1
@vaisseau.gauche
end
if @move_tir==1
if @taille_tir==50
@tir_allie.tir(@vaisseau.x)
end
if @taille_tir==200
@tir_allie.tir(@vaisseau.x-80)
end
if @tir_allie.y<-50
@tir_allie.y=480-60
@tir_allie.x=-200
@move_tir=0
end
end
#_______________________________________________________________________________
superposition
end

#-------------------------------------------------------------------------------
#gestion de la superposition lors de l'appartition des ennemis
def superposition
if @ennemy_1.x>=@ennemy_2.x and @ennemy_1.x<=@ennemy_2.x+50
@ennemy_1.y-=1
@ennemy_2.x+=10
end
if @ennemy_2.x>=@ennemy_3.x and @ennemy_2.x<=@ennemy_3.x+50
@ennemy_2.y-=3
@ennemy_3.x-=5
end
if @ennemy_3.x>=@ennemy_4.x and @ennemy_3.x<=@ennemy_4.x+50
@ennemy_3.y-=2
@ennemy_4.x+=5
end
if @ennemy_1.x>=@ennemy_3.x and @ennemy_1.x<=@ennemy_3.x+50
@ennemy_1.y-=1
@ennemy_3.x-=5
end
if @ennemy_1.x>=@ennemy_4.x and @ennemy_1.x<=@ennemy_4.x+50
@ennemy_1.y-=1
@ennemy_4.x+=5
end
if @ennemy_2.x>=@ennemy_4.x and @ennemy_2.x<=@ennemy_4.x+50
@ennemy_2.y-=3
@ennemy_4.x-=5
end
if @ennemy_2.x>=@ennemy_1.x and @ennemy_2.x<=@ennemy_1.x+50
@ennemy_2.y-=3
@ennemy_1.x-=5
end
if @ennemy_3.x>=@ennemy_2.x and @ennemy_3.x<=@ennemy_2.x+50
@ennemy_3.y-=2
@ennemy_2.x+=5
end
if @ennemy_4.x>=@ennemy_3.x and @ennemy_4.x<=@ennemy_3.x+50
@ennemy_4.y-=2
@ennemy_3.x-=5
end
if @ennemy_3.x>=@ennemy_1.x and @ennemy_3.x<=@ennemy_1.x+50
@ennemy_3.y-=2
@ennemy_1.x+=5
end
if @ennemy_4.x>=@ennemy_1.x and @ennemy_4.x<=@ennemy_1.x+50
@ennemy_4.y-=2
@ennemy_1.x-=5
end
if @ennemy_4.x>=@ennemy_2.x and @ennemy_4.x<=@ennemy_2.x+50
@ennemy_4.y-=2
@ennemy_2.x+=5
end
collision
end
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
#gestion des collisions
def collision
 
#_______________________________________________________________________________
#entre le joueur et les ennemis
if @ennemy_1.y>=480-90 and @ennemy_1.x>=@vaisseau.x-30 and @ennemy_1.x<=@vaisseau.x+90
@vie=@vie-1
replace
end
if @ennemy_2.y>=480-90 and @ennemy_2.x>=@vaisseau.x-30 and @ennemy_2.x<=@vaisseau.x+90
@vie=@vie-1
replace
end 
if @ennemy_3.y>=480-90 and @ennemy_3.x>=@vaisseau.x-30 and @ennemy_3.x<=@vaisseau.x+90
@vie=@vie-1
replace
end
if @ennemy_4.y>=480-90 and @ennemy_4.x>=@vaisseau.x-30 and @ennemy_4.x<=@vaisseau.x+90
@vie=@vie-1
replace
end 
#_______________________________________________________________________________
#entre le tir allie et les ennemis
if @tir_allie.y<=@ennemy_1.y+50 and @tir_allie.x>=@ennemy_1.x-@taille_tir/2-10 and @tir_allie.x<=@ennemy_1.x+@taille_tir+10
bonus(@ennemy_1.x,@ennemy_1.y)
$gold=$gold+10
@ennemy_1.y=-50
@ennemy_1.x = rand(640-50).succ
end
if @tir_allie.y<=@ennemy_2.y+50 and @tir_allie.x>=@ennemy_2.x-@taille_tir/2-10 and @tir_allie.x<=@ennemy_2.x+@taille_tir+10
bonus(@ennemy_2.x,@ennemy_2.y)
$gold=$gold+10
@ennemy_2.y=-50
@ennemy_2.x = rand(640-50).succ
end
if @tir_allie.y<=@ennemy_3.y+50 and @tir_allie.x>=@ennemy_3.x-@taille_tir/2-20 and @tir_allie.x<=@ennemy_3.x+@taille_tir+10
bonus(@ennemy_3.x,@ennemy_3.y)
$gold=$gold+10
@ennemy_3.y=-50
@ennemy_3.x = rand(640-50).succ
@tir_ennemy_1.y=-50
@move_tir_ennemy_1=0
end
if @tir_allie.y<=@ennemy_4.y+50 and @tir_allie.x>=@ennemy_4.x-@taille_tir/2-20 and @tir_allie.x<=@ennemy_4.x+@taille_tir+10
bonus(@ennemy_4.x,@ennemy_4.y)
$gold=$gold+10
@ennemy_4.y=-50
@ennemy_4.x = rand(640-50).succ
@tir_ennemy_2.y=-50
@move_tir_ennemy_2=0
end
#_______________________________________________________________________________
#entre le tir ennemie et le joueur
if @tir_ennemy_1.y>=480-50 and @tir_ennemy_1.x>=@vaisseau.x-10 and @tir_ennemy_1.x<=@vaisseau.x+60
@vie=@vie-1
replace
@tir_ennemy_1.y=-50
@move_tir_ennemy_1=0
end
if @tir_ennemy_2.y>=480-50 and @tir_ennemy_2.x>=@vaisseau.x-10 and @tir_ennemy_2.x<=@vaisseau.x+60
@vie=@vie-1
replace
@tir_ennemy_2.y=-50
@move_tir_ennemy_2=0
end
#_______________________________________________________________________________
#entre le joueur et les bonus
#bonus_3_tir
if @bonus_3_tir.y>=480-50 and @bonus_3_tir.x>=@vaisseau.x-10 and @bonus_3_tir.x<=@vaisseau.x+60
@taille_tir=200
@tir_allie.bitmap= RPG::Cache.picture("tir_allie_grand")
@move_bonus_3_tir=0
@bonus_3_tir.y=-50
end
if @bonus_reparation.y>=480-50 and @bonus_reparation.x>=@vaisseau.x-10 and @bonus_reparation.x<=@vaisseau.x+60
@vie+=1
if @vie>3
@vie=3
end
@move_bonus_reparation=0
@bonus_reparation.y=-50
end
end
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
#replacement des ennemis
def replace
@ennemy_1.y=10 
@ennemy_2.y=10
@ennemy_3.y=10
@ennemy_4.y=10
@vaisseau.x=640/2-25 
@barre_vie.refresh(@vie)
Graphics.update
sleep 2
end
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
#gestion des bonus
def bonus(x,y)
@rand_bonus=rand(20)
if @move_bonus_3_tir==0
if @rand_bonus==1
@bonus_3_tir.placement(x,y)
@move_bonus_3_tir=1
end
end
if @move_bonus_reparation==0
if @rand_bonus==10
@bonus_reparation.placement(x,y)
@move_bonus_reparation=1
end
end
end
end
#===============================================================================




=begin
==========================================================================
■ Ennemy
par chaipokoi
--------------------------------------------------------------------------------
cette classe gère les mouvements et l'animation des ennemy du space invader.
============================================================================
=end

class Ennemy < Sprite 
def initialize(image,vitesse) 
super ()
@image=image
@vitesse=vitesse
self.bitmap = RPG::Cache.picture(@image+"_ext")
self.x = rand(640-50).succ
self.y = 10
self.src_rect.set(0, 0, 50, 50)
@i = 0
@nb_Frame = 0
end
def update
super
# Incrémentaion de nombre de Frame
if @nb_Frame >0
self.bitmap = RPG::Cache.picture(@image+"_ext")
end
@nb_Frame += 1
if @nb_Frame >10
self.bitmap = RPG::Cache.picture(@image+"_nor")
end
if @nb_Frame >20
self.bitmap = RPG::Cache.picture(@image+"_int")
end
if @nb_Frame >30
self.bitmap = RPG::Cache.picture(@image+"_nor")
end
# Quand les frames vaut 5
if @nb_Frame > 40
# On remet le nombre de Frame à 0
@nb_Frame = 0
# Affichage de la prochaine séquence d'animation   
self.src_rect.set(0, 0, 50, 50)
end
end
def move
# Déplacement de 10px vers le bas
self.y+=@vitesse
# Suppression du Sprite quand on sort de l'écran
if self.y>480
self.x = rand(640-50).succ
self.y=-50
end
end 
end
#===============================================================================

=begin
==========================================================================
■ Vaisseau
par chaipokoi
--------------------------------------------------------------------------------
cette classe gère les mouvements et l'animation du vaisseau du space invader.
============================================================================
=end

class Vaisseau < Sprite 
def initialize(image,vitesse) 
super ()
@couleur=image
@vitesse=vitesse
self.bitmap = RPG::Cache.picture("vaisseau_"+@couleur)
self.y = 480-50
self.src_rect.set(0, 0, 50, 50)
end
def droite
# Déplacement de 10px vers le bas
self.x+=@vitesse
# Suppression du Sprite quand on sort de l'écran
if self.x>640-50
self.x-=@vitesse
end
end 
def gauche
# Déplacement de 10px vers le bas
self.x-=@vitesse
# Suppression du Sprite quand on sort de l'écran
if self.x<0
self.x+=@vitesse
end
end 
end
#===============================================================================


=begin
==========================================================================
■ Window_point
par chaipokoi
--------------------------------------------------------------------------------
cette classe gère l'affichage des points du joueur.
============================================================================
=end

class Window_point<Window_Base
def initialize
super(-05, 0, 160, 60)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
self.opacity=0
refresh
end 
def refresh
self.contents.clear
self.contents.font.color = system_color
self.contents.draw_text(10, 0, 160, 30,"gold:"+$gold.to_s)   
end
end
#===============================================================================

=begin
==========================================================================
■ Missile
par chaipokoi
--------------------------------------------------------------------------------
cette classe gère les mouvements du tir du joueur et des ennemis.
============================================================================
=end

class Missile< Sprite 
def initialize(image,vitesse) 
super ()
@camp=image
@vitesse=vitesse
self.bitmap = RPG::Cache.picture("tir_"+@camp) 
self.y = 480-50
self.src_rect.set(0, 0, 50, 50)
end
def tir(x)
@x=x
self.x=@x 
self.y-=30
end 
def tir_ennemy
self.y+=5     
end
end
#===============================================================================

=begin
==========================================================================
■ Barre
par chaipokoi
--------------------------------------------------------------------------------
cette classe gère l'annimation de la barre située sous les points du joueur
============================================================================
=end

class Barre< Sprite 
def initialize 
super()
@stop_down=0
@stop_up=1 
self.bitmap = RPG::Cache.picture("barre") 
self.y=10
self.x=-5
end
def move
if @stop_up==1
self.y+=1
if self.y>15
@stop_up=0
@stop_down=1
end
end
if @stop_down==1
self.y-=1
if self.y<10
@stop_up=1
@stop_down=0
end
end
end
end
#===============================================================================


=begin
==========================================================================
■ Barre_vie
par chaipokoi
--------------------------------------------------------------------------------
cette classe gère l'annimation de la barre de vie.
============================================================================
=end

class Barre_vie< Sprite 
def initialize
super()
@stop_down=0
@stop_up=1 
self.bitmap = RPG::Cache.picture("vie_3") 
self.y=14
self.x=530
end
def refresh(vie)
@vie=vie
if @vie>=1 and @vie<=3
self.bitmap = RPG::Cache.picture("vie_"+@vie.to_s)
end
if @vie<2
move
end
if @vie<1
print "game over"
exit
end
end
def move
if @stop_up==1
self.y+=1
if self.y>15
@stop_up=0
@stop_down=1
end
end
if @stop_down==1
self.y-=1
if self.y<10
@stop_up=1
@stop_down=0
end
end
end
end
#===============================================================================


=begin
==========================================================================
■ Bonus
par chaipokoi
--------------------------------------------------------------------------------
cette classe gère l'affichage et la chute des bonus.
============================================================================
=end

class Bonus< Sprite 
def initialize(type)
@type=type
super()
self.bitmap = RPG::Cache.picture("bonus_"+@type) 
self.y=-50
self.x=-50
end
def placement(x,y)
@x=x
@y=y
self.y=@y
self.x=@x
end
def move 
self.y+=4
end
end
#===============================================================================

#OUF!!!! c'est la fin.



Tw|irit // CWCS
Tiens l'heure D'RMD semble être restée à l'heure d'Hiver.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
GeckoEssence

GeckoEssence

Messages : 1400


Space invaders Empty
MessageSujet: Re: Space invaders   Space invaders Icon_minitimeSam 1 Jan - 15:08

Mouais. Vaut mieux le programmer, surtout que c'est pas non plus super compliqué.
Les graphismes font très Photoshop utilisé à l'arrache pour fair kikoo. Au final, je vois pas l'intéret du truc.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
chaipokoi

chaipokoi

Messages : 438


Space invaders Empty
MessageSujet: Re: Space invaders   Space invaders Icon_minitimeSam 1 Jan - 15:32

en fait l'effet photoshop vient du fait que les images avait été dessiné en jpg qui ne gère pas la transparence donc hop un grand fond noir tout moche je n'ai ensuite pas pris le temps de les redessiner pour une demo en plus ces images ne sont la que par default aussi j'explique clairement comment les changer.Pour finir, il n'y a pas d'interet je poste ce script pour que les maker non-scripteur puissent l'utiliser comme mini-jeux et oui tout le monde n'as pas la science infuse ^^.on peut aussi s'en servir comme base pour apprendre a afficher des sprite pour les novices.



Tw|irit // CWCS
Tiens l'heure D'RMD semble être restée à l'heure d'Hiver.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kaila
  
  
Kaila

Messages : 4254


Space invaders Empty
MessageSujet: Re: Space invaders   Space invaders Icon_minitimeDim 2 Jan - 18:21

Citation :
VEUILLEZ PLACER LES DIFFERENTES CLASS DANS DES SCRIPTS DIFFERENTS.
Pourquoi donc !? Ça sert à rien de découper le script...


Achetez RPG Maker MV sur Steam !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
chaipokoi

chaipokoi

Messages : 438


Space invaders Empty
MessageSujet: Re: Space invaders   Space invaders Icon_minitimeDim 2 Jan - 19:11

car je ne sais pas pourquoi mais chez moi le script game ne repère pas le script ennemy.



Tw|irit // CWCS
Tiens l'heure D'RMD semble être restée à l'heure d'Hiver.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




Space invaders Empty
MessageSujet: Re: Space invaders   Space invaders Icon_minitime

Revenir en haut Aller en bas
 
Space invaders
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Space Battleship Yamato
» metal invaders

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker Détente :: Entrepôt :: Scripts :: Scripts Xp-
Sauter vers: