Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Определить массив, lua
yodich
сообщение 27.8.2020, 18:33
Сообщение #1


***

Novice
Сообщений: 90
Регистрация: 24.8.2020
Группа: Пользователи
Наличность: 1
Пользователь №: 19.728
Возраст: 29



Всем привет!

такая проблема, есть код:

Исходный код

--lua

function (p1,p2,p3,p4)

local startX, startY, endX, endY = 0, 0, 1920, 1080
local path = [[F:\image]]
local image = {"Image_0", "Image_1", "Image_2"}

for i=1, #image do

local arr, a = findimage (startX, startY, endX, endY, {path .. "\\" .. image[i] .. ".bmp"}, p1,p2,p3,p4)
--------------------- вот тут уже ума не хватает ---------------------
--пробовал подобным путем сделать, да вот не получается и уже голову сломал как это сделать если честно
if image [1] then
-- если найдена 1 картинка, то выполняем то-то
break
end
if image [2] then
-- если найдена 2 картинка, то выполняем то-то
break
end
if image [3] then
-- если найдена 3 картинка, то выполняем то-то и тд
break
end
--------------------------------------------------------------------------
end
end


Мне в условии нужно определить какая именно картинка найдена из массива чтобы выполнять определенные действия именно по этой картинке.
---
См. правило 1.18


Сообщение отредактировал Fors1k - 28.8.2020, 16:13
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 27.8.2020, 19:27
Сообщение #2


****

Apprentice
Сообщений: 233
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1161
Пользователь №: 15.246
Возраст: 25



я в луа не шарю, но логика например может быть такой : внутри for пишешь if если картинка нашлась что-то вроде if a > 0(просто не знаю как на луа), выполняем break, дальше вне цикла for , условия как у тебя только if i == 1, i == 2 или i == 3.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
yodich
сообщение 27.8.2020, 19:39
Сообщение #3


***

Novice
Сообщений: 90
Регистрация: 24.8.2020
Группа: Пользователи
Наличность: 1
Пользователь №: 19.728
Возраст: 29



Цитата(nykep @ 27.8.2020, 21:27) *

я в луа не шарю, но логика например может быть такой : внутри for пишешь if если картинка нашлась что-то вроде if a > 0(просто не знаю как на луа), выполняем break, дальше вне цикла for , условия как у тебя только if i == 1, i == 2 или i == 3.


спасибо, только так к сожалению не пойдет
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 27.8.2020, 19:42
Сообщение #4


****

Apprentice
Сообщений: 233
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1161
Пользователь №: 15.246
Возраст: 25



ну тогда все как у тебя только условия такие if a > 0 and i == 1 then
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
yodich
сообщение 27.8.2020, 19:55
Сообщение #5


***

Novice
Сообщений: 90
Регистрация: 24.8.2020
Группа: Пользователи
Наличность: 1
Пользователь №: 19.728
Возраст: 29



Цитата(nykep @ 27.8.2020, 21:42) *

ну тогда все как у тебя только условия такие if a > 0 and i == 1 then

так то можно попробовать по идее...
просто получится горкомовский код, мне этого не надо.

могу сделать так:

Код

--lua
local path = [[C:\image]]

local image1 = "Image_0"

local arr, a = findimage (0, 0, 1920, 1080, {path .. "//" .. image1 .. ".bmp"}, 2, 50, 20, 5)
if arr then
    msg ("ok")
    else
    msg ("error")
end


только тоже придется кучу переменных вставлять и каждый раз все переписывать для каждой картинки, мне этого не надо, получится очень много кода

Цитата(nykep @ 27.8.2020, 21:42) *

ну тогда все как у тебя только условия такие if a > 0 and i == 1 then



хотя ладно, пусть будет так, спасибо!)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 27.8.2020, 20:17
Сообщение #6


****

Apprentice
Сообщений: 233
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1161
Пользователь №: 15.246
Возраст: 25



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

for #i 1 3 1
   set #a findimage ()
   if a > 0
     if #i = 1
       //действия
       break
     end_if
     if #i = 2
       //действия
       break
     end_if
     if #i = 3
       //действия
       break
     end_if
   end_if
end_for

Ты же когда сам смотришь на экран видишь красную картинку делаешь одно, видишь синюю делаешь другое, условия у тебя - если красная то, если синяя то. А как иначе заставить делать его то что ты хочешь?
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
yodich
сообщение 27.8.2020, 21:47
Сообщение #7


***

Novice
Сообщений: 90
Регистрация: 24.8.2020
Группа: Пользователи
Наличность: 1
Пользователь №: 19.728
Возраст: 29



Цитата(nykep @ 27.8.2020, 22:17) *
А как иначе заставить делать его то что ты хочешь?


да я уже сделал) у меня функция которая за каждую картинку делает определенные действия. я уже победил и код составил не большой)

спасибо за помощь😎👍
----
См правило 1.8


Сообщение отредактировал Fors1k - 28.8.2020, 16:17
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 28.3.2024, 16:26
Designed by Nickostyle