- ZarbyMembre
- Nombre de messages : 71
Age : 35
Distinction : aucune
Date d'inscription : 15/12/2011
Snake Minigame V1.0
Dim 11 Aoû 2013 - 3:42
Infos :
Fait par Zarby Snake V1.0 (Script Original VX vers Ace)
pas de credit requis
Comment utiliser :
Copier le script au dessus de main, appeller la scene a l'aide d'un evenement :
head :
body :
Screenshot :
+5 points de participation
Fait par Zarby Snake V1.0 (Script Original VX vers Ace)
pas de credit requis
Comment utiliser :
Copier le script au dessus de main, appeller la scene a l'aide d'un evenement :
- Code:
SceneManager.call(Scene_Snake)
head :
body :
- Script:
- Code:
#==============================================================================
# ** General Configuration
#------------------------------------------------------------------------------
# You can set Parameters here
#==============================================================================
$snake_speed = 1
$speed_acceleration = 0.1
#return score to variable [Let it to 0 if you don't want to return score to a variable] :
$score_variable_id = 20
#text if we lose :
$lose_text = "Game Over"
#if we press Cancel key (escape) :
#0 = Leave to map instantly
#1 = Pause game and ask player if he want to leave
$cancel_action = 1
#Score Management :
#every time snake move it decrease by 1 the value of the score the food give
$everytime_snake_move = 1
$everytime_snake_eat = 100
#Graphics Settings
#if you don't want graphics set all to : nil
#(image must be 32x16 pixel in picture folder first 16 pixel = looking to right side, last 16 pixel = looking to down side)
$head_graphics = "head"
$body_graphics = "body"
$food_graphics = nil
#==============================================================================
# ** Window_PauseCommand
#------------------------------------------------------------------------------
# This command window appears when escape is pressed while playing
#==============================================================================
class Window_PauseCommand < Window_Command
def initialize(x,y)
super(x, y)
end
def make_command_list
add_command("Continue", :continue, true)
add_command("Leave", :leave, true)
end
end
#===============================================================================
# ** Score_Window
#-------------------------------------------------------------------------------
# This window display the score
#===============================================================================
class Window_Score < Window_Base
def initialize(x, y)
super(x, y, 160, line_height + 32)
@score = 0
refresh
self.opacity = 0
self.back_opacity = 0
end
def update_score(score)
@score = score
end
def refresh
self.contents.clear
self.contents.draw_text(0, 0, 200, line_height, @score)
end
end
#===============================================================================
# ** Snake_Body
#-------------------------------------------------------------------------------
# This class is the snake head and body
#===============================================================================
class Snake_Body
attr_accessor :x
attr_accessor :y
attr_accessor :direction
def initialize(x,y,direction)
@sprite = Sprite.new
@x = x
@y = y
@sprite.x = x*16
@sprite.y = y*16
@lastx = @x
@lasty = @y
@graphicx = 0
@graphicy = 0
@sprite.bitmap = Bitmap.new(16,16)
@bmp = nil
if (direction != -1)#body
if ($body_graphics != nil)
@bmp = Cache.picture($body_graphics)
@sprite.bitmap.blt(0,0,@bmp,Rect.new(16,0,16,16))
else
@sprite.bitmap.fill_rect(Rect.new(0,0,16,16),Color.new(0,200,0))
end
else#head
if ($body_graphics != nil)
@bmp = Cache.picture($head_graphics)
@sprite.bitmap.blt(0,0,@bmp,Rect.new(16,0,16,16))
else
@sprite.bitmap.fill_rect(Rect.new(0,0,16,16),Color.new(0,250,0))
end
@direction = 0
end
@speed = 0
end
def updatelastpos()
@lastx = @x
@lasty = @y
@graphicx = 0
@graphicy = 0
end
def dispose()
@bmp.dispose
@sprite.dispose
end
def updatepos(speed)
@speed = speed
if (@x> @lastx)
@graphicx = (@graphicx+@speed)
end
if (@y > @lasty)
@graphicy = (@graphicy+@speed)
end
if (@x< @lastx)
@graphicx = (@graphicx-@speed)
end
if (@y < @lasty)
@graphicy = (@graphicy-@speed)
end
@sprite.x = (@lastx*16)+@graphicx
@sprite.y = (@lasty*16)+@graphicy
if @bmp != nil
if @lastdirection != @direction
@sprite.bitmap.clear
case @direction
when 0
@sprite.bitmap.blt(0,0,@bmp,Rect.new(16,0,16,16))
when 1
@sprite.bitmap.blt(0,0,@bmp,Rect.new(0,0,16,16))
when 2
@sprite.bitmap.blt(0,0,@bmp,Rect.new(16,16,16,-16))
when 3
@sprite.bitmap.blt(0,0,@bmp,Rect.new(16,0,-16,16))
end
end
end
@lastdirection = @direction
end
end
class Scene_Snake < Scene_Base
def initialize
super
create_window_score
create_window_command
create_sprites
create_settings
create_object_array
generate_food(rand(34),rand(26))
end
def update
super
if Input.trigger?(:B)
pause
end
if @pause == false
get_direction
if (@direction != -1)
@timer += @snake_speed
every_tick
update_snake
end
end
end
def terminate
super
end
def every_tick
if (@timer >= 16)
if @food_score > 0
@food_score = @food_score - 1
end
(@snakebody.size-1).downto(1){ |i|
@snakebody[i].direction = @snakebody[i-1].direction
@snakebody[i].updatelastpos()
@snakebody[i].x = @snakebody[i-1].x
@snakebody[i].y = @snakebody[i-1].y
}
@snakebody[0].direction = @direction
@snakebody[0].updatelastpos()
if (@direction == 0)#Down
@snakebody[0].y = @snakebody[0].y+1
end
if (@direction == 1)#Right
@snakebody[0].x = @snakebody[0].x+1
end
if (@direction == 2)#Up
@snakebody[0].y = @snakebody[0].y-1
end
if (@direction == 3)#Left
@snakebody[0].x= @snakebody[0].x-1
end
@window_score.update_score(@score)
@window_score.refresh
if (@snakebody[0].x > 33)
@snakebody[0].x = 0
end
if (@snakebody[0].x < 0)
@snakebody[0].x = 33
end
if (@snakebody[0].y > 25)
@snakebody[0].y = 0
end
if (@snakebody[0].y < 0)
@snakebody[0].y = 25
end
@timer = 0
end
end
def get_direction
if Input.press?(Input::DOWN)
@direction = 0
end
if Input.press?(Input::UP)
@direction = 2
end
if Input.press?(Input::LEFT)
@direction = 3
end
if Input.press?(Input::RIGHT)
@direction = 1
end
end
def update_snake
(@snakebody.size-1).downto(0){ |i|
if (i != 0)
if ((@snakebody[0].x == @snakebody[i].x) and (@snakebody[0].y == @snakebody[i].y))
$game_message.texts.push($lose_text)
command_leave
if $score_variable_id != 0
$game_variables[$score_variable_id] = @score
end
break;
end
end
@snakebody[i].updatepos(@snake_speed)}
if ((@snakebody[0].x == @food_x) and (@snakebody[0].y == @food_y))
@snakebody.push(Snake_Body.new(@snakebody[@snakebody.size-1].x,@snakebody[@snakebody.size-1].y,@snakebody[@snakebody.size-1].direction))
@snake_speed = @snake_speed + @speed_acceleration
@score = @score + @food_score
@window_score.update_score(@score)
@food_score = $everytime_snake_eat
generate_food(rand(34),rand(26))
end
end
def pause
if @pause == false
@window_command.activate
@window_command.visible = true
@pause = true
else
unpause
end
end
def unpause
@window_command.visible = false
@pause = false
end
def create_window_score
@window_score = Window_Score.new(0,0)
end
def create_window_command
@window_command = Window_PauseCommand.new(192,160)
@window_command.set_handler(:continue, method(:command_continue))
@window_command.set_handler(:leave, method(:command_leave))
@window_command.visible = false
@window_command.deactivate
end
def create_sprites
@food_sprite = Sprite.new
@food_sprite.bitmap = Bitmap.new(16,16)
if $food_graphics != nil
@food_sprite.bitmap = Cache.picture($food_graphics)
else
@food_sprite.bitmap.fill_rect(Rect.new(0,0,16,16),Color.new(250,230,130))
end
end
def create_object_array
@snakebody = []
@snakebody.push(Snake_Body.new(17,13,-1))
@snakebody.push(Snake_Body.new(17,13,0))
@snakebody.push(Snake_Body.new(17,13,0))
end
def create_settings
@snake_speed = $snake_speed
@speed_acceleration = $speed_acceleration
@direction = -1
@score = 0
@food_score = $everytime_snake_eat
@timer = 25
generate_food(rand(34),rand(26))
@food_x = 0
@food_y = 0
@leaving = false
@pause = false
end
def generate_food(x,y)
@food_x = x
@food_y = y
@food_sprite.x = x * 16
@food_sprite.y = y * 16
end
def command_continue
@window_command.visible = false
@pause = false
end
def command_leave
@window_command.dispose
SceneManager.call(Scene_Map)
end
end
Screenshot :
- Image:
+5 points de participation
- brasegajamesMembre
- Nombre de messages : 100
Age : 30
Localisation : Devant mon ordi!!!
Distinction : aucune
Date d'inscription : 19/12/2008
Re: Snake Minigame V1.0
Dim 11 Aoû 2013 - 23:17
Si c'est pas Zarby? Ca fait longtemps vieux !!!
Nous avons là un super scripteur qui nous vient d'un autre forum bbactif...
Si je me souviens bien du moins
Alors t'es actif seulement les grandes vacances comme moi hein? :p
Sinon, sympa l'initiative de faire un snake, tu te met à transposer tes scripts de vx vers ace en ce moment?
Nous avons là un super scripteur qui nous vient d'un autre forum bbactif...
Si je me souviens bien du moins
Alors t'es actif seulement les grandes vacances comme moi hein? :p
Sinon, sympa l'initiative de faire un snake, tu te met à transposer tes scripts de vx vers ace en ce moment?
- ZarbyMembre
- Nombre de messages : 71
Age : 35
Distinction : aucune
Date d'inscription : 15/12/2011
Re: Snake Minigame V1.0
Lun 12 Aoû 2013 - 2:47
haha super scripteur faut pas exagérer je fait ca pour passer le temps surtout.
la raison pourquoi j'étais pas la c'est que je fait plus vraiment de rpg maker je suis sur XNA en C# pour le moment j'ai 2-3 projets je sais pas encore sur le quel je vais me concentrer :o
j'ai pas énormement de scripts donc non je les transpose pas tous sur Ace, mais si j'en fait d'autre sur VX il vont être compatible Ace aussi
la raison pourquoi j'étais pas la c'est que je fait plus vraiment de rpg maker je suis sur XNA en C# pour le moment j'ai 2-3 projets je sais pas encore sur le quel je vais me concentrer :o
j'ai pas énormement de scripts donc non je les transpose pas tous sur Ace, mais si j'en fait d'autre sur VX il vont être compatible Ace aussi
- brasegajamesMembre
- Nombre de messages : 100
Age : 30
Localisation : Devant mon ordi!!!
Distinction : aucune
Date d'inscription : 19/12/2008
Re: Snake Minigame V1.0
Lun 12 Aoû 2013 - 14:59
Ok d'accord.
Ayant été à Epita cette année (école d'info assez cool), j'ai appris à utiliser C# et XNA durant un projet cette année
On a abouti à un truc assez cool. ICI
Sinon, je vais arrêter de viander ton post de snake qui a le mérite de pas être une section flood.
Si tu veux on s'ajoute skype ça pourrait être cool de faire des trucs ensemble
Ayant été à Epita cette année (école d'info assez cool), j'ai appris à utiliser C# et XNA durant un projet cette année
On a abouti à un truc assez cool. ICI
Sinon, je vais arrêter de viander ton post de snake qui a le mérite de pas être une section flood.
Si tu veux on s'ajoute skype ça pourrait être cool de faire des trucs ensemble
- ZarbyMembre
- Nombre de messages : 71
Age : 35
Distinction : aucune
Date d'inscription : 15/12/2011
Re: Snake Minigame V1.0
Mar 13 Aoû 2013 - 3:34
Wow personnellement j'ai pas eu la chance d'aller a un école d'info lol, donc mes capacité en C# sont assez restreint ca pourrais être pas mal d'essayer de faire quelque chose a plusieurs mais comme je dit je suis pas très doué ^^, sinon elle est vraiment pas mal la video jai pas eu le temps de tester mais j'ai regarder la vidéo ca a l'air bien , sinon pour travailler a plusieurs le problème c'est que je suis pas doué pour grand chose a part les script lol enfin mon skype c'est : adamoadamo12323@hotmail.com je suis pas connecté très souvent et je suis québecois donc pas la au même heurs non plus si tu veut m'ajouter y'a pas de problème
Re: Snake Minigame V1.0
Mer 14 Aoû 2013 - 23:58
Pas mal mais il faut les nommer comment les images ? Puis la boule elle est ou l'image ?
- akais315Membre
- Nombre de messages : 79
Age : 30
Localisation : Belgique
Distinction : aucune
Date d'inscription : 27/07/2013
Re: Snake Minigame V1.0
Jeu 15 Aoû 2013 - 0:06
C'est pourtant clair, tu les nomme head et body, et la boule est de base dans rm je pense, enfin moi elle s'affiche bien...
Re: Snake Minigame V1.0
Jeu 15 Aoû 2013 - 0:08
Ok, je prend ce script tout de suite Mais il sert un peut a rien
- akais315Membre
- Nombre de messages : 79
Age : 30
Localisation : Belgique
Distinction : aucune
Date d'inscription : 27/07/2013
Re: Snake Minigame V1.0
Jeu 15 Aoû 2013 - 0:13
Je ne pense pas qu'il ne serve à rien, il peut être utile si on fait une salle de casino, ou de jeu d'arcade dans notre jeu, il suffit de récupérer le résultat pour obtenir telle ou telle récompense, ou autres applications, mais bon bien sûr l'interface n'est pas des plus attirants, mais ce n'est qu'un détail et relativement simple à régler
Re: Snake Minigame V1.0
Jeu 15 Aoû 2013 - 0:16
Oui mais cela me fait un message d'érreur donc j'ai fait ça :
J'ai mit body et heart dans le dossier Pictures
J'ai nommer le script : Scene_Snake
Puis sa me fait un messages d'erreur pouvez vous m'aider ?
J'ai mit body et heart dans le dossier Pictures
J'ai nommer le script : Scene_Snake
Puis sa me fait un messages d'erreur pouvez vous m'aider ?
- akais315Membre
- Nombre de messages : 79
Age : 30
Localisation : Belgique
Distinction : aucune
Date d'inscription : 27/07/2013
Re: Snake Minigame V1.0
Jeu 15 Aoû 2013 - 0:23
Ce n'est pas heart, mais head...
Re: Snake Minigame V1.0
Jeu 15 Aoû 2013 - 11:46
Une faute d'orthographe que j'ai fait sur le forum mais pas sur mon projet, faut t'il vraiment les mettrent dans pictures ?
- ZarbyMembre
- Nombre de messages : 71
Age : 35
Distinction : aucune
Date d'inscription : 15/12/2011
Re: Snake Minigame V1.0
Jeu 15 Aoû 2013 - 12:36
si tu veut pas utiliser d'image tu met les 3 variable _graphics a nilZarby a écrit:#Graphics Settings
#if you don't want graphics set all to : nil
#(image must be 32x16 pixel in picture folder first 16 pixel = looking to right side, last 16 pixel = looking to down side)
$head_graphics = "head"
$body_graphics = "body"
$food_graphics = nil
sinon tu peut les renommer de base c'est head et body, les images doivent ce trouver picture si tu as enregistrer les 2 image que j'ai mis plus haut dans le 1ier poste et que tu les renomme en head.png et body.png et que tu les charge dans picture ca devrais fonctionner
Re: Snake Minigame V1.0
Jeu 15 Aoû 2013 - 13:07
Ok Même si je neut comprend pas les 3 variables a nil mais je vais me débrouillé
- ZarbyMembre
- Nombre de messages : 71
Age : 35
Distinction : aucune
Date d'inscription : 15/12/2011
Re: Snake Minigame V1.0
Jeu 15 Aoû 2013 - 13:31
j'ai mis la variable $food_graphics a nil par defaut regarde en haut du script completement tu va voir, suffit de faire la même chose avec les autres donc :
$head_graphics = nil
$body_graphics = nil
$food_graphics = nil
sinon pour utiliser un image qui ce trouve dans le dossier picture tu met :
$head_graphics = "tonimage"
elle dois ressembler a l'image que je donne dans le premier poste donc 32x16 pixel, les 16 premiers pixel image de coté droit et 16 autre pixel image vers le bas
$head_graphics = nil
$body_graphics = nil
$food_graphics = nil
sinon pour utiliser un image qui ce trouve dans le dossier picture tu met :
$head_graphics = "tonimage"
elle dois ressembler a l'image que je donne dans le premier poste donc 32x16 pixel, les 16 premiers pixel image de coté droit et 16 autre pixel image vers le bas
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum