powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Создание объекта shape программно
25 сообщений из 181, страница 6 из 8
Создание объекта shape программно
    #38868086
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, разве что, иметь два шара. Один невидимый, другой видимый. Невидимый двигаешь на новое место, потом делаешь видимым, а старый - невидимым. Таким образом он не будет прыгать вбок а как бы сразу окажется на новом месте
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868095
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProНу, разве что, иметь два шара. Один невидимый, другой видимый. Невидимый двигаешь на новое место, потом делаешь видимым, а старый - невидимым. Таким образом он не будет прыгать вбок а как бы сразу окажется на новом месте
Уже предвкушаю сколько мне нужно будет вас мучить чтобы это реализовать
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868098
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сам справишься.
Просто в контейнере у тебя будут жить два шарика.
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868139
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProПросто в контейнере у тебя будут жить два шарикаможно по-другому сделать. Завести один специальный буферный шар на все случаи (его можно и в дизайне создать). Изначально он невидимый. Перед тем как передвинуть очередной шар, буферному шару присваиваются все свойства старого, он делает видимым, а текущий шар делается невидимым, передвигается на новое место, показывается, а буферный шар прячется.
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868169
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proможно по-другому сделать. Завести один специальный буферный шар на все случаи (его можно и в дизайне создать). Изначально он невидимый. Перед тем как передвинуть очередной шар, буферному шару присваиваются все свойства старого, он делает видимым, а текущий шар делается невидимым, передвигается на новое место, показывается, а буферный шар прячется.
а мерцания не станут еще больше?
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868176
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronа мерцания не станут еще больше?нет, больше не станут
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868215
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proможно по-другому сделать. Завести один специальный буферный шар на все случаи (его можно и в дизайне создать). Изначально он невидимый. Перед тем как передвинуть очередной шар, буферному шару присваиваются все свойства старого, он делает видимым, а текущий шар делается невидимым, передвигается на новое место, показывается, а буферный шар прячется.
Чтобы я раньше времени не залез в дебри для начала выясню для себя алгоритм....
Это будет выглядеть примерно так?:-
1) Создаю в design обычный шейп. Никаких свойств в дизайне ему не устанавливая.
2) Делаю например процедуру "Подстава" в которой устанавливаю ему все свойства, которые есть у оригинала. Т.е.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
  check.Sh.Shape = 3
  check.Sh.FillStyle = vbSolid
  check.Sh.FillColor = 16777216 * Rnd
  check.Sh.Height = 500 + 1000 * Rnd
  check.Sh.Width = 500 + 1000 * Rnd
   check.Sh.Height = 1000
   check.Sh.Width = 1000
  check.StepX = 150 * Rnd
  check.StepY = 200 * Rnd


Кроме св-ва visible которое нужно сделать true в посл. момент.
3) В One_Step я вызываю "Подстава" перед тем, как передвинулся оригинал и делаю подставной шар видимым а оригинал невидимым, двигаю его и делаю снова невидимым. Получается что будет тот же эффект, или я просто неправильно все понял.
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868219
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вроде так, только код непонятен.
ты должен скопировать все свойства с оригинального шейпа, а не задать новые случайные значения
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868226
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proты должен скопировать все свойства с оригинального шейпа, а не задать новые случайные значения

Я это понимаю. Я имел в виду будет так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private sub Podstava()
  Shape1.FillStyle = check.Sh.FillStyle
  Shape1.FillColor = check.Sh.FillColor
  Shape1.Height = check.Sh.Height
  Shape1.Width =  check.Sh.Width 
  Shape1.Heigh  = check.Sh.Height
  Shape1 .Width =  check.Sh.Width 
' Вот сомневаюсь нужны ли эти две строки
  Shape1.left = check.StepX 
  Shape1.top = check.StepY 
End Sub
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868231
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так возьми и подумай, что будет
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868243
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProТак возьми и подумай, что будет
Получается что не нужны. Я вызову эту процедуру из One_step где и укажу
Код: vbnet
1.
2.
3.
4.
Shape1.left =.Left + mama.StepX
  Shape1.top = .Top + mama.StepY
Shape1.Visible=true
.Visible=False 


Потом будет
Код: vbnet
1.
2.
.Left = .Left + mama.StepX
    .Top = .Top + mama.StepY


И затем снова делаю подставной невидимым а оригинал видимым.
Мысль правильная или надо сделать сначала? Просто руководствуюсь тем, что вы говорили о четком представлении алгоритма
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868266
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут два равноценных варианта
хошь, ставь буферный круг на новое место, а потом двигай старый, хошь наоборот - без разницы
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868285
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Ну этот вариант верен 17198493
Или я снова коряво объяснил
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868290
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну вроде да, пробуй
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868331
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proну вроде да, пробуй
Ща буду пробовать. Но я вчера когда уже комп вырубил подумал о том что эффекта может и не быть. Т.к. мерцание у нас происходит почему, потому что сначала шар движется по X потом по Y как бы зигзагообразно. А если мы подключим подставной шейпт и придадим ему все свойства и все законы, отличае будет только в том что он будет появлятся на мгновение до или после основного. Так один хрен он же тоже будет зигзагообразно двигаться. Ну проверю опытно
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868342
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
важно то, что на экран не выводится промежуточное состояние шара, когда он отклонился от траектории.

проверь два варианта - сначала включать новый потом выключать старый или наоборот.
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868380
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proважно то, что на экран не выводится промежуточное состояние шара, когда он отклонился от траектории.
Ага, вместо этого мы будем видеть промежуточное сост. другого шара- буферного. Т.к. будем уже видеть как он отклоняется от траектории
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868400
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
У меня опять неразбериха с этими процедурами. Не знаю что с ними делать. Так понимаю отдельно , а что касается дела. Сразу теряюсь и не понимаю как и что объявлять(((((((((((((((((((((((((((((((
Код: vbnet
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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
Private Sub Timer1_Timer()
 Dim i As Integer
  For i = 1 To UBound(colShapes)
    If One_step(colShapes(i)) Then
       addshape
    End If
  Next i
End Sub

Private Function One_step(ByRef mama As ShaperType) As Boolean
Randomize
With mama.Sh
                       .Visible = False
                       Podstava
                       
    .Left = .Left + mama.StepX
    .Top = .Top + mama.StepY
                       
                       Shape1.Visible = False
                      .Visible = True

If .Left >= Form1.Width - .Width Then
       One_step = True
       mama.StepX = -150 * Rnd
    Else
       One_step = False
    End If
    If .Left <= 0 Then
       mama.StepX = 150 * Rnd
    End If
    If .Top >= Form1.Height - .Width Then mama.StepY = -200 * Rnd
    If .Top <= 0 Then mama.StepY = 200 * Rnd
End With
End Function
Private Sub Podstava()

  Shape1.FillStyle = check.Sh.FillStyle
  Shape1.FillColor = check.Sh.FillColor
  Shape1.Height = check.Sh.Height
  Shape1.Width = check.Sh.Width
  Shape1.Left = .Left + mama.StepX
  Shape1.Top = .Top + mama.StepY
  Shape1.Visible = True
End Sub
Private Sub addshape()
Randomize
Dim check As ShaperType
  Set check.Sh = Me.Controls.Add("VB.Shape", "sh" & UBound(colShapes) + 1)
  check.Sh.Visible = 1
  check.Sh.Shape = 3
  check.Sh.FillStyle = vbSolid
  check.Sh.FillColor = 16777216 * Rnd
  check.Sh.Height = 500 + 1000 * Rnd
  check.Sh.Width = 500 + 1000 * Rnd
  check.StepX = 150 * Rnd
  check.StepY = 200 * Rnd
  ReDim Preserve colShapes(UBound(colShapes) + 1)
  colShapes(UBound(colShapes)) = check
End Sub
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868562
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronбуферного. Т.к. будем уже видеть как он отклоняется от траекторииэто еще почему?
ты же двигаешь буферный шар, пока он невидимый, поэтому не увидишь его промежуточных состояний
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868565
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что такое mama и check в процедуре Podstava()????

Ты как запускаешь проект? Запускай не "Start", а "Start with full compile" - он тебе сразу все ошибки необъявленных переменных покажет
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868574
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProЧто такое mama и check в процедуре Podstava()????
И то и то контейнеры в которых есть круг и его степы по X и Y
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868590
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronShocker.ProЧто такое mama и check в процедуре Podstava()????
И то и то контейнеры в которых есть круг и его степы по X и Yнет. Это неизвестные процедуре объекты.

Бросай это дело и иди курить темы:
- области определения переменных
- написание процедур, параметры процедур
- написание функций, возвращаемые значения
Пока ты с этим не разберешься, бесполезно продолжать
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868611
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Ясно. Хоть посоветуйте какую то хорошую книгу. Много искал, бесплатного в нете мало а если и есть то качество говно, можно глаза сломать!
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868614
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я уже говорил, что посоветовать не могу, не готов перечитывать кучу книг, чтобы что-то посоветовать.

ну хотя бы погугли эти три темы, это же не бином Ньютона, это начальные знания, они будут в ЛЮБОМ учебнике, ну прочитай три разных.

Приходи, когда сможешь на вопрос 17201433 дать ответ, совпадающий с моим
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868617
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProПриходи, когда сможешь на вопрос 17201433 дать ответ, совпадающий с моим
Ладно, спасибо!
...
Рейтинг: 0 / 0
25 сообщений из 181, страница 6 из 8
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Создание объекта shape программно
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]