Autor: Johnny Mercy
Resumo: É um mini jogo do famoso e nunca esquecido PONG. Contem um fundo animado que varia consoante a posição e velocidade da bola. É possivel costumizar várias coisas como podem ver no ínicio do Script. É provavel que encontre algum bug pois ainda está em fase de testes.
Como Instalar:
1. Colocar o script em cima do Main
2. Copiar as imagens para a pasta PICTURES do vosso jogo
3. Para chamar o mini-jogo crie um evento e na opção chamar script coloquem $scene = Pong_Main.new
Como Jogar:
• Setas direcionais para cima e para baixo
• Shift para sair do mini-jogo
Script:
Demo
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
Resumo: É um mini jogo do famoso e nunca esquecido PONG. Contem um fundo animado que varia consoante a posição e velocidade da bola. É possivel costumizar várias coisas como podem ver no ínicio do Script. É provavel que encontre algum bug pois ainda está em fase de testes.
Como Instalar:
1. Colocar o script em cima do Main
2. Copiar as imagens para a pasta PICTURES do vosso jogo
3. Para chamar o mini-jogo crie um evento e na opção chamar script coloquem $scene = Pong_Main.new
Como Jogar:
• Setas direcionais para cima e para baixo
• Shift para sair do mini-jogo
Script:
- Código:
##############################################################
# Script By Johnny Mercy
# Program: Rpg Maker VX
# Language: RGSS2
##############################################################
# Class Configurations
##############################################################
module MyModule
#Nome da tela de fundo (Layer = 0)
BgPlaneImage = "BGPlaneImage"
#Nome da tela de fundo (Layer = 1)
BgImage = "BGImage"
#Nome da imagem da bola
BallImage = "Ball"
#Nome da imagem dos Tacos
BatImage = "Bat"
end
##############################################################
# Class Pong_Main
##############################################################
class Pong_Main < Scene_Base
def initialize
#Game Vars:
@BallSpeedX = 1.5
@BallSpeedY = 1.5
@Bat1Speed = 3
@Bat2Speed = 3
#Procedures:
createBG
createBall
createBats
end
def createBG
#BG LAYER 0
@BGPlane = Plane.new
@BGPlane.bitmap = Cache.picture(MyModule::BgPlaneImage)
@BGPlane.z = 0
#BG LAYER 1
@BGImage = Sprite.new
@BGImage.bitmap = Cache.picture(MyModule::BgImage)
@BGImage.x = 0
@BGImage.y = 0
end
def createBats
#Player Bat
@Bat1 = Sprite.new
@Bat1.bitmap = Cache.picture(MyModule::BatImage)
@Bat1.x = 0
@Bat1.y = Graphics.height / 2 - (@Bat1.height / 2)
#CPU Bat
@Bat2 = Sprite.new
@Bat2.bitmap = Cache.picture(MyModule::BatImage)
@Bat2.x = Graphics.width - @Bat2.width
@Bat2.y = Graphics.height / 2 - (@Bat2.height / 2)
end
def createBall
#Ball
@Ball = Sprite.new
@Ball.bitmap = Cache.picture(MyModule::BallImage)
initializeBall
end
def initializeBall
@Ball.x = Graphics.width / 2 - (@Ball.width / 2)
@Ball.y = Graphics.height / 2 - (@Ball.height / 2)
placeHolder = rand(3)
if placeHolder <= 1
@BallSpeedX = -2
@BallSpeedY = -2
else
@BallSpeedX = 2
@BallSpeedY = 2
end
end
#-----------------------------------------------------------
def update
@BGPlane.oy += @BallSpeedY
playerInput
cpuIA
ballMovement
ballBoundry
#Tecla para sair do Pong:
$scene = Scene_Map.new if (Input.trigger?(Input::A))
end
def cpuIA
@Bat2.y += @Bat2Speed if (@Ball.y + @Ball.height / 2 > @Bat2.y + @Bat2.height / 2 and @Bat2.y + @Bat2.height + @Bat2Speed < (Graphics.height - 11))
@Bat2.y -= @Bat2Speed if (@Ball.y + @Ball.height / 2 < @Bat2.y + @Bat2.height / 2 and @Bat2.y - @Bat2Speed > 10)
end
def playerInput
@Bat1.y += @Bat1Speed if ((Input.press?(Input::DOWN)) and ((@Bat1.y + @Bat1.height + @Bat1Speed) < (Graphics.height - 11)))
@Bat1.y -= @Bat1Speed if ((Input.press?(Input::UP)) and ((@Bat1.y - @Bat1Speed) > 10))
end
def ballMovement
@Ball.x += @BallSpeedX
@Ball.y += @BallSpeedY
end
def ballBoundry
if (@Ball.y < 10)
@Ball.y = 10
@BallSpeedY *= -1
end
if (@Ball.y + @Ball.height > Graphics.height - 13 )
@Ball.y = Graphics.height - 14 - @Ball.height
@BallSpeedY *= -1
end
if (((@Ball.x > @Bat1.x and @Ball.x <= @Bat1.x + @Bat1.width) and (@Ball.y + (@Ball.height / 2) > @Bat1.y and @Ball.y + (@Ball.height / 2) < @Bat1.y + @Bat1.height)) or ((@Ball.x + @Ball.width > @Bat2.x and @Ball.x + @Ball.width <= @Bat2.x + @Bat2.width) and (@Ball.y + (@Ball.height / 2) > @Bat2.y and @Ball.y + (@Ball.height / 2) < @Bat2.y + @Bat1.height)))
increaseSpeed
@BallSpeedX *= -1
end
initializeBall if (@Ball.x > Graphics.width or @Ball.x + @Ball.width < 0)
end
def increaseSpeed
@BallSpeedX -= 0.4 if (@BallSpeedX < 0)
@BallSpeedX += 0.4 if (@BallSpeedX > 0)
@BallSpeedY -= 0.4 if (@BallSpeedY < 0)
@BallSpeedY += 0.4 if (@BallSpeedY > 0)
end
#-----------------------------------------------------------
def terminate
@Bat1.dispose
@Bat2.dispose
@Ball.dispose
@BGPlane.dispose
@BGImage.dispose
end
end
Demo
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]