Я конечно слоу, но сабжевому коду есть достойный соперник
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
Автор как поживаешь?
Новой порцией щей угостишь? )
Жесть)
Тема в архиве.