RGSS 備忘録 その13 動くエネミー

タスクマニアの開発は半永久的に休止することになったので、
タスクマニアのためにとっておいた途轍も無い超秘策スクリプトを
さらけ出したいと思います( ^ω^)

今日やるのは動くエネミーというやつです。
動くと言ってもジャンプしたり攻撃モーションをみせたり
っていうのはムリっす。(´;ω;`)

ここでやるのは、ただゆらゆら動かすって言うだけです。
てっとりばやく説明するとヘラクレスの栄光3みたいに
するって言うことです。( ・`ω・´)

ヘラクレスの栄光と言ったらギリシャの3大RPGのうちの
一つなので知らない人はいないと思いますが。( ^ω^)

まーとりあえずみてみたいという方は下記のスクリプトを
ここに追加っていうところに追加してみてください。
エイリアス使ってないので、ほかの追加スクリプトと競合する
確率大です。そういう場合は、赤い部分だけ対応する部分へ
挿入してみてください。

class Sprite_Battler
  def initialize(viewport, battler = nil)
    super(viewport)
    @battler = battler
    @battler_visible = false
    @effect_type = 0            # エフェクトの種類
    @effect_duration = 0        # エフェクトの残り時間
    @t = rand(720) #★
  end
 
  def update
    super
    if @battler == nil
      self.bitmap = nil
    else
      @use_sprite = @battler.use_sprite?
      if @use_sprite
        motion #★
        self.x = @battler.screen_x + @ax #★
        self.y = @battler.screen_y + @ay #★
        self.z = @battler.screen_z
        update_battler_bitmap
      end
      setup_new_effect
      update_effect
    end
  end
 
  def motion #★
    return unless @battler.movable?
    @ax = (Math.sin(Math::PI * @t * 2 / 360.0) * 10).ceil
    @ay = (Math.sin(Math::PI * @t * 1 / 360.0) * 4).ceil
    @t += 1
    @t = 0 if @t >= 720
  end
end



ヘラクレスの栄光3では、ただ斜めに動いてるだけですが、
ここではリサージュ曲線っていうのを使ってます。( ^ω^)
行動不能になるときちんと止まるようになってます。ヤッタネ( ^ω^)

motionの@ax @ayの部分をいじくってみるとおもしろいかもしれません。
でわみなさん。またです。(^▽^)ノシ
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

残念です

ゲーム製作断念されてしまったんですね…
残念です。

そんな中で恐縮なのですが、
エネミー大量出現を使用させてもらっていまして、
さらに「仲間を呼ぶ」というスキルを使用する敵を作っているのですが、敵の配置が固定されてしまっているためか、敵が最初の状態からどれか倒されない限り
仲間を呼べないという状況になりどうしたらよいのか苦戦しています。
具体的にはDAIpage(ttp://daiambition.web.fc2.com/rgss/dai_called.txt)さんのところのスクリプトを使用させてもらってるのですが…

管理人様のエネミー大量出現と同時に、
仲間を呼ぶスキルを最初から敵が使用できる状態にさせたいのですが、どうにかして実現することは出来ないでしょうか><

( ^ω^)

こんにちわ aptさん
そうなんですよ~。ゲーム制作は断念してしまいました(´;ω;`)ウッ
俺が定年退職してから再開しようかとおもってますので、
あと約30年ほどおまちください。( ^ω^)

で、本題に入りますが、( ・`ω・´)
まず、問題なのは呼んだ仲間をどこに配置するのかと言うことですね。
DAIさんのスクリプトは、エネミーの横幅と、画面上の空間を調べて仲間を呼び出せるかどうか判断するようです。
ですので、最初からエネミーがたくさんいると、どれかたおしてからじゃないと、仲間を呼び出すことができないということになります。
この問題を回避するためには、仲間を呼ぶスキルを使うごとに、俺のスクリプトでエネミー全体を再整列させるという方法をとれば、比較的簡単にできるかもしれませんが、これじゃ だめですかね。
もとからいるエネミーを再整列させないで、きちんとした位置にエネミーを後から登場させるのは、まー、できないことはないとおもいますが、初心者である自分にとっては結構時間がかかることかと思います。(´;ω;`)ウッ

No title

こんばんは^^

お返事いただきありがとうございます。
なるほど…
再整列ですか。
できれば現れた位置のままの状態で戦闘をしたいのですが、やはり難しいでしょうか。
(というかスクリプト初心者の私でも、
なんとなく「隙間を定義しなければけない」とかなんとなく難しそうなことが感じられました…)

ただ、仲間を呼んだときの出現の仕方も演出として出していきたいので、できれば位置関係もリセットせずに、そのままであってほしいです…

というか、
ゲーム製作休止中なのにこんなことを言ってしまって、
本当にごめんなさい><

P.S
昔お作りになられていたという動画、
拝見させていただきました。
自分でキャラメイクできるんですね。
私もこういうゲーム作りたいです…

( ^ω^)

ま、気にしなくて大丈夫ですよ。( ^ω^)
ゲーム作るのやめた分、時間ができましたから。
それに、スクリプトいじるのは頭を使うので、
最近衰えてきた脳にとっていい刺激になりますから( ^ω^)。

それで、
スクリプト見てたらなんとなくできそうな予感がしてきました。
ただ1週間ほど時間をください。
勝手に改造した他人のスクリプトをここで公開するのは
後ろめたいので、いちど俺のメールに連絡をくれませんか?
スクリプトはメールで、送りたいと思いますので( ^ω^)

No title

うわあ!!
極めて個人的なことに対応していただき、
本当に恐縮です…><
時間はかかってしまっても構いません。
考えていただけましただけでもありがたいと思っております。

バグ報告

はじめまして!
AIを賢くするやつを試してみたら、
逃げるで失敗した時にもAIのやつが行動してしまうバグが起きました。
一応報告までに来ました…。
ありがとうございました。

Σ(゜д゜lll)

こちらこそはじめましてアレイドさん
バグ報告ありがとうございます。
すでに今日の記事で修正版を
アップしてありますので、もしよろしかったら
ご利用ください。m(_ _)m

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

Re: No title

むーさん

こちらこそはじめまして( ^ω^)
ここにあります素材はすべて、ご自由にお使いいただけます。
改良も転載も自由です。( ^ω^)
てか、返信遅くなってすみません。(´;ω;`)ウッ

No title

rgss3(ACE)でうごいたっぽいので報告です。
もう張っちゃいますw。

class Sprite_Battler
def initialize(viewport, battler = nil)
super(viewport)
@battler = battler
@battler_visible = false
@effect_type = nil #▲0 # エフェクトの種類
@effect_duration = 0 # エフェクトの残り時間
@t = rand(720) #★
end

def update
super
if @battler == nil
self.bitmap = nil
else
@use_sprite = @battler.use_sprite?
if @use_sprite
motion #★
self.x = @battler.screen_x + @ax #★
self.y = @battler.screen_y/2 + @ay #★
#▲self.y = @battler.screen_y + @ay #★
self.z = @battler.screen_z
update_bitmap #▲update_battler_bitmap
end
setup_new_effect
update_effect
end
end

def motion #★
return unless @battler.movable?
@ax = (Math.sin(Math::PI * @t * 2 / 360.0) * 10).ceil
@ay = (Math.sin(Math::PI * @t * 1 / 360.0) * 4).ceil
@t += 1
@t = 0 if @t >= 720
end
end


▲のところが変更点です。
現状エネミーの初回攻撃のときにX座標が一度だけ飛びますが…

RGSS3で動いたので助かりました。ありがとうございます!\(´ワ`)ノ

以上です。
突然すみませんでした。

プロフィール

Suppon

Author:Suppon
すっぽんでーす。(^▽^)
カルドラ鋭意制作中( ・`ω・´)
Twitter => suppon01
メールはこちらへ
suppon2008@gmail.com

Twitter...

Twitter Reload

最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
ブログ内検索
RSSフィード
リンク
ブロとも申請フォーム

この人とブロともになる