lenalenika | Дата: Пятница, 10.04.2015, 17:03 | Сообщение # 1 |
Начинающий игродел
Группа: Пользователи
Сообщений: 85
Награды: 0
Репутация: 1
Статус: Offline
| Как сделать чтобы когда враг терял игрока, он не зависал на блоке( а то пока он преследует всё нормально но как только теряет игрока например на каком нибудь препятствии он зависает на блоке как бы в прыжке)
Сообщение отредактировал Volk - Понедельник, 01.02.2016, 14:57 |
|
| |
BRESS | Дата: Суббота, 11.04.2015, 13:52 | Сообщение # 2 |
Мастер-ломастер
Группа: Администраторы
Сообщений: 3120
Награды: 1
Репутация: 224
Статус: Offline
| Могу ли я глянуть исходные коды?
Для ваших вопросов по Game Maker есть специально созданный форум. Оставьте в покое мою личку. Спасибо за внимание!
|
|
| |
lenalenika | Дата: Суббота, 11.04.2015, 14:08 | Сообщение # 3 |
Начинающий игродел
Группа: Пользователи
Сообщений: 85
Награды: 0
Репутация: 1
Статус: Offline
| В Step врага if have_seen = true { // Walking away from player if enemy is too close.
if obj_player.x > x { dir = 1 // Direction is right. if place_free(x - 5,y) { if distance_to_object(obj_player) < 150 { x -= 3.1 } } } else if obj_player.x < x { dir = -1 // Direction is left. if place_free(x + 5,y) { if distance_to_object(obj_player) < 150 { x += 3.1 } } }
// Walking towards the player.
if obj_player.x > x { if place_free(x - 5, y) // If there isn't a wall left of you... { if distance_to_object(obj_player) > 149 { x += 3.1 } } } else if obj_player.x < x { if place_free(x + 5,y) // If there isn't a wall right of you... { if distance_to_object(obj_player) > 149 { x -= 3.1 } } }
// Jumping Over Things if !place_free(x + 15,y) // If a platform is coming to the right of you... { if !place_free(x,y + 1) // If there is ground under you... { vspeed= (-6 - random(1)) // Jump } } else if !place_free(x - 15,y) // If a platform is coming to the left of you... { if !place_free(x,y + 1) // If there is ground under you... { vspeed= (-6 - random(1)) // Jump } }
// Dodge bullet if distance_to_object(obj_bullet_player) < 75 // If you are too close to bullet... { if obj_player.x < x { if place_free(x + 5,y) { x += 8 // Walks away } } else if obj_player.x > x { if (place_free(x - 5, y)) { x -= 8 // Walks away } } } } И ещё в Step
// Gravity
if place_free(x, y + 1) { gravity = 0.5 } else { gravity = 0 }
// Have Seen
if have_seen = false { if !collision_line(x,y,obj_player.x,obj_player.y,blok09,0,1) || distance_to_object(obj_bullet_player) < 10 { have_seen = true } }
// Changing Sprites
if dir = 1 { image_index = 0 } else if dir = -1 { image_index = 1 }
// Dying
if hp < 1 { instance_destroy() }
// Shooting
if !collision_line(x,y,obj_player.x,obj_player.y,blok09,0,1) { if have_seen = true // If enemy sees you... { if can_attack = true // If enemy can attack... { var shoot; shoot = instance_create(x,y,obj_bullet_enemy) // Create bullet shoot.direction = point_direction(x,y,obj_player.x,obj_player.y) // Bullet direction is player. shoot.speed = 13 // Bullet speed is 15. can_attack = false // Enemy can't attack anymore. alarm[0] = 8 // Enemy can attack in 1/2 second. } } } А в столкновении с блоком просто // Collision
if vspeed > 0 && !place_free(x,y + vspeed) { move_contact_solid(direction,vspeed) }
vspeed = 0 думаю код в таймере для темпа стрельбы не нужен.
|
|
| |
BRESS | Дата: Суббота, 11.04.2015, 21:53 | Сообщение # 4 |
Мастер-ломастер
Группа: Администраторы
Сообщений: 3120
Награды: 1
Репутация: 224
Статус: Offline
| lenalenika, я подразумевал сам исходник игры. Очень сложно сориентироваться, имея весьма смутные представления о проблеме и довольно мудренный скрипт бота :)
Для ваших вопросов по Game Maker есть специально созданный форум. Оставьте в покое мою личку. Спасибо за внимание!
|
|
| |