Я конечно слоу, но сабжевому коду есть достойный соперник
https://code.google.com/p/lugaru/source/browse/Source/Person.cpp
if(onterrain&&((isIdle()||isCrouch()||isLanding()||isLandhard()||targetanimation==drawrightanim||targetanimation==drawleftanim||targetanimation==crouchdrawrightanim)&&(wasIdle()||wasCrouch()||wasLanding()||wasLandhard()||currentanimation==drawrightanim||currentanimation==drawleftanim||currentanimation==crouchdrawrightanim))&&!skeleton.free){ XYZ point,newpoint,change,change2; point=DoRotation(skeleton.joints[skeleton.jointlabels[leftfoot]].position,0,rotation,0)*scale+coords; heightleft=terrain.getHeight(point.x,point.z)+.04; point.y=heightleft; change=skeleton.joints[skeleton.jointlabels[leftankle]].position-skeleton.joints[skeleton.jointlabels[leftfoot]].position; change2=skeleton.joints[skeleton.jointlabels[leftknee]].position-skeleton.joints[skeleton.jointlabels[leftfoot]].position; skeleton.joints[skeleton.jointlabels[leftfoot]].position=DoRotation((point-coords)/scale,0,-rotation,0); skeleton.joints[skeleton.jointlabels[leftankle]].position=skeleton.joints[skeleton.jointlabels[leftfoot]].position+change; skeleton.joints[skeleton.jointlabels[leftknee]].position=(skeleton.joints[skeleton.jointlabels[leftfoot]].position+change2)/2+(skeleton.joints[skeleton.jointlabels[leftknee]].position)/2; point=DoRotation(skeleton.joints[skeleton.jointlabels[rightfoot]].position,0,rotation,0)*scale+coords; heightright=terrain.getHeight(point.x,point.z)+.04; point.y=heightright; change=skeleton.joints[skeleton.jointlabels[rightankle]].position-skeleton.joints[skeleton.jointlabels[rightfoot]].position; change2=skeleton.joints[skeleton.jointlabels[rightknee]].position-skeleton.joints[skeleton.jointlabels[rightfoot]].position; skeleton.joints[skeleton.jointlabels[rightfoot]].position=DoRotation((point-coords)/scale,0,-rotation,0); skeleton.joints[skeleton.jointlabels[rightankle]].position=skeleton.joints[skeleton.jointlabels[rightfoot]].position+change; skeleton.joints[skeleton.jointlabels[rightknee]].position=(skeleton.joints[skeleton.jointlabels[rightfoot]].position+change2)/2+(skeleton.joints[skeleton.jointlabels[rightknee]].position)/2; skeleton.DoConstraints(&coords,&scale); if(creature==wolftype){ point=DoRotation(skeleton.joints[skeleton.jointlabels[leftfoot]].position,0,rotation,0)*scale+coords; heightleft=terrain.getHeight(point.x,point.z)+.04; point.y=heightleft; change=skeleton.joints[skeleton.jointlabels[leftankle]].position-skeleton.joints[skeleton.jointlabels[leftfoot]].position; change2=skeleton.joints[skeleton.jointlabels[leftknee]].position-skeleton.joints[skeleton.jointlabels[leftfoot]].position; skeleton.joints[skeleton.jointlabels[leftfoot]].position=DoRotation((point-coords)/scale,0,-rotation,0); skeleton.joints[skeleton.jointlabels[leftankle]].position=skeleton.joints[skeleton.jointlabels[leftfoot]].position+change; skeleton.joints[skeleton.jointlabels[leftknee]].position=(skeleton.joints[skeleton.jointlabels[leftfoot]].position+change2)/2+(skeleton.joints[skeleton.jointlabels[leftknee]].position)/2; point=DoRotation(skeleton.joints[skeleton.jointlabels[rightfoot]].position,0,rotation,0)*scale+coords; heightright=terrain.getHeight(point.x,point.z)+.04; point.y=heightright; change=skeleton.joints[skeleton.jointlabels[rightankle]].position-skeleton.joints[skeleton.jointlabels[rightfoot]].position; change2=skeleton.joints[skeleton.jointlabels[rightknee]].position-skeleton.joints[skeleton.jointlabels[rightfoot]].position; skeleton.joints[skeleton.jointlabels[rightfoot]].position=DoRotation((point-coords)/scale,0,-rotation,0); skeleton.joints[skeleton.jointlabels[rightankle]].position=skeleton.joints[skeleton.jointlabels[rightfoot]].position+change; skeleton.joints[skeleton.jointlabels[rightknee]].position=(skeleton.joints[skeleton.jointlabels[rightfoot]].position+change2)/2+(skeleton.joints[skeleton.jointlabels[rightknee]].position)/2; skeleton.DoConstraints(&coords,&scale); } }
DaGGeR
> зато оно работает и можно играть, это уже достижение!
То, что оно работает и можно играть, это вообще единственное, что важно в игре.
Театр начинается с вешалки.
Игра начинается с исхо... о-о... (0_0)
ПРочитал 1ю страницу каментов про исходники. Прыгнул на 8ю - там всё про исходники %)
Их надо выводить на быграунд игры в виде матрицы. :)
Игрушка с лулзами )
axiom
> Я конечно слоу, но сабжевому коду есть достойный соперник
Вполне обычный код. Ничего примечательного, не соперник он ТС.
Mephistopheles
Не ну тоже щи, но конечно до автора далеко )
Mephistopheles
Эгеге, весь проект по ссылке смотрели? Там жуть.
axiom
> Эгеге, весь проект по ссылке смотрели? Там жуть.
Все равно очень далеко
рассекречен генокод Гнома?
А реально ли от хакеров (ну или хотя бы школьников) защититься таким манером написания кода?
такую гамезу точно нужно на мобильные системы, яб втыкал частенько
Darkman007
> такую гамезу точно нужно на мобильные системы, яб втыкал частенько
хмм...в 3-й раз писать щи как-то пока не тянет))
axiom
> Эгеге, весь проект по ссылке смотрели? Там жуть.
Неплохо. Манера написания очень похожа))
Правда отступы красиво оформлены.
Просто обалдеть.
Автору упорства не занимать
axiom
на самом деле если физику прописываешь в коде, то примерно так это и делается. можно, конечно, промежуточных переменных побольше создавать, чтобы код был покороче, но по сути автор делает правильно.
An147
Автор как поживаешь?
Новой порцией щей угостишь? )
Жесть)
Тема в архиве.