Суббота, 20 Апреля 2024, 10:22

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Форум игроделов » Программирование » Общие обсуждения программистов » Управление роботом. Миниконкурс. (Предлагаю немного посоревноваться в управлении роботом.)
Управление роботом. Миниконкурс.
PBPROGДата: Среда, 04 Января 2012, 13:32 | Сообщение # 21
постоянный участник
Сейчас нет на сайте
Quote (-Mikle-)
залей на нормальный хостинг
Залил http://rghost.ru/35733531

Quote (-Mikle-)
На GameDev, вроде как, побили порог 50к.
Там составлена таблица констант движения робота и к тому же, не запускается.


Сообщение отредактировал PBPROG - Среда, 04 Января 2012, 13:33
vicu2010Дата: Среда, 04 Января 2012, 14:19 | Сообщение # 22
Сейчас нет на сайте
Народ а чем редактировать? Hex Editor'ом?


Программист Ruby on Rails / COBOL | Веб-дизайнер(Bootstrap, HTML5, JS) | Викверс на Construct 2 / Classic
PBPROGДата: Среда, 04 Января 2012, 14:34 | Сообщение # 23
постоянный участник
Сейчас нет на сайте
Quote (vicu2010)
Народ а чем редактировать? Hex Editor'ом?
Что редактировать? DLL?
Нет, dll нужно написать на любом языке программирования для которого есть компилятор для Windows x86 и создающий нативные DLLки.

-Mikle-, об этом написал в первом посте темы.
Quote (-Mikle-)
Естественно, писать dll можно на любом удобном языке.


Сообщение отредактировал PBPROG - Среда, 04 Января 2012, 14:36
WTALKERДата: Среда, 04 Января 2012, 18:39 | Сообщение # 24
постоянный участник
Сейчас нет на сайте
Самый лучший на данный момент:
http://www.gamedev.ru/files/?id=74520 от Suslik = 51942

Вообще приятно что есть такой конкурс. Необычно как-то. ok
Но я борьбу за счёт не осилю. biggrin

Если организатор точно -Mikle-, то ему лично благодарности и всем участникам.

-Mikle-, постарайся сделать screensaver на лучшем DLL smile


Раз уж занялся игростроем, то умей и имей:
1) знание иностранного языка и понимание того, что делаешь
2) программы для игростроя, а так же для обработки текстур, моделей, звуков
3) много свободного времени


Сообщение отредактировал WTALKER - Среда, 04 Января 2012, 18:45
PBPROGДата: Среда, 04 Января 2012, 20:59 | Сообщение # 25
постоянный участник
Сейчас нет на сайте
Новый рекорд этого форма - 50470.
DLL. http://rghost.ru/35740373
-Mikle-Дата: Среда, 04 Января 2012, 22:15 | Сообщение # 26
Изобретатель велосипедов
Сейчас нет на сайте
PBPROG, ты чуть раньше успел переступить порог 50000.
Но рекорд теперь мой - 53053:
http://www.gamedev.ru/files/?id=74548
WTALKERДата: Среда, 04 Января 2012, 22:30 | Сообщение # 27
постоянный участник
Сейчас нет на сайте
Quote (-Mikle-)
PBPROG, ты чуть раньше успел переступить порог 50000.
Но рекорд теперь мой - 53053:
http://www.gamedev.ru/files/?id=74548

А что если ещё после толчка - придать силу притяжения вперёд? Т.е. когда колёсико недавно отталкивающее, после переворота на 180 градусов ещё и вытягивало вперёд.


Раз уж занялся игростроем, то умей и имей:
1) знание иностранного языка и понимание того, что делаешь
2) программы для игростроя, а так же для обработки текстур, моделей, звуков
3) много свободного времени
PBPROGДата: Среда, 18 Января 2012, 21:30 | Сообщение # 28
постоянный участник
Сейчас нет на сайте
Вижу что желающих немного. sad
Выкладываю исходник предыдущей версии DLLки (42595).
Может этот код поможет создать свой алгоритм, который побьет все текущие рекорды. smile
Code
Structure vec2
   x.f
   y.f
EndStructure

Structure robot
   Pos.vec2[3]
   Spd.vec2[3]
   Frc.f[3]
EndStructure

#Plus  =  2.9999970
#Minus = -3

Procedure.b Min(a.f, b.f, c.f)
   Result.b = -1  
   If a < b And a < c  
     Result = 0  
   ElseIf b < a And b < c  
     Result = 1  
   ElseIf c < a And c < b  
     Result = 2  
   EndIf   
   ProcedureReturn Result
EndProcedure

ProcedureDLL RTICK(*R.robot)
   Count = 0

   For i=0 To 2
     If *R\Pos[i]\y <= 5
       Count+1
       If Count=2
          
         Select Min(*R\Pos[0]\x, *R\Pos[1]\x , *R\Pos[2]\x)
           Case 0
             *R\Frc[0] = #Plus
             *R\Frc[1] = #Minus
             *R\Frc[2] = #Plus
           Case 1
             *R\Frc[0] = #Plus
             *R\Frc[1] = #Plus
             *R\Frc[2] = #Minus
           Case 2
             *R\Frc[0] = #Minus
             *R\Frc[1] = #Plus
             *R\Frc[2] = #Plus
         EndSelect
              
         Break
       EndIf
     EndIf
   Next i
    
   If Count=0
      *R\Frc[0] = #Minus
      *R\Frc[1] = #Minus
      *R\Frc[2] = #Minus
   EndIf
    
EndProcedure


Исходник и DLL. http://depositfiles.com/files/t128zt4w4

Добавлено (18.01.2012, 21:30)
---------------------------------------------
А когда будут подводится результаты конкурса?
Ведь конкурс объявлен, а потом все заброшено!

-Mikle-Дата: Пятница, 20 Января 2012, 10:53 | Сообщение # 29
Изобретатель велосипедов
Сейчас нет на сайте
Quote
А когда будут подводится результаты конкурса?
Ведь конкурс объявлен, а потом все заброшено!

Мне как-то неудобно себя победителем объявлять :), да и конкурс из тех, которые можно не заканчивать.
У тебя, кстати, второе место, даже если учитывать многочисленные работы на GameDev.ru.
Моя DLL, кстати, тоже на бейсике, только это VB6.
alex13shДата: Воскресенье, 26 Августа 2012, 13:07 | Сообщение # 30
был не раз
Сейчас нет на сайте
Оч жалко то что опоздал((
ну всё равно хочится побить рекорд
алгоритм придумал
но немогу начать
сделать по примеру делфи наачало
но прога невидет функцию в длл
название функции RTICK , название класса Robot и название длл robot.dll
Что нетак??
вот ошибка


разработчик онлайн игр
TimKruzДата: Воскресенье, 26 Августа 2012, 13:14 | Сообщение # 31
старожил
Сейчас нет на сайте
Quote (alex13sh)
но прога невидет функцию в длл

Возможно, ты забываешь экспортировать функцию, она по-умолчанию скрыта (используется только внутри DLL).
Вот шаблон для Delphi:
Code
library robot;

type
   fVect=record
     x,y:single;
   end;

   Robo=record
     Pos:array[0..2]of fVect;
     Spd:array[0..2]of fVect;
     Frc:array[0..2]of single;
   end;

procedure RTICK(var R:Robo); StdCall;
begin
   //Основной код
end;

exports RTICK;

begin
end.


alex13shДата: Воскресенье, 26 Августа 2012, 14:20 | Сообщение # 32
был не раз
Сейчас нет на сайте
экспортировать это же значит публиковать??
и делфи мне оч трудно понять
тут в твоём пример тока 2 типа которых я уже с другого примера написал


разработчик онлайн игр
TimKruzДата: Воскресенье, 26 Августа 2012, 15:22 | Сообщение # 33
старожил
Сейчас нет на сайте
Quote (alex13sh)
экспортировать это же значит публиковать??

Ну в принципе да, а в программе происходит импорт необходимых функций из библиотеки. Нет, это разные понятия.
Quote (alex13sh)
тут в твоём пример тока 2 типа которых я уже с другого примера написал

Других типов и не нужно. В программе используется только одна запись - типа Robo, вот с ней и нужно производить все операции.

***
Quote (alex13sh)
и делфи мне оч трудно понять

Там же вместе с программой исходники примера на C++ есть...




Сообщение отредактировал TimKruz - Воскресенье, 26 Августа 2012, 15:40
alex13shДата: Воскресенье, 26 Августа 2012, 15:28 | Сообщение # 34
был не раз
Сейчас нет на сайте
если что я на vb6 пишу
вот я написал (это для начало , что бы проверить)

Code
Private Type fvec
      x As Single: y As Single
End Type
Private Type robo
      pos(2)  As fvec
      spd(2) As fvec
      frc(2) As Single
End Type

Dim r As robo

Public Function RTICK()
      r.frc(0) = r.frc(0) - 0.007
      r.frc((1)) = r.frc(1) - 0.007
      r.frc(2) = r.frc(2) + 0.007
      If r.frc(2) > 0.8 Then
        r.frc(0) = 0.8
        r.frc(1) = 0.8
        r.frc(2) = -0.8
      End If
End Function

непойму что может вызвать ошибку??


разработчик онлайн игр

Сообщение отредактировал alex13sh - Воскресенье, 26 Августа 2012, 15:29
TimKruzДата: Воскресенье, 26 Августа 2012, 15:32 | Сообщение # 35
старожил
Сейчас нет на сайте
Quote (alex13sh)
Dim r As robo
Public Function RTICK()

Переменная R должна передаваться как аргумент функции rtick, и она должна возвращать новые значения в неё же... А у тебя, по-моему, получается так, что r - общая переменная для всей библиотеки, и ниоткуда не берётся.

***
Вот, нашёл. В VB6 вроде бы нужно писать директиву export после описания функции для её экспорта.




Сообщение отредактировал TimKruz - Воскресенье, 26 Августа 2012, 15:42
alex13shДата: Воскресенье, 26 Августа 2012, 15:56 | Сообщение # 36
был не раз
Сейчас нет на сайте
я прост длл - ки неписал (ну 2 мелких для изучение и всё)
вот проблема в том что я немогу так написать
Code
Public Function RTICK() As robo
      RTICK.frc(0) = RTICK.frc(0) - 0.007
      RTICK.frc((1)) = RTICK.frc(1) - 0.007
      RTICK.frc(2) = RTICK.frc(2) + 0.007
      If r.frc(2) > 0.8 Then
        RTICK.frc(0) = 0.8
        RTICK.frc(1) = 0.8
        RTICK.frc(2) = -0.8
      End If
End Function
публиковать тип нельзя почему то
а вот привать тип можно ( а толку)
вот и непонимаю
Майкле написал на вб6 длл-ку ток он пропал на 5 дней (( и пока тут спрашиваю
Quote (TimKruz)
Вот, нашёл. В VB6 вроде бы нужно писать директиву export после описания функции для её экспорта.

не слышал щас попробую


разработчик онлайн игр

Сообщение отредактировал alex13sh - Воскресенье, 26 Августа 2012, 16:02
-Mikle-Дата: Вторник, 28 Августа 2012, 22:29 | Сообщение # 37
Изобретатель велосипедов
Сейчас нет на сайте
Я вернулся smile
На VB6 обычную не ActiveX dll написать нельзя... по идее, а на самом деле можно:
Тема
Форум игроделов » Программирование » Общие обсуждения программистов » Управление роботом. Миниконкурс. (Предлагаю немного посоревноваться в управлении роботом.)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

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