Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.53/140: Рейтинг темы: голосов - 140, средняя оценка - 4.53
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16

Тестирование полезных кодов и примеров

15.10.2012, 00:56. Показов 29731. Ответов 301
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если Ваш код из темы Готовые решения и полезные коды на Visual Basic 6.0

неправильно собран или неработоспособен, он будет перенесен сюда.

Для доведения кода в рабочее состояние в порядке обсуждения создайте новую тему
2
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.10.2012, 00:56
Ответы с готовыми решениями:

Тестирование полезных скриптов
В этой теме нужно писать: - о багах в выложенных полезных скриптах (закрепленная тема); - ошибках в кодах, на которые ведут ссылки...

Программное тестирование кодов
Доброго! Часто возникает потребность протестить некоторую программку, обычно небольшую. Т.к. в большинстве случаев это надо сделать быстро,...

Cумма кодов четных символов равна сумме кодов нечетных
Даны два поля edit1 и edit2. и кнопка button1. Нужно чтобы при нажатии на кнопку, проверялось: сумма кодов четных символов была равна сумме...

301
 Аватар для Mikle Quits
769 / 286 / 17
Регистрация: 21.01.2023
Сообщений: 465
02.04.2023, 10:31
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от HackerVlad Посмотреть сообщение
Баловство
Предлагаю более продвинутое баловство, типа такого:

Создайте пустой проект, вставьте в форму такой код:
Visual Basic
1
Sub Form_Activate:j=90:x=j:y=x:a=60:b=20:w=ScaleWidth-j:z=255:While DoEvents:t=Timer:While t=Timer:Wend:x=x+a:a=a*(x<w)*(x>j)*2-a:y=y+b:b=b*(y<ScaleHeight-j)*(y>j)*2-b:Cls:Circle(x,y),67,z:Line(0,y-z)-(j,y+z),z,BF:Line(w,y-z)-(w+j,y+z),z,BF:Wend:End Sub
253 байта текста, а какой результат?

Можно определиться с правилами, например, чтобы не провоцировать похожий на обфускацию "говнокод" (как выше), засчитывать размер не в байтах, а в строках, определив, что:
1. В одной строке - один оператор.
2. Пустые строки, комментарии, объявления переменных и служебные строки (типа Option Explicit) не в счёт.
3. Любые настройки свойств формы через окно параметров тоже не в счёт.

Ну и не кидать всё это в "полезные примеры", лучше создать отдельную тему.
Предупреждаю, у меня имеются наработки
2
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
07.04.2023, 20:17
GetProcessUsage точное измерение % загрузки CPU любого конкретного процесса

Я очень долго искал способ как написать эту программу. Прям очень долго. Так что большое спасибо и благодарность Dragokas за то что помог доработать мой многострадальный код, который у меня всё никак не получалось допилить. Спасибо The trick и Dragokas за помощь. Большое спасибо за это! Возможно мы помогаем многим людям, кто интересуется этой темой.

Код формы...
Visual Basic
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
Option Explicit
Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) As Long
 
Private Sub Command1_Click()
    Text1.Text = GetCurrentProcessId
    
    ' Загрузить процессор на 100%
    Do
        DoEvents
    Loop
End Sub
 
Private Sub Command2_Click()
    Dim hwnd As Long
    Dim pid As Long
    
    hwnd = FindWindow(vbNullString, "Program Manager")
    GetWindowThreadProcessId hwnd, pid ' Определить PID процесса Explorer
    
    Text1.Text = pid
End Sub
 
Private Sub Command3_Click()
    Dim i As Long
    
    Do
        For i = 0 To 30000
            DoEvents
        Next
        
        Sleep 50
    Loop
End Sub
 
Private Sub Command4_Click()
    Dim i As Long
    
    Do
        For i = 0 To 15000
            DoEvents
        Next
        
        Sleep 50
    Loop
End Sub
 
Private Sub Command5_Click()
    Text1.Text = GetCurrentProcessId
End Sub
 
Private Sub Command6_Click()
    Dim i As Long
    
    Do
        For i = 0 To 7500
            DoEvents
        Next
        
        Sleep 50
    Loop
End Sub
 
Private Sub Command7_Click()
    Dim hThread As Long
    
    flag = 1
    
    hThread = CreateThread(ByVal 0&, 0, AddressOf thread, ByVal 0&, 0, 0)
    CloseHandle hThread
End Sub
 
Private Sub Form_Load()
    Text1.Text = GetCurrentProcessId
End Sub
 
Private Sub Form_Unload(Cancel As Integer)
    flag = 0
    End
End Sub
 
Private Sub Timer1_Timer()
    If Text1.Text = "" Then Exit Sub
    
    If Text1.Text = GetCurrentProcessId Then
        Label1.Caption = "My PID: "
        Label2.Caption = "My PID: "
    Else
        Label1.Caption = "Another PID: "
        Label2.Caption = "Another PID: "
    End If
    
    Label1.Caption = Label1.Caption & GetProcessUsage(Text1.Text) & "%    это показание менее точное как в обычном диспетчере задач" ' Это точно правильно работает
    Label2.Caption = Label2.Caption & GetProcessUsageByCycleTime(Text1.Text) & "%    это показание более точное, как в программе ProcessHacker" ' А вот тут я не очень уверен
End Sub


Код модуля...
Visual Basic
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
Option Explicit
'/////////////////////////////////////////////////////////////
'// Модуль определения загрузки ЦП для конкретного процесса //
'// Copyright (c) 07.04.2023 by HackerVlad                  //
'// e-mail: vladislavpeshkov@yandex.ru                      //
'// Версия 2.0                                              //
'/////////////////////////////////////////////////////////////
 
' Декларации API
Private Declare Function NtQuerySystemInformation Lib "ntdll.dll" (ByVal infoClass As Long, Buffer As Any, ByVal BufferSize As Long, ret As Long) As Long
Private Declare Function GetMem4 Lib "msvbvm60" (srcAddr As Any, ByRef dstValue As Long) As Long
Private Declare Function GetMem8 Lib "msvbvm60" (src As Any, dst As Any) As Long
Private Declare Sub GetSystemInfo Lib "kernel32" (lpSystemInfo As SYSTEM_INFO)
Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Declare Function QueryProcessCycleTime Lib "kernel32" (ByVal ProcessHandle As Long, CycleTime As Currency) As Long
Private Declare Function QueryPerformanceCounter Lib "kernel32" (ByRef lpPerformanceCount As Currency) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
 
' Константы
Private Const SystemProcessInformation As Long = &H5
Private Const STATUS_INFO_LENGTH_MISMATCH As Long = &HC0000004
Private Const STATUS_SUCCESS As Long = 0
Private Const PROCESS_QUERY_LIMITED_INFORMATION As Long = &H1000
 
' Типы
Private Type SYSTEM_INFO
    dwOemID                     As Long
    dwPageSize                  As Long
    lpMinimumApplicationAddress As Long
    lpMaximumApplicationAddress As Long
    dwActiveProcessorMask       As Long
    dwNumberOfProcessors        As Long
    dwProcessorType             As Long
    dwAllocationGranularity     As Long
    wProcessorLevel             As Integer
    wProcessorRevision          As Integer
End Type
 
' Вычислить загрузку ЦП конкретного запущенного процесса
Public Function GetProcessUsage(Optional pid As Long) As Single
    Dim buf() As Byte
    Dim ret As Long
    Dim getpid As Long
    Dim Offset As Long
    Dim deltaOffset As Long
    Dim UserTime As Currency
    Dim KernelTime As Currency
    Dim UserTimeRet As Currency
    Dim KernelTimeRet As Currency
    Dim GetProcessUsageRet As Currency
    Static OldUserTime As Currency
    Static OldKernelTime As Currency
    Static FirstRun As Boolean
    Dim SInfo As SYSTEM_INFO
    
    If pid = 0 Then pid = GetCurrentProcessId
    
    If NtQuerySystemInformation(SystemProcessInformation, ByVal 0&, 0&, ret) = STATUS_INFO_LENGTH_MISMATCH Then
        ReDim buf(ret - 1)
        
        If NtQuerySystemInformation(SystemProcessInformation, buf(0), ret, ret) = STATUS_SUCCESS Then
            Do
                GetMem4 buf(Offset + &H44), getpid
                If getpid = pid Then ' Эти значения ни чем не отличаются от полученных с помощью GetProcessTimes
                    GetMem8 buf(Offset + &H28), UserTime
                    GetMem8 buf(Offset + &H30), KernelTime
                    Exit Do
                End If
                
                GetMem4 buf(Offset), deltaOffset
                Offset = Offset + deltaOffset
            Loop While deltaOffset
        End If
    End If
    
    If UserTime > 0 And KernelTime > 0 Then
        If FirstRun = False Then
            FirstRun = True
            
            OldUserTime = UserTime
            OldKernelTime = KernelTime
            GetProcessUsage = "0"
            Exit Function
        Else
            GetSystemInfo SInfo
            
            UserTimeRet = (UserTime - OldUserTime)
            KernelTimeRet = (KernelTime - OldKernelTime)
            
            GetProcessUsageRet = (UserTimeRet + KernelTimeRet) / 10 / SInfo.dwNumberOfProcessors
            If GetProcessUsageRet > 100 Then GetProcessUsageRet = 100
            
            GetProcessUsage = Round(GetProcessUsageRet, 2)
            
            OldUserTime = UserTime
            OldKernelTime = KernelTime
        End If
    Else
        GetProcessUsage = "0" ' Иногда UserTime или KernelTime почему-то может быть сразу нулём
    End If
End Function
 
' Вычислить загрузку ЦП конкретного запущенного процесса для Windows Vista и выше
Public Function GetProcessUsageByCycleTime(Optional pid As Long) As Single
    Dim hProc As Long
    Dim CycleTime As Currency
    Dim CyclesDelta As Currency
    Dim ProcessCycles As Currency
    Dim ProcessCycleDelta As Currency
    Dim SInfo As SYSTEM_INFO
    Dim ProcessUsagePercent As Single
    Static OldProcessCycles As Currency
    Static OldCycleTime As Currency
    Static FirstRun As Boolean
    
    If pid = 0 Then
        hProc = GetCurrentProcess()
    Else
        hProc = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, 0, pid)
    End If
    
    If hProc <> 0 Then
        QueryProcessCycleTime hProc, ProcessCycles
        
        If ProcessCycles > 0 Then
            GetSystemInfo SInfo
            
            If FirstRun = False Then
                FirstRun = True
                
                OldProcessCycles = ProcessCycles
                QueryPerformanceCounter OldCycleTime ' Здесь оказывается важно ещё запоминать QueryPerformanceCounter
                
                GetProcessUsageByCycleTime = 0
                Exit Function
            Else
                QueryPerformanceCounter CycleTime
                CyclesDelta = CycleTime - OldCycleTime
                
                ProcessCycleDelta = ProcessCycles - OldProcessCycles
                ProcessUsagePercent = ProcessCycleDelta / CyclesDelta / SInfo.dwNumberOfProcessors / 10
                
                If ProcessUsagePercent > 100 Then ProcessUsagePercent = 100
                
                GetProcessUsageByCycleTime = Round(ProcessUsagePercent, 2)
                
                OldProcessCycles = ProcessCycles
                OldCycleTime = CycleTime
            End If
        End If
        
        If pid <> 0 Then CloseHandle hProc
    End If
End Function


Ещё модуль...
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Option Explicit
 
Public Declare Function CreateThread Lib "kernel32" (lpThreadAttributes As Any, ByVal dwStackSize As Long, _
                                                     ByVal lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, _
                                                     lpThreadId As Long) As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
 
Public flag As Long
 
Public Sub thread(ByVal unUse As Long)
 
    Do
    Loop While GetFlag()
    
End Sub
 
Private Function GetFlag() As Long
    GetFlag = flag
End Function
Вложения
Тип файла: zip GetProcessUsage.zip (11.4 Кб, 14 просмотров)
1
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
16.04.2023, 01:00
Цитата Сообщение от Mikle Quits Посмотреть сообщение
Небольшая игра - логический платформер
TNT
Игра красивая хорошенькая, но у меня сразу начинает сильно шуметь вентилятор и грузить проц очень сильно...
Плюс не очень понятно как прыгать человеком-пауком, я даже первый уровень не прошёл...
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
16.04.2023, 01:05
Получается что игра, абсолютно всегда, даже когда ничего не делаешь и ничего не нажимаешь полностью загружает одно ядро на 100%, у меня 4 ядра поэтому стабильно грузит процессор на 25%, такого быть не должно по идее в норм играх
Миниатюры
Тестирование полезных кодов и примеров  
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
16.04.2023, 01:06
И кстати я так и не понял как достать этот верхний рублик, и какая цель игры тоже не понял, но это уже второстепенное... Не очень-то приятно играть в игру когда начинает сильно шуметь вентилятор...
0
428 / 333 / 61
Регистрация: 29.06.2019
Сообщений: 493
16.04.2023, 01:18
Цитата Сообщение от HackerVlad Посмотреть сообщение
как прыгать человеком-пауком
Пробелом подпрыгиваешь, кладешь бомбу.
И не забываешь слинять при этом
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
16.04.2023, 01:20
Цитата Сообщение от SergioJek Посмотреть сообщение
кладешь бомбу
а какой кнопкой класть бомбу? я вообще не знал что тут можно бомбы ложить
0
428 / 333 / 61
Регистрация: 29.06.2019
Сообщений: 493
16.04.2023, 01:22
Решетки и лестницы рядом при этом аннигилируются.

Добавлено через 58 секунд
Тем же пробелом.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
16.04.2023, 01:29
И кстати исходник не запускается ругается на IDirectSoundBuffer8

Добавлено через 6 минут
Можно было уже и приложить файл dsvb.tlb для людей, хорошо что недавно качал, как раз, этот пример The trick'а с этой библиотекой...
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
16.04.2023, 01:33
Итак удалось запустить исходник с горем пополам, решил выяснить почему нагружает проц на 100%, даже прерывание Ctrl+Break стандартное VB'шное срабатывает ни сразу а с десятой попытки только... Всё же вот в какой процедуре бесконечный кодинг обнаруживается... вот! PaintToDevice! Бесконечно пэинтит что ли...
Миниатюры
Тестирование полезных кодов и примеров  
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
16.04.2023, 01:40
Я не понимаю, если честно, программа в состоянии покоя, ожидания, не должна выполнять никак циклов вообще
0
 Аватар для Mikle Quits
769 / 286 / 17
Регистрация: 21.01.2023
Сообщений: 465
16.04.2023, 08:42
HackerVlad, ты так тщательно искал недостатки, что не нашёл ReadMe с описанием управления.

По нажатию пробела ставится реактивный лифт, на котором можно подняться на 1 ячейку вверх, но нужно быстро убегать - лифт через несколько секунд взрывается, уничтожая рядом всё деревянное.
Цель - собрать все рубли.


Первая карта - самая простая, для ознакомления с механиками, как говорится, целевая аудитория от 3-х до 5-ти.
Кликните здесь для просмотра всего текста
Есть такой анекдот: "Вот я умный, собрал конструктор за 2 недели, а на коробке написано от 3 до 5 лет!"


Цитата Сообщение от HackerVlad Посмотреть сообщение
программа в состоянии покоя, ожидания, не должна выполнять никак циклов вообще
Это касается только программ, основанных на событийной системе, большая часть тех же игр использует цикл ожидания. Это нормально. Как вполне нормально для анимированной программы с софтрендером грузить одно ядро, и, если от этого сразу начинает гудеть вентилятор, возможно, стоит заменить/почистить вентилятор или сменить смазку.

Вот ссылочку на dsvb.tlb действительно надо было дать, я на столько привык, что она есть и зарегистрирована, что часто забываю об этом.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
16.04.2023, 11:39
Цитата Сообщение от Mikle Quits Посмотреть сообщение
возможно, стоит заменить
Нет, стоит ваш код заменить и переделать чтобы не грузить проц, я играю во многие игры, ешё ни одна игра на моём компе не грузила проц на 100% постоянно, а на вашу игру только электричество зря тратить

Добавлено через 4 минуты
В этой игре вообще ничего не надо грузить, пока пользователь не нажмёт на клавиши управления, только тогда чуть-чуть надо производить манипуляции для перемещения человека-паука и всё. Это полный бред грузить проц если я ничего не нажимаю.

Добавлено через 4 минуты
Цитата Сообщение от Mikle Quits Посмотреть сообщение
от этого сразу начинает гудеть вентилятор
Как раз таки это нормально, когда начинает сильно разгоняться и шуметь вентилятор при 100% загрузки ядра. Но не нормально грузить проц на 100% в этой игре.
0
 Аватар для Mikle Quits
769 / 286 / 17
Регистрация: 21.01.2023
Сообщений: 465
16.04.2023, 12:08
Цитата Сообщение от HackerVlad Посмотреть сообщение
В этой игре вообще ничего не надо грузить, пока пользователь не нажмёт на клавиши управления, только тогда чуть-чуть надо производить манипуляции для перемещения человека-паука и всё.
А анимация вращения рублей, а поднятие лифта, а горение ящиков, а дым? И это только видимые, анимированные процессы, а есть ещё невидимые, но отсчитывающие время каждый со своей скоростью.
То есть ты ничего не смотрел, а уже уверенно критикуешь.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
16.04.2023, 12:14
анимашки много проца не должны грузить, как анимированная гифка грузит 0% проца

Добавлено через 1 минуту
Я уверен в том что можно переписать эту игру или создать новую такую же которая не будет грузить проц на 100%. Просто я уверен в этом на 100%. Даже эти анимации не должны сжирать много процессора.
0
 Аватар для Mikle Quits
769 / 286 / 17
Регистрация: 21.01.2023
Сообщений: 465
16.04.2023, 12:43
Цитата Сообщение от HackerVlad Посмотреть сообщение
Даже эти анимации не должны сжирать много процессора.
Эти анимации съедают очень немного, большая часть времени проходит в цикле ожидания. Можно вернуть это время системе с помощью Sleep(), ещё, как вариант, можно всё перевесить на таймеры, вернуться в событийную модель, но той гладкости уже не будет по крайней мере без перенастройки точности системного таймера, а это не всегда корректно работает с фоновыми процессами.
Это раз. А два:
Я запустил сейчас DOOM95 (официальный порт под Винду) - сразу съедено 25% ресурса процессора, то есть 1 ядро из 4-х. И это только стартовое меню, выполненное в обычном VB-like стиле, без анимаций вообще.
Запустил более современный GZDoom - в меню теперь нагрузки нет, но в игре сразу 25%.
Запустил Quake2 - опять съедено 1 ядро, хотя это уже OpenGL, тут уже можно было снизить нагрузку на проц, мои игры с аппаратным ускорением не грузят ядро на 100%.
Заметь, я перечислил не абы какие поделки, а вполне себе знаменитые вещи, на которые равняются. И это игры из времён, когда большая часть ПК были одноядерными.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
16.04.2023, 13:16
half life и counter strike не грузит у меня.
0
 Аватар для Mikle Quits
769 / 286 / 17
Регистрация: 21.01.2023
Сообщений: 465
16.04.2023, 13:33
Цитата Сообщение от HackerVlad Посмотреть сообщение
half life и counter strike не грузит у меня.
У меня они не пускаются на Win7-64, проверил то, что было.
Но, в любом случае, это программы с аппаратным ускорением видео, они и не должны сильно грузить проц.
В моей игре можешь в Sub PlayGame() после строки DoEvents добавить строку Sleep 1, тоже перестанет грузить, анимация становится немного дёрганой (особенно по дыму заметно), впрочем, для такой игры это некритично. Вот в 3D шутере я бы это уже не потерпел.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
16.04.2023, 16:00
Цитата Сообщение от Mikle Quits Посмотреть сообщение
У меня они не пускаются на Win7-64
У меня тоже не все сборки идут, благо у меня этих сборок 10 штук разных

Добавлено через 2 минуты
Я писал игру на таймерах и у меня ничего не грузит проц на 100% и на просто обычном KeyDown клавиш даже
0
 Аватар для Mikle Quits
769 / 286 / 17
Регистрация: 21.01.2023
Сообщений: 465
16.04.2023, 16:12
Цитата Сообщение от HackerVlad Посмотреть сообщение
просто обычном KeyDown
Это тоже событие. А как ты будешь крутить какую-нибудь анимацию между нажатиями KeyDown?
Тут на форуме лежит ещё пара моих игр в другом разделе:
Несколько небольших игрушек
Несколько небольших игрушек
Они обе на выходе используют Direct3D с vsync, и поэтому там нет такой загрузки ядра.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.04.2023, 16:12
Помогаю со студенческими работами здесь

Парочка полезных видеоуроков по C++
323e1ffiYjw AEA7GmPli5Y OH7g2lfsYEU Может какой-нибудь следующий &quot;учитель&quot; посмотрит и передумает делать свои уроки :)

Удаленное тестирование приложение/Пересылка на тестирование
Если кто-то написал приложение под андроид и захочет показать другому человеку, то достаточно отослать apk. А как обстоит с этим дело в...

Unit -тестирование или автоматизированное тестирование
Доброго времени суток. Я программирую «для себя» второй год, на выходе получаются разного рода приложения от постоянно подающих с...

Не Большой Набор Полезных Функций
Функция проверки на наличие не запрещенных символов в поле, где ? - запрещенные символы Function Check_BadSymbols(sStr As String) As...

USBasp - пара возможно полезных плюшек.
Уважаемые коллеги! Возможно то, что я опишу - баян с бородищей. Готов принять справедливую критику. Но вдруг кому-то поможет. Держу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
240
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru