Понедельник, 21 Июля 2025, 00:04

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
Nick_RimerДата: Пятница, 12 Сентября 2014, 23:12 | Сообщение # 181 | Тема: Решаем задачи по Construct Classic [вопрос-ответ]
заслуженный участник
Сейчас нет на сайте
Anthem,
Так, я спросить забыл, тебя интересует С2 или СС?
Буду дома через минут 40, попробую замутить пример.

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

Добавлено (12.09.2014, 23:12)
---------------------------------------------
Anthem,
Я решил твою задачу. По крайней мере, я надеюсь, что я её решил так, как ты хотел.

В исходнике 4 переключателя в виде треугольников. Одна из вершин отмечена жирной точкой. В начале уровня все выключатели перемешаны в одном из четырёх положений (0, 90, 180, 270 и 360 градусов).
Требуется поставить все выключатели в положение, когда точка находится вверху. Как только это условие будет выполнено, ты получишь соответствующее сообщение.

В общем, это вроде практически твоя задача. Только вместо переключателей у тебя поля, и они не вращаются, а чё-то для меня непонятное делают biggrin не суть. Главное, что у меня идёт проверка по углу, а у тебя будет идти проверка по значению переменной. Соответственно, моё условие, что все треугольники стоят правильно, это аналогия твоему состоянию, что все поля имеют по единице. Надеюсь, я правильно всё понял.
Моя проверка проста и заключается в том, что выключатель в верном положении прибавляет к глобальной переменной 1. Соответственно, когда глобальная переменная будет равна количеству выключателей - все находятся в верном положении.

Вот исходник: скачать
Версия актуальна для CC r2
Срок хранения файла 30 дней

P.S. Если что-то не так, я переделать могу. Там внутри есть небольшие комментарии. Но по любым вопросам обращайся, если что happy


- Доброе утро, Агент Пи!
Nick_RimerДата: Пятница, 12 Сентября 2014, 15:00 | Сообщение # 182 | Тема: Решаем задачи по Construct Classic [вопрос-ответ]
заслуженный участник
Сейчас нет на сайте
Anthem,
в System есть событие For each object и For each object (ordered). В первом случае событием будут пройдены все объекты указанного типа (порядок может быть внезапным). Во втором случае ты устанавливаешь правило для порядка обхода и направление (по возрастанию или убыванию).
У меня сейчас нет времени писать тебе код, мне нужно срочно уйти к врачу. Попробуй сам потеребить эти свойства. Если ничего не выйдет, я вечером (после 22 Мск) могу помочь.


- Доброе утро, Агент Пи!

Сообщение отредактировал Nick_Rimer - Пятница, 12 Сентября 2014, 15:01
Nick_RimerДата: Пятница, 12 Сентября 2014, 13:39 | Сообщение # 183 | Тема: Решаем задачи по Construct Classic [вопрос-ответ]
заслуженный участник
Сейчас нет на сайте
Accce, я понял, о чём ты, но, кстати, не помню, как это делается.. и вспомнить почему-то не удаётся (а ведь делал). Раз ты уж выяснил, то напомни, что надо сделать biggrin

- Доброе утро, Агент Пи!
Nick_RimerДата: Пятница, 12 Сентября 2014, 12:11 | Сообщение # 184 | Тема: Решаем задачи по Construct Classic [вопрос-ответ]
заслуженный участник
Сейчас нет на сайте
Accce,
назначить управление для второго игрока - легко.

В правой панели Project выдели Application 1 (см. скриншот)
В панели слева появятся свойства приложения. Пролистай их вниз, найди строку Manage Controls и щёлкни по подсвеченному синим тексту Add/Edit. Появится табличка, в которой уже назначены все клавиши для первого игрока.
В этой таблице можно как менять уже существующие клавиши, так и добавлять новые. Также можно действие удалить вообще или запретить его - выбирать в списке кнопок вариант (Disabled). Для каждого действия можно выбирать игрока, которому принадлежит это действие.



- Доброе утро, Агент Пи!

Сообщение отредактировал Nick_Rimer - Пятница, 12 Сентября 2014, 12:12
Nick_RimerДата: Пятница, 12 Сентября 2014, 10:17 | Сообщение # 185 | Тема: Решаем задачи по Construct Classic [вопрос-ответ]
заслуженный участник
Сейчас нет на сайте
Accce,
Я уверен очень сильно, что мешает двойная проверка одного и того же условия (строки 2 и 5 в твоём примере). Вообще так делать неправильно. Учись пользоваться ELSE!!!

Я накидал тебе простой исходник, в котором реализовал два типа перемещений.
Зелёные порталы работают по твоему принципу (найди отличия от своего варианта; увидишь отсутствие совершенно бесполезных Trigger once и заодно увидишь наличие необходимого Else)

Красные порталы работают по другому принципу, и я рекомендовал тебе использовать именно его.
Обрати внимание, для создания зелёных порталов я действовал по твоему принципу, т.е. создал портал_1 и портал_2, два разных объекта. Зачем так бездарно расходовать память? А если их не два, а десять? А сто? Будешь плодить кучу дубликатов одного и того же объекта? ЗАЧЕМ?!

Для создания красных порталов в ЛЮБОМ количестве требуется всего навсего ОДИН объект! В нём зашито две приватных переменных: GoToX и GoToY, которые обозначают координаты, куда будет производиться телепортация. Значения переменных для каждой копии объекта можно задавать свои! Это очень удобно. И занимает всего 2 строки кода: 1) проверка на нажатие кнопки для телепортации; 2) проверка, если стоим в портале, то читать координаты и телепортировать.

В общем, смотри сам, тестируй, задавай вопросы, если появятся: ссылка
Исходник предназначен для CC r2
Файл доступен 30 дней


- Доброе утро, Агент Пи!
Nick_RimerДата: Пятница, 05 Сентября 2014, 14:16 | Сообщение # 186 | Тема: Прозрачный экран, как сделать?
заслуженный участник
Сейчас нет на сайте
Я пока свои теории и предположения проверить не могу, нет программ под рукой, но вопрос к тебе всё равно уже есть принципиальный: СС или С2?

- Доброе утро, Агент Пи!
Nick_RimerДата: Пятница, 05 Сентября 2014, 13:15 | Сообщение # 187 | Тема: Ошибка при сохранении проекта в Сonstruct Classic
заслуженный участник
Сейчас нет на сайте
СС глюками полнится, а разрабами не поддерживается, так что писать им, как там предложено, конечно, не стоит..
Был случай, когда у меня в одно и то же время после начала работы СС выдавал еррор и намертво зависал. Я выяснил, что происходило это во время автосейва, программе не хватало прав на запись в указанную папку.
Так что проблема может быть и где-то зарыта в винде.. а может что-то внутри каких-нибудь плагинов конфликтует.. кто его знает, что там может быть?
Могу посоветовать полностью почистить систему от СС (конечно, сначала всё сохранить отдельно), включая реестр. Попробовать переустановить. Если не решается проблема.. переустанавливать винду советовать не буду.

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


- Доброе утро, Агент Пи!
Nick_RimerДата: Пятница, 05 Сентября 2014, 13:07 | Сообщение # 188 | Тема: Помогите
заслуженный участник
Сейчас нет на сайте
Deltmar, конечно, можно!
Фря, как уже говорилось выше, ограничена 100 событиями, поэтому игра должна быть максимально простой..
Скажем, игра "кликни в печеньку" не требует огромного количества событий, и меж тем это какой-то упоротый хит crazy
Для полноценного счастья С2 лучше, конечно, купить. В периоды всяких там распродаж на стиме, это можно сделать даже со скидкой, что многих привлекает. При этом, правда, минус - привязка к стиму..

И вообще, никогда не стоит сомневаться в себе holiday


- Доброе утро, Агент Пи!
Nick_RimerДата: Вторник, 22 Апреля 2014, 20:52 | Сообщение # 189 | Тема: Решаем задачи по Construct Classic [вопрос-ответ]
заслуженный участник
Сейчас нет на сайте
last2424, округление - весьма стандартная математическая операция и присутствует везде, как же без неё? smile
а что на простецкую задачку не ответил? smile и раз уж столько всего узнал.. где мои благодарности? happy ладно-ладно, не стоит аплодисментов! biggrin чего тебе ещё рассказать?


- Доброе утро, Агент Пи!
Nick_RimerДата: Понедельник, 21 Апреля 2014, 22:06 | Сообщение # 190 | Тема: Решаем задачи по Construct Classic [вопрос-ответ]
заслуженный участник
Сейчас нет на сайте
last2424, целочисленный рандом в С2 достигается легко: floor(random(X))
функция floor() обеспечивает округление числа всегда в минимальную сторону, грубо говоря, отбрасывает любую дробную часть.
математически вернее было бы сказать, конечно, что функция возвращает пол числа. Именно пол (от англ. floor - пол; не тот пол, который мужской или женский, а тот, который противоположен потолку).

Пояснение:
Дам пояснение, почему использовать floor() правильнее, чем другие функции округления (стандартное округление и округление всегда в большую сторону)
для примера попросим в С2 random(101). Логично, что мы ждём от него числа от 0 до 100. Реально же мы и получаем: целую часть от 0 до 100 + случайную дробную часть.

1. почему нельзя пользоваться функцией ceil()
если пользоваться функцией округления всегда в большую сторону, мы никогда не получим нижнего предела, т.к. даже если получится примерно такое маленькое число 0,000..0001 - оно округлится до 1. Следовательно нуля не выйдет, функция не подходит.
к тому же мы можем превысить верхний предел, например, даже если получится число 100,000..0001 - оно округлится до 101. А это уже превышение предела рандома.
ceil(random(100)) - массив от 1 до 101, что не удовлетворят нашим требованиям (от 0 до 100).

2. почему нельзя пользоваться функцией round()
если пользоваться функцией стандартного округления, мы получим нижний предел, например, при том же 0,000..0001 - это округляется в 0.
однако мы снова можем превысить верхний предел. Так число 100,5 уже округлится до 101. А это снова превышение предела.
round(random(100)) - массив от 0 до 101, что не удовлетворят нашим требованиям (от 0 до 100).

3. и можно только функцией floor()
нижний предел получим как при 0,000..0001, так и при 0,999..999 - это округлится в 0
верхний предел получим и при 100,000..0001, и при 100,999..999 - это округлится в 100
ceil(random(100)) - массив от 0 до 101, что отлично удовлетворят нашим требованиям (от 0 до 100).

Пользуйтесь и помните! smile

P.S. Кстати, задачка для ума. Не прибегая к помощи компьютера, посчитайте и скажите, чему будет равен результат выполнения функции floor(-57,43) happy


- Доброе утро, Агент Пи!

Сообщение отредактировал Nick_Rimer - Понедельник, 21 Апреля 2014, 22:39
Nick_RimerДата: Суббота, 12 Апреля 2014, 01:22 | Сообщение # 191 | Тема: Решаем задачи по Construct Classic [вопрос-ответ]
заслуженный участник
Сейчас нет на сайте
grisha2000, очень непросто.. мы подобным когда-то занимались в институте на первом курсе, когда изучали СИ.
давалась произвольная фигура, которая должна была закрашиваться..

суть метода там примерно такая была, что рисуется, например, окружность.. у неё же вполне себе определённые координаты центра и радиус. Таким образом можно посчитать, координаты щелчка мыши попадают на окружность, за пределы окружности или внутрь. Если внутрь - закрашивать (т.е. тупо рисовать закрашенный круг в тех же координатах, что и окружность). Подобное делалось же и с n-угольниками.. если известны координаты вершин отрезков, можно посчитать, с какой стороны точка.. и т.п.

Надо сказать, метод интересный, но крайне несовершенный, потому что закрашивать произвольные области с неизвестными параметрами он не сможет.
Кстати, около года назад я попробовал реализовать такой пример по просьбе одного товарища (не помню, кто просил), тут на форуме где-то есть эта тема, но исходник, боюсь, удалён.
Там для примера рисовался треугольник со случайными вершинами и закрашивался, если щёлкнуть внутри.
Однако всё было не очень гладко, так что я не знаю, как далеко ушёл проект того товарища.. а сам я этим вопросам больше не увлекался.

Была идея искать вокруг щёлкнутого пикселя все пиксели того же цвета и красить их до тех пор, пока вокруг не будет натыканий на пиксели каких-то других цветов.. но лень было даже думать о реализации smile


- Доброе утро, Агент Пи!
Nick_RimerДата: Воскресенье, 06 Апреля 2014, 20:47 | Сообщение # 192 | Тема: Решаем задачи по Construct Classic [вопрос-ответ]
заслуженный участник
Сейчас нет на сайте
South_West9, а поточнее задание дать можно? я фигею.. вы хотите, чтобы вам помогли или заранее настраиваетесь на то, чтобы вас послали?
уж если просите кого-то о чём-то, то добавьте хотя бы "пожалуйста". а также подробнее распишите ТЗ (техническое задание), чтобы было понятно, что за тесты, что требуется, а что рандомно..
ей богу, я не против помочь людям, если только они хотя бы нормально и понятно просят..
давай попробуем ещё раз.
что за тесты? откуда текст? при каких условиях рандомно и без повторов?


- Доброе утро, Агент Пи!
Nick_RimerДата: Суббота, 05 Апреля 2014, 23:14 | Сообщение # 193 | Тема: Рандомное значение переменной
заслуженный участник
Сейчас нет на сайте
Sanches, да я согласен-согласен, просто предложил альтернативу, не кипятись smile

- Доброе утро, Агент Пи!
Nick_RimerДата: Суббота, 05 Апреля 2014, 19:48 | Сообщение # 194 | Тема: Рандомное значение переменной
заслуженный участник
Сейчас нет на сайте
Ramilyanamana, Sanches, есть ещё вариант массив MAS из пяти элементов, в который мы запишем последовательно q, w, e, r, t.
Теперь в твою переменную А запишем А = MAS(random(5)+1)
неудобство есть только в том, чтобы изначально записать строковые данные в массив. это лучше делать, загружая их из файла. иначе придётся прописывать вручную. числа записать проще, т.к. можно легко организовать цикл


- Доброе утро, Агент Пи!

Сообщение отредактировал Nick_Rimer - Суббота, 05 Апреля 2014, 19:48
Nick_RimerДата: Пятница, 04 Апреля 2014, 21:49 | Сообщение # 195 | Тема: Рандомное значение переменной
заслуженный участник
Сейчас нет на сайте
IvanKorobko, я бы предложил округлять floor(), это точнее работает. Но СС не делает рандомной вещественной части.

- Доброе утро, Агент Пи!
Nick_RimerДата: Пятница, 04 Апреля 2014, 21:47 | Сообщение # 196 | Тема: Бизнес и персональная лицензия
заслуженный участник
Сейчас нет на сайте
FxY, да, и девичью фамилию матери biggrin

- Доброе утро, Агент Пи!
Nick_RimerДата: Среда, 02 Апреля 2014, 22:13 | Сообщение # 197 | Тема: Решаем задачи по Construct Classic [вопрос-ответ]
заслуженный участник
Сейчас нет на сайте
baibac, массивы можешь юзать по своему усмотрению.. как твоей душе будет угодно. например, сохранять координаты объектов, их маркеры (чтобы понимать, какой объект восстанавливать).. приватные переменные.. ещё что-нибудь..
так лень писать много текста.. напишу кратко, это должно быть очевидно далее..
например, имеем платформы и героя в неких координатах. обозначим в уме цифрами 1 - герой, 2 - платформа. это и будут маркеры.

создаём двумерный массив, первый столбец - маркер, второй - координата Х, третий - координата Y.
поехали.. сёрфим все объекты подряд циклами For each... и для каждого найденного сохраняем в массив.
на выходе будем иметь что-то такое:

1 240 320
2 500 600
2 405 670
...
и так далее.. механику в подробностях, уверен, сможешь сам реализовать

это вообще как вариант. может ещё кто что-нибудь предложит


- Доброе утро, Агент Пи!
Nick_RimerДата: Понедельник, 31 Марта 2014, 21:52 | Сообщение # 198 | Тема: Решаем задачи по Construct Classic [вопрос-ответ]
заслуженный участник
Сейчас нет на сайте
Markormik, тебя интересует хаотичное движение по гриду? или не совсем хаотичное? я кому-то тут писал исходник, где спрайт по клеточкам бегал, выбирая рандомное направление каждый раз
но этот исходник скорее всего уже неактивен. даже если ты найдёшь тему. а оригинал у меня скорее всего на работе.. это только завтра в течение дня. (плюс выложить смогу только вечером, на работе заблочили доступ к гцупу)


- Доброе утро, Агент Пи!
Nick_RimerДата: Среда, 19 Марта 2014, 23:54 | Сообщение # 199 | Тема: 10 глабальных переменных или массив из 10 элементов?
заслуженный участник
Сейчас нет на сайте
FxY, мне кажется, примерно одно и то же количество памяти выделяется под переменную и один элемент массива. Думаю, не стоит заморачиваться на этот счёт, но! Массив в С2 динамический, т.е. его размер можно менять по ходу, это значит, что память под новые элементы будет выделяться по мере необходимости - по мере поступления таковых.
Что я имею в виду: если нам нужно 10 (да хоть 100) значений, но они не даны сразу, а появляются последовательно в игре, можно создать изначально массив с 0 элементов. Каждый раз, получая новое значение, прибавлять 1 размеру массива и записывать значение в массив (для этого для массивов в С2 есть замечательный метод Push, добавляющий за один приём новый элемент в начале или в конце массива). Ненужные по ходу элементы можно просто удалять! Это также будет освобождать память (если критично).

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

Удачи!


- Доброе утро, Агент Пи!
Nick_RimerДата: Вторник, 18 Марта 2014, 22:34 | Сообщение # 200 | Тема: Столкнулся с проблемой
заслуженный участник
Сейчас нет на сайте
из известных лично мне требований - DirectX 9. Можно попробовать посмотреть, какие у него требования, может натолкнёт на мысль..
так мне ни разу не приходилось запускать СС на старых машинах, так что не знаю. а поверхностные поиски успехов не принесли


- Доброе утро, Агент Пи!
Поиск:

Все права сохранены. GcUp.ru © 2008-2025 Рейтинг