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

Perfect ASDW movement

Iniciado por Raizen, 30/03/2013 às 03:37

30/03/2013 às 03:37 Última edição: 30/03/2013 às 15:45 por Raizen
Perfect ASDW movement

Compativel com: RMVXAce
Compatibilidade :bom
Facilidade de uso: fácil
Lag gerado: nulo
[box class=titlebg]
Condições de Uso
[/box]
  Pode ser modificado, e divulgado, mas mantenha os créditos a mim obrigado.

[box class=titlebg]
Para que serve o script
[/box]
  O script adiciona o movimento pelas setas ASDW, porém diferente dos outros disponibilizados, ele faz exatamente a mesma função das setas, que é a de quando é pressionado uma segunda tecla, aquela tecla é a que fará o movimento.

[box class=titlebg]
Script.
[/box]

#=======================================================
#         Perfect ASDW Move
# Autor: Raizen
# Comunidade: www.centrorpg.com
# O script adciona troca o movimento das setas pelo ASDW, lembrando
# que esse é diferente dos outros, ele faz exatamente a mesma função das setas
#=======================================================


#=======================================================
#========= Aqui começa o script ========================
#=======================================================

$imported = {} if $imported.nil?
$imported[:lune_asdw] = true

class << Input
  def initi
    @asdw_array = Array.new
  end
  def dir4
    @asdw_array.delete(4) unless Input.press?(:X)
    @asdw_array.delete(2) unless Input.press?(:Y)
    @asdw_array.delete(6) unless Input.press?(:Z)
    @asdw_array.delete(8) unless Input.press?(:R)
    @asdw_array << 4 if Input.press?(:X) && !@asdw_array.include?(4)
    @asdw_array << 2 if Input.press?(:Y) && !@asdw_array.include?(2)
    @asdw_array << 6 if Input.press?(:Z) && !@asdw_array.include?(6)
    @asdw_array << 8 if Input.press?(:R) && !@asdw_array.include?(8)
    return @asdw_array.last if @asdw_array.last.is_a?(Integer)
    0
  end
end

Input.initi


[box class=titlebg]
Imagens
[/box]

Imperceptível por imagens

[box class=titlebg]
Download
[/box]

Não necessário


[box class=titlebg]
Créditos e Avisos
[/box]

Raizen

 Olha, legal.. Gostei do modo em que você programou o código, parabéns..



Interessante, belo código aliás. Mas tá faltando o "?" no ".nil" XD

@Dax: vlws man :D.


Citação de: SheolShade online 30/03/2013 às 15:20
Interessante, belo código aliás. Mas tá faltando o "?" no ".nil" XD
Oque aonde  :lol: ?

Bom vlws o aviso kk, já adicionei, vou colocar vários pequenos scripts do game que estou fazendo, acho que podem ser útil ao pessoal.. eu acho xD, vlws o comentário.

ASDW !? Isso é uma ofensa é WASD!

Finalmente poder jogar no maker com o WASD
Bom script Raizen-San

Ok mais eu coloco onde nos scripts eu crio um novo ?

Isso é sério .-.? Só adiciona um novo script, de qualquer modo ele vai funcionar, mas adiciona um novo acima do main, fica mais organizado e coloca o script lá.

 E aí denovo : tava vendo o código do script.... aí pensei comigo.. será que conseguiria eu faze-lo mais minimizado? Bom eu fiz.. olha aí :

#=======================================================
#         Perfect ASDW Move
# Autor: Raizen
# Comunidade: www.centrorpg.com
# O script adciona troca o movimento das setas pelo ASDW, lembrando
# que esse é diferente dos outros, ele faz exatamente a mesma função das setas
#=======================================================


#=======================================================
#========= Aqui começa o script ========================
#=======================================================

$imported = {} if $imported.nil?
$imported[:lune_asdw] = true

class << Input
  def initi
    @asdw_array = Array.new
  end
  def dir4
    [:X, :Y, :Z, :R].each_with_index { |keys, index| 
     @asdw_array.delete([4, 2, 6, 8][index]) unless Input.press?(keys)
     @asdw_array << [4, 2, 6, 8][index] if Input.press?(keys) && !@asdw_array.include?([4, 2, 6, 8][index])
    }
    return @asdw_array.last if @asdw_array.last.is_a?(Integer)
    0
  end
end

Input.initi