Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 08.08.2012
Сообщений: 15

System.ArgumentException при попытке снять скриншот с игры и получить цвет пиксела

06.01.2014, 01:05. Показов 2106. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят помогите пожалуйста, работает некоторое время, потом летит к чертям.


VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
Public Function GetScreenshot() As Bitmap
        Dim controlSize As Size = GetControlSize()
        Dim bmp As New System.Drawing.Bitmap(controlSize.Width, controlSize.Height)
        Dim g As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(bmp)      
        Dim dc As IntPtr = g.GetHdc()
 
        SendMessage(game, WM_PAINT, IntPtr.Zero, IntPtr.Zero)
        PrintWindow(game, dc, 0)
 
        g.ReleaseHdc()
        g.Dispose()
        Return bmp
    End Function
Dim dc As IntPtr = g.GetHdc()


вот что выдает:
Первый этап обработки исключения типа "System.InvalidCastException" в приложении Microsoft.VisualBasic.dll
Первый этап обработки исключения типа "System.ArgumentException" в приложении System.Drawing.dll
Первый этап обработки исключения типа "System.ArgumentException" в приложении System.Drawing.dll
Первый этап обработки исключения типа "System.InvalidCastException" в приложении Microsoft.VisualBasic.dll
Первый этап обработки исключения типа "System.InvalidCastException" в приложении Microsoft.VisualBasic.dll
Первый этап обработки исключения типа "System.ArgumentException" в приложении System.Drawing.dll
Первый этап обработки исключения типа "System.ArgumentException" в приложении System.Drawing.dll
Первый этап обработки исключения типа "System.ArgumentException" в приложении System.Drawing.dll
Первый этап обработки исключения типа "System.ArgumentException" в приложении System.Drawing.dll
Первый этап обработки исключения типа "System.ArgumentException" в приложении System.Drawing.dll
Первый этап обработки исключения типа "System.ArgumentException" в приложении System.Drawing.dll
Первый этап обработки исключения типа "System.ArgumentException" в приложении System.Drawing.dll
Первый этап обработки исключения типа "System.ArgumentException" в приложении System.Drawing.dll

Без понятия что это, работало идеально, потом начало вылетать
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.01.2014, 01:05
Ответы с готовыми решениями:

System.ArgumentException в System.Drawing.dll при работе с Gif
Необработанное исключение типа "System.ArgumentException" произошло в System.Drawing.dll using System; using...

Получить цвет пиксела из Image *.jpg
void __fastcall TForm1::Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { TColor...

Как получить цвет пиксела в активном окне
Как сделать GET PIXEL в активном окне?! И клик по нему... Допустим, находится, определенный пиксель, и по нему, моментальный клик мыши,...

8
1652 / 715 / 47
Регистрация: 11.03.2012
Сообщений: 1,855
Записей в блоге: 1
06.01.2014, 01:10
TalasD, попробуй запустить не из студии.
0
0 / 0 / 0
Регистрация: 08.08.2012
Сообщений: 15
06.01.2014, 01:31  [ТС]
Цитата Сообщение от Release Посмотреть сообщение
TalasD, попробуй запустить не из студии.

Вот что выдало при обычном запуске.
Еще увидел что при запуске проги используется 20-25% ОЗУ, и поминутно растет, и вылетает в пределах 55%.

Можт нужно память освобождать? Можт не хватает? (но я не знаю как)

Подробная информация об использовании оперативной
(JIT) отладки вместо данного диалогового
окна содержится в конце этого сообщения.

************** Текст исключения **************
System.ArgumentException: Недопустимый параметр.
в System.Drawing.Bitmap..ctor(Int32 width, Int32 height, PixelFormat format)
в System.Drawing.Bitmap..ctor(Int32 width, Int32 height)
в WindowsApplication1.Form1.GetScreenshot( )
в WindowsApplication1.Form1.get_gstate()
в WindowsApplication1.Form1.work()
в WindowsApplication1.Form1.GameTimer_Tick (Object sender, EventArgs e)
в System.Windows.Forms.Timer.OnTick(EventA rgs e)
в System.Windows.Forms.Timer.TimerNativeWi ndow.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.Callba ck(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Загруженные сборки **************
mscorlib
Версия сборки: 4.0.0.0
Версия Win32: 4.0.30319.1008 (RTMGDR.030319-1000)
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
mBot
Версия сборки: 1.0.0.0
Версия Win32: 1.0.0.0
CodeBase: file:///C:/Users/ManeS/AppData/Local/Apps/2.0/WPMWG3X0.ACO/0K5318C6.Y12/mbot..tion_7e30838779967016_0001.0000_fc 073c1688f081b9/mBot.exe
----------------------------------------
Microsoft.VisualBasic
Версия сборки: 10.0.0.0
Версия Win32: 10.0.30319.1 built by: RTMRel
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------
System
Версия сборки: 4.0.0.0
Версия Win32: 4.0.30319.1001 built by: RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Core
Версия сборки: 4.0.0.0
Версия Win32: 4.0.30319.233 built by: RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Windows.Forms
Версия сборки: 4.0.0.0
Версия Win32: 4.0.30319.1002 built by: RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
Версия сборки: 4.0.0.0
Версия Win32: 4.0.30319.1001 built by: RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Runtime.Remoting
Версия сборки: 4.0.0.0
Версия Win32: 4.0.30319.1 (RTMRel.030319-0100)
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
----------------------------------------
System.Drawing.resources
Версия сборки: 4.0.0.0
Версия Win32: 4.0.30319.1 built by: RTMRel
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing.resources/v4.0_4.0.0.0_ru_b03f5f7f11d50a3a/System.Drawing.resources.dll
----------------------------------------
System.Windows.Forms.resources
Версия сборки: 4.0.0.0
Версия Win32: 4.0.30319.1 built by: RTMRel
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------
mscorlib.resources
Версия сборки: 4.0.0.0
Версия Win32: 4.0.30319.1 (RTMRel.030319-0100)
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/mscorlib.resources.dll
----------------------------------------

************** Оперативная отладка (JIT) **************
Для подключения оперативной (JIT) отладки файл .config данного
приложения или компьютера (machine.config) должен иметь
значение jitDebugging, установленное в секции system.windows.forms.
Приложение также должно быть скомпилировано с включенной
отладкой.

Например:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

При включенной отладке JIT любое необрабатываемое исключение
пересылается отладчику JIT, зарегистрированному на данном компьютере,
вместо того чтобы обрабатываться данным диалоговым окном.

Добавлено через 13 минут
Цитата Сообщение от Release Посмотреть сообщение
TalasD, попробуй запустить не из студии.
в общем программа начинает работать с 5мб озу, и постепенно сжирает до 2ГБ, и на 2ГБ сразу и вылетает.
Теперь ясно в чём проблемма, не хватает памяти.

я не знаток, но подскажите пожалуйста как освободить память приложения?
0
1652 / 715 / 47
Регистрация: 11.03.2012
Сообщений: 1,855
Записей в блоге: 1
06.01.2014, 09:57
TalasD, для начала нужно разобраться, что вы хотите в итоге получить. Скриншот окна игры, так? То есть у вас еще игра одновременно запущена?
0
0 / 0 / 0
Регистрация: 08.08.2012
Сообщений: 15
06.01.2014, 11:02  [ТС]
Цитата Сообщение от Release Посмотреть сообщение
TalasD, для начала нужно разобраться, что вы хотите в итоге получить. Скриншот окна игры, так? То есть у вас еще игра одновременно запущена?
Да, правильно. Постоянно удивляюсь программистам.

Добавлено через 23 минуты
Цитата Сообщение от Release Посмотреть сообщение
TalasD, для начала нужно разобраться, что вы хотите в итоге получить. Скриншот окна игры, так? То есть у вас еще игра одновременно запущена?
получить цвет определенного пикселя используя скрин

VB.NET
1
 GetScreenshot().GetPixel(x, y)
0
1652 / 715 / 47
Регистрация: 11.03.2012
Сообщений: 1,855
Записей в блоге: 1
06.01.2014, 12:13
TalasD, выложи полный проект, я посмотрю все детально.
0
0 / 0 / 0
Регистрация: 08.08.2012
Сообщений: 15
07.01.2014, 15:25  [ТС]
вот так как-то..
можно критиковать, учусь ведь

VB.NET
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
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
Imports System.Runtime.InteropServices
 
Public Class Form1
 
    Public game As Integer
    'hwnd
 
    Public gState As String
 
    Public combi As Integer = 1
    'combo index
 
    Public wins As Integer = 0
    Public loses As Integer = 0
    'statistic
 
 
    Public f_350_350 = 25525116954
 
    'coords
 
    <StructLayout(LayoutKind.Sequential)> _
    Public Structure RECT
        Public Left As Integer
        Public Top As Integer
        Public Right As Integer
        Public Bottom As Integer
    End Structure
 
    Const WM_KEYDOWN As UInteger = &H100
    Const WM_KEYUP As UInteger = &H101
    Const WM_PAINT As Int32 = &HF
    Const WM_LBUTTONDOWN As Int32 = &H201
    Const WM_LBUTTONUP As Int32 = &H202
 
    <DllImport("User32.dll", SetLastError:=True)> _
    Private Shared Function PrintWindow(ByVal hwnd As IntPtr, ByVal hDC As IntPtr, ByVal nFlags As UInteger) As Boolean
    End Function
 
    <DllImport("user32.dll", CharSet:=CharSet.Auto, SetLastError:=False)> _
    Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As Int32, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr
    End Function
 
    Public Sub ClickControl(ByVal x As Integer, ByVal y As Integer)
        Dim coords As Integer = (y << 16) + x
        Dim lParam As New IntPtr(coords)
        PostMessage(game, WM_LBUTTONDOWN, IntPtr.Zero, lParam)
        PostMessage(game, WM_LBUTTONUP, IntPtr.Zero, lParam)
    End Sub
 
    Public Function GetControlSize() As Size
        Dim rect As RECT
        GetWindowRect(game, rect)
        Return New Size(rect.Right - rect.Left, rect.Bottom - rect.Top)
    End Function
    Public Function GetPx(ByVal lx, ByVal ly)
        Dim controlSize As Size = GetControlSize()
        Dim bmp As New System.Drawing.Bitmap(controlSize.Width, controlSize.Height)
        Dim g As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(bmp)
        Dim dc As IntPtr = g.GetHdc()
 
        SendMessage(game, WM_PAINT, IntPtr.Zero, IntPtr.Zero)
        PrintWindow(game, dc, 0)
 
        g.ReleaseHdc()
        g.Dispose()
        Dim z = bmp.GetPixel(lx, ly)
        Dim zz = z.A.ToString + z.R.ToString + z.G.ToString + z.B.ToString
        Return zz.ToString
 
    End Function
 
    Public Function GetPixelColor(ByVal x As Integer, ByVal y As Integer) As Color
        'Return GetScreenshot().GetPixel(x, y)
    End Function
    <DllImport("user32.dll", SetLastError:=True)> _
    Private Shared Function PostMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As <MarshalAs(UnmanagedType.Bool)> Boolean
    End Function
 
    <DllImport("user32.dll")> _
    Private Shared Function GetWindowRect(ByVal hWnd As IntPtr, ByRef lpRect As RECT) As <MarshalAs(UnmanagedType.Bool)> Boolean
    End Function
 
    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
    Private Shared Function FindWindow( _
     ByVal lpClassName As String, _
     ByVal lpWindowName As String) As IntPtr
    End Function
 
    Public Delegate Function CallBack(ByVal hWnd As Integer, ByVal lParam As Integer) As Boolean
    Public Declare Function EnumWindows Lib "user32" (ByVal x As CallBack, ByVal lParam As Integer) As Integer
    Public Declare Function EnumChildWindows Lib "user32" (ByVal hWndParent As System.IntPtr, ByVal x As CallBack, ByVal lParam As Integer) As Integer
    Dim list As New ArrayList()
 
    Public Function ReportMain(ByVal hwnd As Integer, ByVal lParam As Integer) As Boolean
        EnumChildWindows(hwnd, AddressOf ReportChild, 0)
        Return True
    End Function
 
    Public Function ReportChild(ByVal hWnd As Integer, ByVal lParam As Integer) As Boolean
        list.Add(hWnd)
        Return True
    End Function
 
    Public Function get_gstate()
        Dim a = GetPx(100, 105)
        Return a
    End Function
 
    Public Function get_fstate()
        Dim b = GetPx(350, 350)
 
        If b = f_350_350 Then
            Return "ok"
        End If
    End Function
 
 
    Public Function start_battle()
        ClickControl(50, 300)
        Me.combi = 1
    End Function
 
    Public Function addlog(ByVal txt)
        Log.Text = txt + vbNewLine + Log.Text
    End Function
 
    Public Function work()
 
        Dim a = get_gstate()
        Select Case a
            Case 255173148112
                '255917452
                ' loka
                'addlog(TimeString + ": Начинаю бой")
                start_battle()
            Case 255151617
                ' fight
                If get_fstate() = "ok" Then
                    ffight(combi)
                End If
            Case 255117118118
                ' ozhidanie konca boya
                combi = 1
            Case 255168151137
                ' mob not respawn
                ClickControl(370, 415) 'ok
            Case 255197184166
                addlog(TimeString + ": Победа")
                Me.wins += 1
                Label2.Text = "Победы: " + Me.wins.ToString
                ClickControl(350, 565) 'ok
            Case 255216188141
                addlog(TimeString + ": Победа +")
 
                Me.wins += 1
                Label2.Text = "Победы: " + Me.wins.ToString
                ClickControl(365, 635) 'ok
            Case Else
                ' takogo ne mozhet bit
 
                'addlog("Херня каято a = " + a)
        End Select
 
    End Function
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'Dim gp = GetPixelColor(TextBox1.Text, TextBox2.Text)
        'Dim pixel = gp.A.ToString + gp.R.ToString + gp.G.ToString + gp.B.ToString
        'Dim val = TextBox1.Text + ", " + TextBox2.Text + " : " + pixel.ToString
        'TextBox3.Text += val + vbNewLine
        'start_battle()
        'ClickControl(TextBox1.Text, TextBox2.Text)
    End Sub
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim Handle As IntPtr = FindWindow(vbNullString, "eXtreme")
        ReportMain(Handle, 0)
        ReportChild(Handle, 0)
 
        For i = 0 To list.Count - 1
            Dim размер As RECT
 
            GetWindowRect(list.Item(i).ToString, размер)
            Dim ширина As Integer = размер.Right - размер.Left
            Dim высота As Integer = размер.Bottom - размер.Top
            If ширина = 730 And высота = 730 Then
                Me.Text = 1
                stext1.Text = "Окно найдено, можно начинать"
                stext1.ForeColor = Color.Green
                Label1.Text = list.Item(i)
                game = list.Item(i)
 
            End If
            'If (ширина <> 0 Or высота <> 0) Then
            'ListBox1.Items.Add(list.Item(i) & ", " & ширина & ", " & высота)
            'End If
 
 
        Next
    End Sub
    Public Function ffight(ByVal combi As Integer)
        Dim i = combi
        'addlog(TimeString + ": делаю удар " + i.ToString)
 
 
        'ClickControl(385, 290) 'top
        'ClickControl(410, 345) 'mid
        'ClickControl(390, 400) 'bot
        Select Case i
            Case 1
                ClickControl(390, 400)
                'ClickControl(385, 290)
                Me.combi = 2
            Case 2
                ClickControl(385, 290) 'top
                Me.combi = 3
            Case 3
                ClickControl(385, 290) 'top
                Me.combi = 4
            Case 4
                ClickControl(410, 345) 'mid
                Me.combi = 1
        End Select
 
 
    End Function
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        If Button2.Text = "Включить" Then
            Button2.Text = "Выключить"
            Button2.BackColor = Color.LimeGreen
            GameTimer.Enabled = True
        Else
            Button2.Text = "Включить"
            Button2.BackColor = Color.Pink
            GameTimer.Enabled = False
        End If
 
    End Sub
 
    Private Sub GameTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GameTimer.Tick
        work()
    End Sub
End Class
0
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
09.01.2014, 15:35
Хм.. На вид не кажется, что этот код способен работать с DirectX. А если не способен, то почему бы не использовать встроенное в .NET средство получения картинки с экрана Graphics.CopyFromScreen?

Или всё-таки способен?
0
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 7
09.01.2014, 17:02
Лучьше-бы зип архивом отправил.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.01.2014, 17:02
Помогаю со студенческими работами здесь

Доступ к видеопамяти: получить и изменить цвет пиксела экрана
Доброго времени суток! Задача такая - получить и изменить цвет пиксела экрана (хочу сделать изображение на экране размытым). Причем не...

Исключение "System.ArgumentException" в System.Drawing при вызове ellipse.Clear()
Я хочу создать приложение которое будет называться &quot;магический шар&quot; нажимаешь на старт появляеться желто-зеленый шар и он как будто...

System.ArgumentException при печати с помощью PrintDocument
Делаю программу. Сделал печать таблицы с помощью компонента PrintDocument. Сделал кнопку, прописал, ошибок нет. private void...

Исключение 'System.ArgumentException' при доступе к картинке в WebBrowser
Собственно сабж. В цыкле идет проверка двух картинок, та что в браузере сейчас и та что была рание сохраненная с браузера и присвоена...

Получить скриншот экрана из игры
Добрый день. Подскажите, пожалуйста, как можно получить скриншот экрана, если запущена игра. Screen.GetBounds и дальнейшие танцы дают...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru