Помогите разобраться с моей программкой
Пожалуйста, помогите мне разобраться с моей программой. Задача написать ездиющую машинку
Проблем несколько
1. При изменении скорости обочины дороги начинают разъезжаться (появляется пустое место между картинками)
2. При достижении края области возможных перемещений машина больше никуда не едет (проблема в условии, но я не могу понять на какое условие его нужно заменить)
Всем зарание спасибо.
Всем привет!
Пожалуйста, помогите мне разобраться с моей программой. Задача написать ездиющую машинку
Проблем несколько
2. При достижении края области возможных перемещений машина больше никуда не едет (проблема в условии, но я не могу понять на какое условие его нужно заменить)
Всем зарание спасибо.
'Вот в этой процедуре и ставятся ограничения на перемещение
Private Sub change_direction(dx As Integer, dy As Integer)
If x <> 0 And x <> 3600 Then x = x + dx
If y > 2000 And y <> 3840 Then y = y + dy
End Sub
В этой процедуре у тебя не обрабатывается ситуация, когда x равен пограничным значениям, поэтому машинка не перемещается.
Добавь :
If x = 0 Then x = 30
If x = 3600 Then x = 3570
или что-то вроде этого.
Остальное посмотрю дома, т.к. нет под рукой VB6.
Я знал, что проблема в том, что x и y получаются равными границе и перестают изменяться при нажатии на кнопки, но что-то не догадался, что это можно так легко исправить. Спасибо!
-->Остальное посмотрю дома, т.к. нет под рукой VB6.
Спасибо, вот с первой проблемой очень сложно мне разобраться. Почему-то постепенно координаты начинают смещаться.
Почему-то постепенно координаты начинают смещаться.
Проблема в том, что координаты обочины привязаны к константам, и к ним же добавляется значение переменной speed, на которую и происходит смещение. Измени в процедуре Timer1_Timer()
If image7_top >= 5160 Then image7_top = Image10.Top - Image7.Height
If image8_top >= 5160 Then image8_top = Image11.Top - Image8.Height
If image10_top >= 5160 Then image10_top = Image7.Top - Image10.Height
If image11_top >= 5160 Then image11_top = Image8.Top - Image11.Height
...
С обочинами все довольно легко было, а вот что делать с полосами разметки? Они тоже начинают разъезжаться! Я максимально упростил все и избавился от всяких ненужных переменных типа image_1_top и т.д Но все равно линии разъезжаются. Какое же можно задать условие для них???
Пожалуйста, помоги!!!
Помоги Host!
С обочинами все довольно легко было, а вот что делать с полосами разметки? Они тоже начинают разъезжаться! Я максимально упростил все и избавился от всяких ненужных переменных типа image_1_top и т.д Но все равно линии разъезжаются. Какое же можно задать условие для них???
Пожалуйста, помоги!!!
У тебя та же ситуация с полосами, что и с обочиной.
Мне сейчас тяжело видеть всю картину, но из того, что видно из блокнота условие должно быть примерно такое:
If Image1.Top >= 5120 Then Image1.Top = Image2.Top + 780 + Image1.Height
780 - расстояние между полосами.
Для упрощения управления рисунком - Нарисуй дорогу с разделительной полосой и обочиной и перемещай одно изображение целиком, тогда будет полная иллюзия движения машинки - асфальт тоже будет передвигаться.
!!! Спасибо за отличный совет!!!
Скажи, пожалуйста, в чем дело. Зарание спасибо.
Все, разрулил я с теми проблемками, но теперь у меня новые появились...
Спасибо тебе Host, еще раз за подробный комментарий к той проге. Я постарался сделать так же как и там, но у меня возникают некоторые затруднения, а именно
у него на форму копируется изображение именно из пиктуре бокса, а не то, что у меня (см. вложенный файл) (копируется то, что должно находиться на месте пиктуре бокса (раб. стол, другие окна и т. д)). Как тот парень решил эту проблему?
У меня не получается добиться прозрачности машинки. Вроде я сменил цвета, но все равно ничего не выходит.
Пожалуйста помогите!!!
Всем привет!
Все, разрулил я с теми проблемками, но теперь у меня новые появились...
Спасибо тебе Host, еще раз за подробный комментарий к той проге. Я постарался сделать так же как и там, но у меня возникают некоторые затруднения, а именно
у него на форму копируется изображение именно из пиктуре бокса, а не то, что у меня (см. вложенный файл) (копируется то, что должно находиться на месте пиктуре бокса (раб. стол, другие окна и т. д)). Как тот парень решил эту проблему?
У меня не получается добиться прозрачности машинки. Вроде я сменил цвета, но все равно ничего не выходит.
Пожалуйста помогите!!!
Обрати внимание, что для прозрачности используется два изображения - картинка и маска.
BitBlt(...,SRCAND) - копируем маску
BitBlt(...,SRCPAINT) - копируем изображение на маску
или BitBlt(...,MERGEPAINT) - копируем изображение на маску, если необходимо инвертировать цвета.
Теперь у меня отличная машинка получилась))
Но что делать с тем, чтобы на форму копировалась изображение из пиктуре бокса, а не то, что находится над ним?