powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Создание объекта shape программно
25 сообщений из 181, страница 5 из 8
Создание объекта shape программно
    #38867944
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_Oneя же писал, что условия надо исправить, там что-то накручено в функции.
Сейчас гляну
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38867951
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего там не выпуливает по три шара.

17196622
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38867984
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
Хахахах хотите прикол. Выпуливало по 3 шара сразу. убрал ети form1.scaleWidt и поставил как было. Теперь стало по 2 шара)))
А как только пытаюсь менять размеры шара, так все норм. По одному выпуливает Как только комментирую эту строку, снова по 2)))
И еще мне интересно почему я не могу сделать размер шаров от 500 до 1000? Они тупо появляются одного размера. А как только ставлю например от 200 до 500, то появляются разных размеров...
Код: vbnet
1.
check.Sh.Width = 500 + 500 * Rnd


Мамой клянусь Хотите через team viewer посмотрите
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38867988
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
просто полный код дай

у меня тоже выпуливает по три шара и больше, но не сразу, а когда как минимум три шара уже летают, они как-то более менее одновременно касаются краев
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38867991
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronИ еще мне интересно почему я не могу сделать размер шаров от 500 до 1000? Они тупо появляются одного размера. А как только ставлю например от 200 до 500, то появляются разных размеров...Кто-нибудь может это перевести на русский? Я не понял, то могу, то не могу.
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38867992
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какой ScaleMode установлен для Form1?
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38867995
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868001
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, понял, почему по несколько
Ты развернул шар, но условие нахождения у края какое-то время продолжает срабатывать (еще два тика таймера), поэтому их и появляется две-три штуки

Нужно грамотно проработать вопрос разворота шара
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868005
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нужно написать функцию расчёта траектории и её юзать с параметрами текущего положения шара на плоскости формы
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868009
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.
Option Explicit
Dim colShapes() As ShaperType
Private Type ShaperType
   Sh As Shape
   StepX As Integer
   StepY As Integer
End Type

Private Sub Form_Load()
Show
  ReDim colShapes(0)
  addshape
  Timer1.Enabled = True
End Sub

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
With mama.Sh
    .Left = .Left + mama.StepX
    .Top = .Top + mama.StepY
    If .Left >= Form1.Width - .Width Then
       One_step = True
       mama.StepX = -200 * Rnd
    Else
       One_step = False
    End If
    If .Left <= 0 Then
       mama.StepX = 200 * Rnd
    End If
    If .Top >= Form1.Height - .Width Then mama.StepY = -300 * Rnd
    If .Top <= 0 Then mama.StepY = 300 * Rnd
End With
End Function

Private Sub addshape()
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.Width = 500 + 500 * Rnd
  check.StepX = 200 * Rnd
  check.StepY = 300 * Rnd
  ReDim Preserve colShapes(UBound(colShapes) + 1)
  colShapes(UBound(colShapes)) = check
End Sub



Shocker.ProКто-нибудь может это перевести на русский? Я не понял, то могу, то не могу.
На русском вроде и писал) Перевести на более понятный для программиста язык сейчас постараюсь.
Когда пишу -
Код: vbnet
1.
check.Sh.Width = 500 + 500 * Rnd

то шары появляются все одинаковые, хотя по смыслу должны появляться шириной от 500 до 1000 твипов
Когда пишу
Код: vbnet
1.
check.Sh.Width = 200 + 500 * Rnd

тогда шары появляются разных размеров - как положено.

Konst_Oneкакой ScaleMode установлен для Form1?
1 Twip
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868013
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотри, что в целом вообще может получаться.
Шар очередным шагом на 200 твипов шагнул к краю формы, при этом пересек его на 180 твипов допустим. Ты меняешь шаг на случайный, он начинает идти в другую сторону, но новый шаг оказывается только 50 твипов. И шар не выходит за пределы края формы за один шаг. Опять срабатывает условие, опять новый шар создается, опять меняется направление. То есть в итоге, шар на какое-то время может вообще «застрять» на краю формы, дергаясь там, пока не получит достаточно большой шаг в нужном направлении, чтобы выскочить из созданного таким образом «поля притяжения», попутно создавая новые шары.

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

поэкспериментируй в дизайне - поймешь
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868022
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProТак что считай математику движения на бумажке
Ясно - понятно))
Ну и так вроде нормально, с моим нерусским объяснением что-то подскажите?
Shocker.ProКто-нибудь может это перевести на русский? Я не понял, то могу, то не могу.
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868023
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя летает не квадрат, а прямоугольник, в этом несколько проблем:
- у круга есть "поля"
- не можешь сделать круг больше его высоты, то есть только растут поля
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868024
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proпотому что ты высоту не трогаешь

поэкспериментируй в дизайне - поймешь

Сорри как-раз писал ответ. Ща гляну
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868026
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProУ тебя летает не квадрат, а прямоугольник, в этом несколько проблем:
- у круга есть "поля"
- не можешь сделать круг больше его высоты, то есть только растут поля
А вот так дотюкал! Даже без design
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868032
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тогда вопрос в другом. Как VB6 сам решил какой у появившегося шара будет ширина и высота?
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868037
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ведь мы вначале определили ему только св-ва Visible и Shape
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868046
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronТогда вопрос в другом. Как VB6 сам решил какой у появившегося шара будет ширина и высота?а какая тебе нафиг разница?
задавай явно

ЗЫ: есть какое-то умолчание.
Если ты дважды щелкнешь в дизайнере по кнопке "шейп" (или любой другой контрол), он появится именно с размерами по умолчанию
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868050
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proа какая тебе нафиг разница?
Молчу, просто интересно
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868053
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне кажется или движение на самом деле отрывистое какое-то. Дело в видео карте или в неслаженой работе таймера и цикла
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868054
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я ссылку давал на пример реализации отскока шаров
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868062
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronМне кажется или движение на самом деле отрывистое какое-то. Дело в видео карте или в неслаженой работе таймера и циклачаще таймер и меньше шаг
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868067
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProvdekameronМне кажется или движение на самом деле отрывистое какое-то. Дело в видео карте или в неслаженой работе таймера и циклачаще таймер и меньше шагкроме того, ты же изменяешь позицию не одновременно, то есть шарик прыгает сначала вбок, потом вниз
...
Рейтинг: 0 / 0
Создание объекта shape программно
    #38868077
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proчаще таймер и меньше шаг
таймер в 40. В книге кот. я читаю написано, что меньше 40 уже нет смысла ставить. в 1сек. таймер не работает больше 18 раз
...
Рейтинг: 0 / 0
25 сообщений из 181, страница 5 из 8
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Создание объекта shape программно
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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