Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > смена картинки


Автор: tyk 28.9.2003, 22:48
еще вопрос
у меня есть pic1 и pic2 в bmp формате и звук waw1
мне надо чтобы при нажатии кнопки "F" (к примеру)
pic1 на форме сменялось pic2
и воспроизводился звук waw1
помогите плиз
VB 4.0 sad.gif

Автор: Alles 29.9.2003, 02:57
Привет !!! Ну это не проблема.
Ставим в окне свойств pic1 и pic2 Visilbe=False.
А вот со звуком тут мемного по сложней . способов несколько , но самый оптимальный , это подключить функцию API. В General объявляем функцию
Код
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long



Private Sub CommandButton1_Click()
Dim x As Long
If pic1.Visible = True Then pic1.Visible = False: pic2.Visible = True Else pic1.Visible = True: pic2.Visible = False
x = PlaySound("C:\Путь_до_файла", 0, &H1 Or &H10)
End Sub



Автор: tyk 29.9.2003, 09:12
спасибо
еще пару вопросов мона confused.gif

1)
Код

Select Case KeyCode
 Case vbKeyW
    If mPlayer1.Top = Picture1.Top Then
  Unload Me
  End If
  mPlayer1.Top = mPlayer1.Top - 50
 Case vbKeyS
  mPlayer1.Top = mPlayer1.Top + 50
 Case vbKeyA
  mPlayer1.Left = mPlayer1.Left - 50
 Case vbKeyD
  mPlayer1.Left = mPlayer1.Left + 50
End Select

End Sub

это код на движение объекта
но при перемене направления движения он немного подтармаживает (приостанавливается)
и если держать нажатой 2 кнопки а потом одну отпустить то движение останавливается
это можно какнить исправить ?

2) как запретить объекту выезжать за границы picturebox'а
3) можноли какнить загрузить формат рисунка с прозрачностью (не БМП а ГИФ к примеру)
4)как сделать чтоб img1 менялось на img2 и обратно в течении 1 сек

VB 4.0 sad.gif
заранее спасибо

Автор: Mephisto 29.9.2003, 17:36
Цитата
если держать нажатой 2 кнопки а потом одну отпустить то движение останавливается
это можно какнить исправить ?

Можно, необходимо отлавливать нажатие клавиши в таймере.
Цитата
как запретить объекту выезжать за границы picturebox'а

mPlayer1.Width + mPlayer1.Left < PictureBox.Width
Цитата
как сделать чтоб img1 менялось на img2 и обратно в течении 1 сек

Создаешь Timer и ставишь ему Interval в 1000. А далее пишешь по аналогу:
Цитата
If pic1.Visible = True Then pic1.Visible = False: pic2.Visible = True Else pic1.Visible = True: pic2.Visible = False

Автор: tyk 29.9.2003, 20:49
Цитата
QUOTE 
если держать нажатой 2 кнопки а потом одну отпустить то движение останавливается
это можно какнить исправить ?

Можно, необходимо отлавливать нажатие клавиши в таймере.

обьясни плиз
VB 6.0 smile.gif

Автор: Black_Star 29.9.2003, 21:08
Объясняю:

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

Private Sub Timer1_Timer()
If GetAsyncKeyState(vbKeyS) Then 'MooveDown
If GetAsyncKeyState(vbKeyW) Then 'MooveUp
'и т.д.
End Sub

Автор: tyk 30.9.2003, 19:54
ой не то sad.gif
Цитата

QUOTE 
как запретить объекту выезжать за границы picturebox'а

mPlayer1.Width + mPlayer1.Left < PictureBox.Width

вот это обьясните плиз

Автор: Mephisto 30.9.2003, 17:51
Цитата
вот это обьясните плиз


1)проверяешь входит ли твой mPlayer по размерам 0Х в PictureBox:
Код
mPlayer1.Width + mPlayer1.Left < PictureBox.Width

(т.е. правая граница + координаты левого верхнего угла меньше размеров канвы) confused.gif
2)проверяешь не выходит ли левая граница за пределы:
Код
mPlayer1.Left > 0

3)проверяешь не выходит ли верхняя граница за пределы:
Код
mPlayer1.Top > 0

3)проверяешь не выходит ли нижняя граница за пределы:
Код
mPlayer1.Height + mPlayer1.Top < PictureBox.Height

(т.е. верхняя граница + координаты левого верхнего угла меньше размеров канвы) confused.gif

Автор: tyk 1.10.2003, 13:23
спасибо

Автор: tyk 2.10.2003, 20:12
Еще парочку мона ?
1) как загрузить рисунок с прозрачностью ?
2)как сделать так
чтоб в одном файле хранилось 3 картинки (все 3 в одну строчку нарисованы)
и чтоб оттуда загружалась токо одна нужная
или в 2 строки по 2 картинки но тоже тока одна загружалась
хелп плиз

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)