Per 2016, RMID pindah ke RMID Discord (Invite link dihapus untuk mencegah spambot -Theo @ 2019). Posting sudah tidak bisa dilakukan lagi.
Mohon maaf atas ketidaknyamanannya dan mohon kerjasamanya.

Share | 
 

 [VX]Text Effects On Map

Topik sebelumnya Topik selanjutnya Go down 
[VX]Text Effects On Map Empty2011-04-07, 13:29
Post[VX]Text Effects On Map
#1
hart 
Senior
Senior
avatar

Level 5
Posts : 805
Thanked : 38
Engine : Other
Skill : Very Beginner
Type : Developer

[VX]Text Effects On Map Vide
Simple Text Effects
Tipe: Gaje


Pengenalan

Berawal dari request dari om Kuro kepada om dhoom di https://rmid.forumotion.net/t3594p20-dhoom-script-workshop#55667 , yang mana malah saya kerjain. Awalnya cuma coba2 karena udah lama gk scripting RGSS2, dan karena request yg itu kayaknya paling mudah diantara request2 di trid tersebut, jadi saya coba yg itu. Eh malah keasikan dan tanpa disadari ternyata scriptnya selesai :hammer: Dan karena udah terlanjur jadi, saya kembangin dengan beberapa efek lain(saat ini ada 3 efek, yaitu fading text, zooming text, dan tinting text (benar gk nih namanya? :hammer:)). Untuk cara pakai baca aja di scriptnya.


Fitur


  • 3 macam efek.
  • Bisa lebih dari 1 teks berefek muncul sekaligus ke layar.



Screenshots

takada


Demo

takada


Scripts
Code:

#===============================================================================
# * Text Effects
#-------------------------------------------------------------------------------
# Cara pakai:
# - Cukup copy paste script ini ke script editor, di atas main
# - Panggil melalui event script sesuai effect yg diinginkan
# - Jangan ubah apapun dalam script kecuali bila anda tahu apa yang anda lakukan
#-------------------------------------------------------------------------------
# Effect yang tersedia saat ini:
# - Fading Text
#  fadingtext(text, x, y, delay[, color, font, size, bold,
#                      italic, shadow])
#
# - Tinting Text
#  tintingtext(text, x, y, delay[, tintdelay, color,
#                      font, size, bold, italic, shadow])
#
# - Zooming Text
#  zoomingtext(text, x, y, delay, initzoom_x, initzoom_y, maxzoom_x,
#                      maxzoom_y, zoomspeed_x, zoomspeed_y,
#                      color, font, size, bold, italic, shadow)
#  Bila ingin membuat zoom yg mengecil, masukkan angka negatif pada zoomspeed_x
#  dan zoomspeed_y
#-------------------------------------------------------------------------------
# Keterangan:
# - text        = text yang akan ditampilkan
# - x          = posisi x dari text yang akan ditampilkan
# - y          = posisi y dari text yang akan ditampilkan
# - delay      = berapa lama(frame) text akan ada di layar
# - tintdelay  = lama waktu sekali kedipan
# - initzoom_x  = zoom x awal dari text
# - initzoom_y  = zoom y awal dari text
# - maxzoom_x  = zoom x maksimal/minimal(tergantung zoomspeed) dari text
# - maxzoom_y  = zoom y maksimal/minimal(tergantung zoomspeed) dari text
# - zoomspeed_x = kecepatan zoom x dari text
# - zoomspeed_y = kecepatan zoom y dari text
# - color      = warna text
# - font        = jenis font
# - size        = ukuran text
# - bold        = cetak tebal
# - italic      = cetak miring
# - shadow      = kurang tau
#-------------------------------------------------------------------------------
# Contoh:
# - fadingtext("heheheh", 300, 100, 600)
# - fadingtext("hehehe", 200, 100, 200, Color.new(255, 0, 255),
#                    "Verdana", 64, true, true, true)
#-------------------------------------------------------------------------------
# Compatibility:
# - Seharusnya sih kompatibel dengan semua script yang ada selama variabel
#  $game_map nya tidak dihilangkan (kayaknya gk bakal ada yg ngilangin deh =)))
#-------------------------------------------------------------------------------
# Term of Use:
# - Bila anda menggunakan script ini, tidak perlu credit juga tidak apa-apa,
#  asalkan anda sopan dan menghargai sesama manusia.
#-------------------------------------------------------------------------------
# Membuat Effect Sendiri:
# - Buat sebuah class baru yang merupakan subclass dari class Sprite_EffecText
#  > class namaclass < Sprite_EffectText
# - Buat constructor dari class itu, yang menerima parameter text, x, y,
#  delay, color, font, size, bold, italic, shadow ditambah dengan yang anda
#  perlukan
#  > def initialize(text, x, y, delay, argumen_saya1, argumen_saya2,
#                    argumen_saya3, color, font, size, bold, italic, shadow)
# - Di dalam constructor itu, panggil constructor induk dengan kata kunci super
#  sebelum anda memulai logika anda
#  > super(text, x, y, delay, color, font, size, bold, italic, shadow)
# - Buat method update, dan panggil super di dalamnya sebelum anda memulai
#  logika anda
#  > def update
#      super
# - Lakukan inisialisasi yang anda mau pada method initialize di setelah super
# - Lakukan logika efek text pada method update setelah super
# - Tambahkan method di bagian Game_Interpreter seperti ini.
#  > def namafungsi(text, x, y, delay, argumen_saya1, argumen_saya2,
#                    argumen_saya3, color, font, size, bold, italic, shadow)
#      $game_map.effecttext.add(namaclass.new(text, x, y, delay, argumen_saya1,
#                                              argumen_saya2, argumen_saya3,
#                                              color, font, size, bold,
#                                              italic, shadow))
#    end
# - Dan selesai. Sekarang anda bisa memanggil fungsi yang anda buat via event
#  script
#-------------------------------------------------------------------------------
# Contoh: Membuat Fading Text
# - Buat sebuah class misalnya bernama Sprite_FadingText
#  > class Sprite_FadingText < Sprite_EffectText
# - Buat constructor. Karena tidak diperlukan method tambahan, maka parameter
#  untuk constructor cukup seperti yang dibutuhkan oleh kelas induk. Di dalam
#  constructor itu, kita panggil constructor kelas induk dengan kata kunci
#  super. Lalu, karena text akan dimulai dari tidak terlihat(transparan), maka
#  kita set opacity-nya menjadi 0
#  > def initialize(text, x, y, delay, color, font, size, bold, italic, shadow)
#      super(text, x, y, delay, color, font, size, bold, italic, shadow)
#      self.opacity = 0
#    end
# - Buat method update untuk logika efek. Efek yang ingin kita buat adalah,
#  untuk waktu 1/3 dari waktu yg ditentukan, text perlahan akan muncul, lalu
#  1/3 waktu berikutnya, teks diam, kemudian 1/3 waktu terakhir, text
#  menghilang perlahan.
#  > def update
#      super
#      if @count <= @delay / 3
#        self.opacity += 255 / (@delay / 3)
#      elsif @count <= @delay / 3 * 2
#      elsif @count <= @delay
#        self.opacity -= 255 / (@delay / 3)
#      end
#    end
# - Lalu, di Game_Interpreter, buat method baru untuk membuat efek teks
#  > def fadingtext(text, x, y, delay, color = Color.new(255, 255, 255),
#                    font = "Arial", size = 32, bold = false, italic = false,
#                    shadow = false)
#      $game_map.effecttext.add(Sprite_FadingText.new(text, x, y, delay, color,
#                                                      font, size, bold,
#                                                      italic, shadow))
#    end
#  Dan skekarang anda sudah bisa membuat efek fade text via event script dengan
#  memasukkan script di atas pada event.
#===============================================================================
class Sprite_EffectText < Sprite
  attr_reader :count
  attr_reader :delay
 
  def initialize(text, x, y, delay, color, font, size, bold, italic, shadow)
    super()
    @text = text
    @delay = delay
    self.x = x
    self.y = y
    self.z = 50
    self.bitmap = Bitmap.new(544, 416)
    self.bitmap.font.name = font
    self.bitmap.font.size = size
    self.bitmap.font.color = color
    self.bitmap.font.bold = bold
    self.bitmap.font.italic = italic
    self.bitmap.font.shadow = shadow
    self.bitmap.draw_text(0, 0, 544, self.bitmap.font.size, text)
    @count = 0
    self.visible = true
  end
 
  def update
    super
    @count += 1
  end
end

class Sprite_FadingText < Sprite_EffectText
  def initialize(text, x, y, delay, color, font, size, bold, italic, shadow)
    super(text, x, y, delay, color, font, size, bold, italic, shadow)
    self.opacity = 0
  end
             
  def update
    super
    if @count <= @delay / 3
      self.opacity += 255 / (@delay / 3)
    elsif @count <= @delay / 3 * 2
    elsif @count <= @delay
      self.opacity -= 255 / (@delay / 3)
    end
  end
end

class Sprite_TintingText < Sprite_EffectText
  def initialize(text, x, y, delay, tintdelay, color, font, size, bold, italic, shadow)
    super(text, x, y, delay, color, font, size, bold, italic, shadow)
    @tintdelay = tintdelay
    self.opacity = 255
  end
 
  def update
    super
    self.visible = !self.visible if @count % @tintdelay == 0
  end
end

class Sprite_ZoomingText < Sprite_EffectText
 def initialize(text, x, y, delay, initzoom_x, initzoom_y, maxzoom_x, maxzoom_y, zoomspeed_x, zoomspeed_y, color, font, size, bold, italic, shadow)
    super(text, x, y, delay, color, font, size, bold, italic, shadow)
    @zoomspeed_x = zoomspeed_x
    @zoomspeed_y = zoomspeed_y
    @maxzoom_x = maxzoom_x
    @maxzoom_y = maxzoom_y
   
    self.zoom_x = initzoom_x
    self.zoom_y = initzoom_y
  end
 
  def update
    super
    if self.zoom_x < @maxzoom_x && @zoomspeed_x > 0
      self.zoom_x += @zoomspeed_x
    elsif self.zoom_x > @maxzoom_x && @zoomspeed_x < 0
      self.zoom_x += @zoomspeed_x
    else
      self.zoom_x = @maxzoom_x
    end
    if self.zoom_y < @maxzoom_y && @zoomspeed_y > 0
      self.zoom_y += @zoomspeed_y
    elsif self.zoom_y > @maxzoom_y && @zoomspeed_y < 0
      self.zoom_y += @zoomspeed_y
    else
      self.zoom_y = @maxzoom_y
    end
  end
end

class EffectText_Manager
  def initialize
    @effecttext = []
  end
 
  def add(effecttext)
    @effecttext.push(effecttext)
  end
 
  def update
    for i in 0 ... @effecttext.size
      next if @effecttext[i] == nil
      @effecttext[i].update
      if @effecttext[i].count > @effecttext[i].delay
        @effecttext[i].dispose
        @effecttext.delete_at(i)
      end
    end
  end
end

class Scene_Map < Scene_Base
  alias anu_update update
  def update
    anu_update
    $game_map.effecttext.update
  end
end

class Game_Map
  attr_reader :effecttext
 
  alias anu_initialize initialize
  def initialize
    anu_initialize
    @effecttext = EffectText_Manager.new
  end
end

class Game_Interpreter
  def fadingtext(text, x, y, delay, color = Color.new(255, 255, 255),
                font = "Arial", size = 32, bold = false, italic = false,
                shadow = false)
    $game_map.effecttext.add(Sprite_FadingText.new(text, x, y, delay, color,
                                                  font, size, bold,
                                                  italic, shadow))
  end
                               
  def tintingtext(text, x, y, delay, tintdelay = 60, color = Color.new(255, 255, 255),
                font = "Arial", size = 32, bold = false, italic = false,
                shadow = false)
    $game_map.effecttext.add(Sprite_TintingText.new(text, x, y, delay,
                                                    tintdelay,color, font,
                                                    size, bold, italic, shadow))
  end
                                                 
  def zoomingtext(text, x, y, delay, initzoom_x = 0.1, initzoom_y = 0.1, maxzoom_x = 5.0, maxzoom_y = 5.0, zoomspeed_x = 0.1, zoomspeed_y = 0.1, color = Color.new(255, 255, 255),
                font = "Arial", size = 32, bold = false, italic = false,
                shadow = false)
    $game_map.effecttext.add(Sprite_ZoomingText.new(text, x, y, delay, initzoom_x, initzoom_y, maxzoom_x, maxzoom_y,
                                                    zoomspeed_x, zoomspeed_y, color, font,
                                                    size, bold, italic, shadow))
  end
end
#===============================================================================


Credits


  • om Kuro dan om Dhoom



FAQ

Q: Ga guna.
A: Biarin.

Q: Bug.
A: Lapor.

Q: Gk ada efek A.
A: Katakan efek A itu bagaimana, mungkin ntar saya bikin.

[VX]Text Effects On Map Empty2011-04-07, 17:15
PostRe: [VX]Text Effects On Map
#2
KID_VX 
Senior
Senior
KID_VX

Level 5
Posts : 959
Thanked : 24
Engine : Multi-Engine User
Skill : Very Beginner
Type : Developer

[VX]Text Effects On Map Vide
Jah gak ada ss :hammer:
Tapi nice dah :)
walopun daku juga tau mau dipake ketika ape :hammer:
BTW bikin ngelag gak nih kalo efeknya banyak banyak :hammer:

Enjoy 8)
[VX]Text Effects On Map Empty2011-04-07, 17:42
PostRe: [VX]Text Effects On Map
#3
bungatepijalan 
Moe Princess
bungatepijalan

Level 5
Posts : 1487
Thanked : 30
Engine : Multi-Engine User
Skill : Intermediate
Type : Developer
Awards:
[VX]Text Effects On Map Vide
Wah menarik jg nih :hmm:
Ijin nyomot denk utk script-ku, kl sempet sih: https://rmid.forumotion.net/t3610-spritefont-text-generator-wip :kabur:
coz ada hubungannya ama yg ini :kabur:
[VX]Text Effects On Map Empty
PostRe: [VX]Text Effects On Map
#4
Sponsored content 




[VX]Text Effects On Map Vide
 

[VX]Text Effects On Map

Topik sebelumnya Topik selanjutnya Kembali Ke Atas 

Similar topics

+
Halaman 1 dari 1

Permissions in this forum:Anda tidak dapat menjawab topik
RPGMakerID :: Scripts & Event Systems :: RMVX Scripts-