2017-06-14 8 views
1

私はゲームメーカーのスタジオ2でゲームを作っています。それはフットボールのようなものですが、飛んでいます。私はちょうど動きとjetpackコントロールを作って、昨夜は動いていたが、私が今朝それを起動したとき、これが起こった。通常、移動すると、1つのイメージ(スプライト)だけが表示されますが、そのイメージがどこにあったのかを示していて、そこにイメージを残していました。私はそれがRAMのエラーか、私はコードで何か間違っていたかどうかはわかりません。背景にスプライトの「幽霊」が残っているのはなぜですか? GMS 2

コード:プレイヤオブジェクトで ステップイベントが

/// @description Movement logic 
// Get the input 
var x_input = (keyboard_check(vk_right) - keyboard_check(vk_left)) * acceleration_; 

// Vector variables 
var vector2_x = 0; 
var vector2_y = 1; 

// Horizontal movement 
velocity_[vector2_x] = clamp(velocity_[vector2_x]+x_input, -max_velocity_[vector2_x], max_velocity_[vector2_x]); 
var on_ground = tile_collide_at_points(collision_tile_map_id_, [bbox_left, bbox_bottom], [bbox_right-1, bbox_bottom]); 
if keyboard_check(vk_right){ 
    if on_ground { 
    sprite_index = spr_player_ground_right 
    direction_=0 
    } 
    else { 
    sprite_index = spr_player_flying_right 
    direction_=0 
    } 
} 

if keyboard_check(vk_left){ 
    if on_ground { 
    sprite_index = spr_player_ground_left 
    direction_=1 
    } 
    else { 
    sprite_index = spr_player_flying_left 
    direction_=1 
    } 
} 

// Friction 
if x_input == 0 { 
    velocity_[vector2_x] = lerp(velocity_[vector2_x], 0, .2); 
} 


// Gravity 
velocity_[vector2_y] += gravity_; 

// Move and contact tiles 
move_and_contact_tiles(collision_tile_map_id_, 64, velocity_); 

// Jumping 
var on_ground = tile_collide_at_points(collision_tile_map_id_, [bbox_left, bbox_bottom], [bbox_right-1, bbox_bottom]); 
//if on_ground { 
    // Jumping 
    if keyboard_check(vk_space) { 
     velocity_[vector2_y] = -jump_speed_; 
     if direction_=0 { 
     sprite_index = spr_player_flying_right 
     direction_=0 
     } 
     else { 
     sprite_index = spr_player_flying_left 
     direction_=1 
     } 
    } 
//} 

私はそのコードがそれをカバーすべきだと思う選手オブジェクト

/// @description Movement variables 
velocity_ = [0, 0]; 
gravity_ = 0.3; 
jump_speed_ = 4; 
max_velocity_ = [8, 32]; 
acceleration_ = 2.1; 
direction_ = 0; 

// Get the tilemap id 
var layer_id = layer_get_id("CollisionTiles"); 
collision_tile_map_id_ = layer_tilemap_get_id(layer_id); 

でイベントを作成します。

答えて

2

背景を描画する現在のルームでこのチェックボックスを無効にしましたか? その場合は再チェックしてください。

注意:これはgm8ですが、同じである必要があります。

Check Draw Backgrund

+0

私はspr_crowdスプライトを選択したときに、それは「ゴースト」を残すことが分かりました。どうすればこの問題を解決できますか? –

+0

あなたが提供したものは、私があなたを助けるのに十分ではありません。私は少なくともスクリーンショットが必要です。 – Daedric

+0

背景の不具合で、画像が画面に表示されず、「ゴースト」効果が発生しました。ご協力いただきありがとうございます! –

関連する問題