忍者ブログ
「Gamemakerでゲームを作って見よう」 ということで、作業メモっぽい使い方をする予定。 愚痴なんかが多くなるかも・・・
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

前回、「攻撃関連をつくる」などと予告しましたが、まったく違う事をやっていました。
思いつきで
「キャラが坂道を登れるようにしたらすてきかな~」
と早速挑戦してみました。

簡単にできるだろうと考えていたのですが、これがなかなか思うようにいきません。
最初は、坂のオブジェクトに接触したら斜め方向にスピードを加えてやれ、
と考えていたのですが、登らないどころか坂にめり込む始末。
斜面に当たるオブジェクトの当たり判定をPrecise(正確な辺り判定)にしたのですが、これだと、1ドットの階段が出来上がるだけだったようでして、横に進むと同時に縦にも進めなければならなかったようです。
それを実装してみたところ、妙にカクカク動く。
さらには、下りの時に坂から飛び出してしまうという体たらく。
そんなこんなで三日ほど考えていたところで、先達の知恵を借りようと、YOYOGameのフォーラムをうろうろしてみました。
慣れぬ英語に悪戦苦闘しつつ、サンプルらしきものをゲット。
これを自分の作っているゲームの環境に合わせていろいろいじっているうちに、自然と出来てしまいました。
まあつまるところ、ちゃんと理解して出来たというわけではないわけです・・・

自分なりに理解した大まかなやり方としては、
 1.左右の移動の際、移動先の前方、前方上に障害物がないかを調べる。
 2.前方上に障害物がなければ普通に前進、有る場合は障害物がなくなるまで縦    に移動させ続ける。
何のこっちゃという方が多数おられそうですのでコードを載せておきます。

 
if(keyboard_check_direct(global.k_left)) //キー入力があったとき
{
    for(i=-xspeed-2;i<xspeed+2;i+=1)
    {
        if(place_free(x-xspeed,y+vspeed) && place_free(x,y + vspeed + 1)) 
//障害物がなかった時
        {
            x -= xspeed;
            image_xscale = -1;
            exit
        }
        if(place_free(x-xspeed,y-i))//坂にぶつかったとき
        {
            if(!place_free(x,y+5)&& vspeed = 0)
            {
                x -= xspeed;
                image_xscale = -1;
                if(!place_free(x-xspeed,y-i+5))
                {y-=i;}
            }
            exit
        }
    }
}
おそらくなのですが三行目のfor文がポイントなのではないかと・・・
ちなみに、このコードで扱っているのは16×16のキャラクターですので、扱うサイズによって数値をいくつかいじる必要があるかもです。

長くなりましたのでこの辺で。
pict_05.jpg








斜面を実装

拍手

PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
[12]  [11]  [10]  [9]  [8]  [7]  [6]  [5]  [4]  [3]  [2
アクセスカウンター
プロフィール
HN:
性別:
男性
趣味:
読書・ゲーム
自己紹介:
・好きな作家
夢枕獏/綾辻行人/椎名誠/北杜夫/スティーブンキング
・ハマったゲーム
R-TYPE/WILD ARMSシリーズ/イースシリーズ/九龍妖魔学園紀/SIREN/ぐわんげ/プロギアの嵐/エスプレイド/エスプガルーダ/式神の城
カレンダー
04 2025/05 06
S M T W T F S
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
ブログ内検索
最新コメント
[04/30 dean]
[04/29 管理人]
[04/29 dean]
[04/08 管理人]
[04/07 dean]
忍者アナライズ
バーコード
フリーエリア
Copyright (C) Gamemakerでも使ってみる

Template by あでる / Material by 素材くん「無料WEB素材屋」 / 忍者ブログ [PR]