Registrarse

[Duda] Aprendiendo a hacer Scripts

Estado
Cerrado para nuevas respuestas.
Hola a todos. Hace poco decidí sentarme a entender a fondo la programación en ruby sobre rgss. He revisado múltiples guias y he realizado un curso de POO básico. Mi problema es el siguiente. Estoy en lo más básico que es crear una ventana. Pero, según lo que he leido a la clase donde definiré la nueva ventana debe heredar de Windows_Base pero en el caso del Essentials el posee es Window, trato de definir los atributos de la clase con sus metodos: x,y,width y height y luego un evento del mapa instancia a la ventana. Trato de hacer la ventana pero me surge siempre un error al iniciar. No sé si alguien podría darme un ejemplo de como es ese tipo de código de forma muy general, y si estoy saltando algo en lo que he revisado. Gracias de antemano! Disculpen la pregunta tan básica pero estoy decidido a profundizar mis conocimientos en esta área. :D
 
El script se llama ventana_prueba, el código es:

class ventana_prueba < Windows

def initialize

super
self.x(10)
self.y(10)
self.width(200)
self.heaight(200)
end
end

El evento llama el script: ventana_prueba = ventana_prueba.new

Eso es todo D:
 
Sí, encontré un tutorial y me dí cuenta que estaba MUY mal xD. Logré hacerla, así fue el código, pero no sé si conoces una manera más sencilla :D

Código:
class My_window_scene #Scene Class
def update #Update sprites in scene
pbUpdateSpriteHash   [MENTION=24071]Sprite[/MENTION]s)
end

def pbstartscene(maintext,imgpath)
   [MENTION=24071]Sprite[/MENTION]s={}
@viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
@viewport.z=99999
   [MENTION=24071]Sprite[/MENTION]s["background"]=IconSprite.new(0,0,@viewport)
   [MENTION=24071]Sprite[/MENTION]s["background"].setBitmap(imgpath)
   [MENTION=24071]Sprite[/MENTION]s["background"].x=(Graphics.width   [MENTION=24071]Sprite[/MENTION]s["background"].bitmap.width)/2
   [MENTION=24071]Sprite[/MENTION]s["background"].y=(Graphics.height   [MENTION=24071]Sprite[/MENTION]s["background"].bitmap.height)/2
   [MENTION=24071]Sprite[/MENTION]s["overlay"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
pbSetSystemFont   [MENTION=24071]Sprite[/MENTION]s["overlay"].bitmap)
pbDrawText(maintext)
end

def pbDrawText(maintext)
    overlay   [MENTION=24071]Sprite[/MENTION]s["overlay"].bitmap
    overlay.clear 
    marginLeft=112
    marginRight=96
    baseColor=Color.new(72,72,72)
    shadowColor=Color.new(160,160,160)
      drawTextEx(overlay,marginLeft,96,Graphics.width-marginLeft-marginRight,8,maintext,baseColor,shadowColor)
end


def pbMain
loop do
Graphics.update
Input.update
self.update
if Input.trigger?(Input::B)
break
end
end
end

def pbEndScene
pbFadeOutAndHide   [MENTION=24071]Sprite[/MENTION]s) {update}
pbDisposeSpriteHash   [MENTION=24071]Sprite[/MENTION]s)
@viewport.dispose
end
end

class My_window
def initialize(scene)
@scene=scene
end

def pbStartScreen(maintext,imgpath)
@scene.pbStartScene(maintext,imgpath)
@scene.pbMain
@scene.pbEndScene
end
end

def pbmy_window (maintext,imgpath="")
imgpath= "Graphics/Pictures/mailAIRMAIL" if imgpath=="" 
scene=my_window_scene.new
screen=my_window.new(scene)
screen.pbStartScreen(maintext,imgpath)
end
 

enanogm

Usuario antiguo de Wah
el RGSS está basado en Ruby, te recomiendo leerte algún libro de Ruby y sobre el paradigma OO(orientado a objetos). Sabiendo esas cosas, aprender RGSS va a ser mucho más fácil y vas a conseguir mejores resultados

Saludos
 
Estado
Cerrado para nuevas respuestas.
Arriba