O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Aula Ativa de Javascript/Ruby/RGSS e outras linguagens de programação

Iniciado por Raizen, 22/11/2012 às 13:04

Há, eu esqueci de falar algo, acho que vai ser bem útil para você.
Por exemplo, se você abrir um metódo, que já existia, tudo que tinha antes é apagado, para dar espaço para os novos comandos. Para adcionar comandos para um metódo existente use o "alias". Digite o nome do metódo e o novo nome dele, chame ele normal, adicione os novos comandos e depois chame o "novo" nome dele.

Acho que expliquei direito. ou não. -q
...

Desculpe se isto seria ressucitar tópico, eu não sei ao certo, pois este tópico é aberto para o povo ir tirando as dúvidas, então ressucitei POASKOPAKS.
Engine: RMVX Ace
Explicação: Eu queria saber que código posso usar para aparecer um texto exibindo o valor de uma variável na tela, só que o fundo dele tem de ser transparente.
Código exemplo:
e.e
seus pubububu.

nho
DeMolay

Você pode reviver qualquer tópico que achar que deve reviver :P, não tem problema algum isso no fórum.

Ah cara, tem vários modos de fazer, xD, você pode fazer com window também, ai basta tirar o opacity do fundo dele, mas ai depende MUITO do que pretende fazer, o jeito que está pedindo, talvez seja mais fácil desse modo aqui.

    @var = Sprite.new
    @var.bitmap = Bitmap.new(100, 100)
    @var.bitmap.draw_text(0, 0, 100, 100, $game_variables[n])


Substitua n pelo número da variável.

Mas isso se estiver usando para um script, não sei exatamente aonde usará isso, diga aonde será usado que talvez tenha outro modo mais fácil x]

24/06/2013 às 10:12 #18 Última edição: 24/06/2013 às 14:00 por DFox
É para aparecer um relógio indicando as 2 Variáveis (Hora e Minuto) Mas como não saco tanto de RGSS3 vim pedir ajuda aqui huahuah

EDIT:
Aí ficaria assim: variável 1:variável 2
Teria como? Para eu por lá em scripts.
seus pubububu.

nho
DeMolay

vc não quer um script pronto para isso xD?

Ressucitando novamente esse tópico, mas acho que esse não tem problema e.e'

Engine: RMVXA
Explicação: Estou aprendendo RGSS3, e depois de estudar um pouquinho vi o vídeo do Faalco, fiz a HUD, adaptei ao meu gosto e queria por uma imagem no lugar da barra pronta do VX Ace
Código exemplo (Script da HUD):
############################################################################
#~ HUD By Koelho
#~ Credits: Faalco (by the video-tutorial)
###########################################################################
class Window_HUD < Window_Base
  def initialize
    super(0, 0, 150, 120)
    @actor = $game_party.members[0] #Personagem da Party
    refresh
  end
  def refresh
     self.contents.clear
     draw_actor_name(@actor, 0, 0) #Desenhar Nome
     #draw_actor_face(@actor, 0, 0) #Desenhar Face
     draw_actor_hp(@actor, 0, 30) #Desenhar HP
     draw_actor_mp(@actor, 0, 60) #Desenhar MP
   end
 end 
 class Scene_Map
   alias koelho_main main
   alias koelho_update update
   def main
     @hud = Window_HUD.new
     koelho_main
     @hud.dispose
   end
   def update
     koelho_update
     @hud.update
     @hud.refresh
   end
 end
seus pubububu.

nho
DeMolay

Duvida "bésta", Ruby e RGSS são parecidos? tipo eu posso aprender algo útil para o RGSS3 lendo ruby? ou são linguagens totalmente diferentes?

O RGSS é uma aplicação feita em Ruby. É como o jQuery para Javascript ou Swing para Java. Se você aprender o Ruby será infinitamente mais fácil aprender o RGSS, pois entenderá por completo o que rola no mesmo.

Fora que ao aprender Ruby, entenderá melhor não só o RGSS, mas o Rails (aplicação Web em Ruby) ou Shoes (aplicação Desktop), e por aí vai. ;)

Olá, este tópico é sobre RGSS.

Pergunto àqueles que já fizeram ou entendem menus personalizados. Gostaria de saber se há como aumentar a velocidade do movimento do background. A intenção é que 2 imagens Plane.new que fiquem se movimentando no fundo enquanto outros movimentos possam ser feitos no menu. Fiz um script para exemplificar a dúvida:
class Movimento
  def main
    @background = Plane.new 
     @background_name = "op1zn0"
     @background2 = Plane.new
     @background2_name = "op1zn0"
    @background.bitmap = RPG::Cache.picture(@background_name)
    @background.blend_type = 0
    @background2.bitmap = RPG::Cache.picture(@background2_name)
    @background2.blend_type = 0
    @background2.opacity = 60
    @x = 2
    update
  end
  def update
#É do Plane.new e faz a imagem repetir na tela
       @background.oy += 30
      @background.ox += 30  
      @background2.oy += 30
      @background2.ox -= 30
      @x += 1
    end
    end


Então como podem ver, neste script as duas imagens se movimentam sim, mas de forma lenta.

  • Como aumentar a velocidade do movimento?
  • Vocês costumam utilizar esta lógica ao fazer um background em movimento no menu? Digo, como fazem para que ocorra um loop contínuo e de forma que ainda seja possível fornecer as interfaces dos menus?

Na realidade a intenção é fazer uma Scene que não necessariamente será um menu mas terá uma interatividade semelhante, e está questão do background é que fiquei em duvida no momento.

Obrigado,

tentou @background.x +....
e background.y+...?


E sim o Plane, eh a classe que já vem pré-configurado loopings não? se sim então porque não usa-lo rs :), cria uma classe ativa em paralelo para o menu, e o Plane executando por uma variável, como você fez no script, isso deveria deixar o fundo se movimentando enquanto você programa o menu, mas eu iria inserir esses background direto na classe do Menu que vai criar, bem mais fácil de manipular de lá.

14/11/2013 às 17:08 #25 Última edição: 14/11/2013 às 19:45 por Enter
Citação de: Raizen online 14/11/2013 às 15:25
tentou @background.x +....
e background.y+...?
Então, mas utilizando somente o "y" e o "x" eles se referem a coordenadas para deixa-la estática não é? E no caso, quando coloco elas acaba dando erro pois fala que para utilizar elas eu teria que declarar as variaveis como Sprite.new ao invés de Plane.new... Mas o background precisa ser Plane.new pelo fato da necessidade que a imagem se repita ao chegar aos extremos da borda.
Citação de: Raizen online 14/11/2013 às 15:25
E sim o Plane, eh a classe que já vem pré-configurado loopings não? se sim então porque não usa-lo rs :), cria uma classe ativa em paralelo para o menu, e o Plane executando por uma variável, como você fez no script, isso deveria deixar o fundo se movimentando enquanto você programa o menu, mas eu iria inserir esses background direto na classe do Menu que vai criar, bem mais fácil de manipular de lá.
Quanto esta parte, beleza! entendi, muito obrigado.


@Então, tem como aumentar a velocidade dos plane?

O membro Gab! conseguiu, quem estiver curioso:
class Movimento
  def main
    @background = Plane.new 
    @background_name = "op1zn0"
    @background2 = Plane.new
    @background2_name = "op1zn0"
    
    @background.bitmap = RPG::Cache.picture(@background_name)
    @background.blend_type = 0
    
    @background2.bitmap = RPG::Cache.picture(@background2_name)
    @background2.blend_type = 0
    @background2.opacity = 60
    @x = 2
 
    Graphics.transition(20)
    loop do 
      Graphics.update
      update
    end
  end
  
  def update
    @background.oy += 30
    @background.ox += 30  
    @background2.oy += 30
    @background2.ox -= 30
    @x += 1
  end
end



link: http://forums.mundorpgmaker.com.br/index.php?topic=116807.0

Engine: RPG Maker VX Ace
Explicação: Como que eu crio tipo assim,  um processo que carrega, os arquivos que estão dentro de uma array, e faço eles aparecerem em um menu ai eles podem ser selecionados, tipo no pokemon na seleção de windowskins, só que ai aprecece, o um numero, de acordo com a ordem em que está na array, e tambem como colocar uma palavra (titulo/tópico) no menu (esse menu não é menu menu é menu tipo menu item, menu status).
Ai eu não sei o processo, que carrega elas na pasta em que está, não sei o processo que faz ela poder ser escolhida durante o jogo, e não sei como criar uma window_selectable.
Código exemplo:
FontIndex = ["Verdana","Adobe Arabic","Segoe UI"] # Fontes que poderam ser selecionadas no menu

Boa noite, amigos.
Preferi postar aqui do que reviver o tópico da aula do Raizen, afinal.

Cheguei no ponto onde ele mostra o seguinte script:

def somar(x, y)
  soma = x + y
  p soma
end
somar(2, 4)
somar(3, 3)


X e Y são variáveis, certo? Eu atribuo os valores 2, 4 e 3, 3 ali no fim.
Sabendo disso, imaginei que num script essas variáveis talvez fossem definidas por um outro método, e tentei simular isso com o seguinte código:

x = 2
y = 3
def somar(x, y)
  soma = x + y
  p soma
end


Bom, deu errado, mas eu não consigo entender o motivo. Mesmo.
Estou estudando Ruby há poucas horas e talvez eu descubra  o motivo disso estar errado em breve, mas fiquei encucado. Não posso setar essas variáveis assim?
Blog com meus textos, poemas e inspirações.
Basicamente onde eu devolvo pra vida todos os tapas que ela me dá.


03/12/2014 às 08:50 #28 Última edição: 03/12/2014 às 08:52 por Alucard_2
@Van

Existe uma diferença entre "Declaração" e "Chamada de método".

No caso, em:

def soma(x, y)
  soma = x + y
  p soma
end


Você está Declarando que existe um método soma que exige 2 parâmetros, que, dentro do método, irão se chamar "x" e "y" respectivamente. Logo eu posso colocar qualquer variável como parâmetro, até mesmo "números puros", assim digamos, como você fez com 2 e 4, 3 e 3.

Agora quando você executa:

soma(2, 4)


Você está chamando o método "soma", e enviando "2" como primeiro parâmetro, e "4" como segundo parâmetro, e dentro do método elas irão se chamar "x" e "y" respectivamente, mas fora do método as variáveis "x" e "y" simplesmente não existem, ou seja, o que está no método é independente do que está fora dele (a menos que trate-se de variáveis de classe/globais - i.e. com @ e $ no início).

Ou seja, eu posso livremente fazer:

soma(x, y)
  soma = x + y
  p x # => irá printar o primeiro valor passado como parâmetro
  p soma
end

mostarda = 2
vinagre = 3
soma(mostarda, vinagre) # mostarda, no método, será x, e vinagre será y

p x # => nil, pois não existe variável x.

x = 4
y = 3
soma(x, y) # x, no método, será x, e y será y
soma(y, x) # y, no método, será x, e x será y


Ou ainda:
x = 2
y = 4
p x # => 2
def soma(x, y)
  x = 4 # => x do método será 4, x fora dele continuará 2
  p x # => 4
  soma = x + y
  p soma
end

p x # => 2


Ou seja, a variável é uma coisa, um parâmetro no método é outra.


No seu caso, não funcionou pois você simplesmente declarou as variáveis, declarou o método, mas não chamou ele.
Logo, basta adicionar a chamada dele ao fim:
x = 2
y = 3
def soma(x, y)
  soma = x + y
  p soma
end
soma(x, y)

Rapaz, muito obrigado!
Agora sim faz sentido, eu devia ter imaginado que "def" significaria "definir".
Esse X e Y serão, por padrão, variáveis locais, certo?
O que você chamou de parâmetro (2, 4 no caso) são nada mais que variáveis existentes apenas dentro desse método. Se eu quiser que elas sejam setadas por outro script eu terei que deixar

def soma(x, y)
  soma = x + y
  p soma
end
soma($variavel_a, $variavel_b)


Ou estou falando bobagens?
Blog com meus textos, poemas e inspirações.
Basicamente onde eu devolvo pra vida todos os tapas que ela me dá.