Оптимизация кода и поиск ошибок
|
|
Optimus | Дата: Четверг, 15 Апреля 2010, 16:31 | Сообщение # 1 |
 Крутой
Группа: Участники
Сообщений: 646
Награды: 0
Замечания: 0%
Статус: 
Профессия: Программист
Команда: Solomanders te@m
Проектов: TripleWar(разработка)
| Code Graphics3D 640,480 SetBuffer BackBuffer()
Global Menu Global sndMusicLoop Global user Global cam Global startimage Global cursor
Const USERT=1 Const KARTA=2
Collisions USERT,KARTA,2,2 Collisions HUMANT,KARTA,2,2
Function menu() Cls menu=LoadImage("menu\MenuImage.jpg") startimage=LoadImage("menu\start.png") cursor=LoadImage("menu\cursor.png") DrawImage menu,0,0 DrawImage startimage,200,200 DrawImage cursor,MouseX(),MouseY() If ImagesCollide(startimage,200,200,0,cursor,MouseX(),MouseY(),0) And MouseHit(1) Then game_new() Else End If HidePointer End Function
mx#=MouseX() my#=MouseY()
Function create_user() user=CreateSphere() ScaleEntity user,3,3,3 PositionEntity user,20,3,0 EntityType user,USERT
cam=CreateCamera(user)
CameraRange cam,0.1,10000 End Function
Function update_user() u#=70 speeduser#=0.15 gravity#=0.98 MoveEntity user,0,-gravity#,0 If KeyDown(42) Then speeduser#=0.1 If KeyDown(17) Then MoveEntity user,0,0,speeduser# If KeyDown(31) Then MoveEntity user,0,0,-speeduser# If KeyDown(30) Then MoveEntity user,-speeduser#,0,0 If KeyDown(32) Then MoveEntity user,speeduser#,0,0 TurnEntity cam,MouseYSpeed(),0,0 TurnEntity user,0,-MouseXSpeed(),0 MoveMouse GraphicsWidth()*0.5,GraphicsHeight()*0.5 If Abs(EntityPitch#(cam))>u# RotateEntity cam,u#*Sgn(EntityPitch#(cam)),0,0
End Function
Function game_new()
create_user() tower=LoadMesh("models\tower\tower.b3d") EntityType tower,KARTA EntityRadius tower,5 fntArial=LoadFont("arial cyr",24,False,False,False) SetFont fntArial
End Function
menu() While Not KeyDown(1)=1 update_user() menu() UpdateWorld RenderWorld Flip Wend End entity does not exist базарит на строчку Code MoveEntity user,0,-gravity#,0 ах да, и предложите как оптимизировать код. И третье=когда подчистую убираю все из функции update_user то выводится меню. В меню тормозит курсор
Internet Explorer-замечательный браузер для того чтобы зайти и скачать Firefox
|
|
| |
Optimus | Дата: Четверг, 15 Апреля 2010, 17:18 | Сообщение # 2 |
 Крутой
Группа: Участники
Сообщений: 646
Награды: 0
Замечания: 0%
Статус: 
Профессия: Программист
Команда: Solomanders te@m
Проектов: TripleWar(разработка)
| а как сделать? если поставишь эту функцию вначале menu() то чеееерный экран
Internet Explorer-замечательный браузер для того чтобы зайти и скачать Firefox
|
|
| |
Optimus | Дата: Пятница, 16 Апреля 2010, 18:58 | Сообщение # 3 |
 Крутой
Группа: Участники
Сообщений: 646
Награды: 0
Замечания: 0%
Статус: 
Профессия: Программист
Команда: Solomanders te@m
Проектов: TripleWar(разработка)
| ладно, переделаю вопрос:можно ли вообще нормально сделать и как? п.с. сон приснился, хде мне сказали типо если поставить в начале функции menu() то и получаецца черный экран и сказали типо создается сначала 3d объект) Quote а как сделать? если поставишь эту функцию вначале menu() то чеееерный экран
Internet Explorer-замечательный браузер для того чтобы зайти и скачать Firefox
Сообщение отредактировал Optimus - Пятница, 16 Апреля 2010, 18:59 |
|
| |
Optimus | Дата: Суббота, 17 Апреля 2010, 15:38 | Сообщение # 4 |
 Крутой
Группа: Участники
Сообщений: 646
Награды: 0
Замечания: 0%
Статус: 
Профессия: Программист
Команда: Solomanders te@m
Проектов: TripleWar(разработка)
| Jack, +1. тормоза начали идти после меню. Да и в меню тоже. добавил счетчик фпс. В меню почему-то 8-9, в игре 5-. Начал разбираться. Удалил из кода все, что связано с меню. Фпс по волшебному стало 58-66. ТАК ВОТ ГДЕ СОБАКА ЗАРЫТА!!!!!! Code Graphics3D 640,480 SetBuffer BackBuffer()
Global Menu Global sndMusicLoop Global user Global cam Global startimage Global cursor
Const USERT=1 Const KARTA=2
Collisions USERT,KARTA,2,2 Collisions HUMANT,KARTA,2,2
Function create_user()
user=CreateSphere() ScaleEntity user,3,3,3 PositionEntity user,20,3,0 EntityType user,USERT
cam=CreateCamera(user)
CameraRange cam,0.1,10000
End Function
Function update_user() u#=70 speeduser#=0.15 gravity#=0.98 MoveEntity user,0,-gravity#,0 If KeyDown(42) Then speeduser#=0.1 If KeyDown(17) Then MoveEntity user,0,0,speeduser# If KeyDown(31) Then MoveEntity user,0,0,-speeduser# If KeyDown(30) Then MoveEntity user,-speeduser#,0,0 If KeyDown(32) Then MoveEntity user,speeduser#,0,0 TurnEntity cam,MouseYSpeed(),0,0 TurnEntity user,0,-MouseXSpeed(),0 MoveMouse GraphicsWidth()*0.5,GraphicsHeight()*0.5 If Abs(EntityPitch#(cam))>u# RotateEntity cam,u#*Sgn(EntityPitch#(cam)),0,0
End Function
Function game_new()
create_user() tower=LoadMesh("models\tower\tower.b3d") EntityType tower,KARTA EntityRadius tower,5 fntArial=LoadFont("arial cyr",24,False,False,False) SetFont fntArial
End Function
game_new() While Not KeyDown(1)=1 update_user() UpdateWorld RenderWorld
vFPS=MilliSecs() If vFPS-vLastFPS>1000 vShowFPS=vCurFPS vLastFPS=vFPS vCurFPS=0 Else vCurFPS=vCurFPS+1 End If Text 5,5,"FPS: "+vShowFPS
Flip Wend End
Internet Explorer-замечательный браузер для того чтобы зайти и скачать Firefox
|
|
| |
Optimus | Дата: Суббота, 17 Апреля 2010, 18:53 | Сообщение # 5 |
 Крутой
Группа: Участники
Сообщений: 646
Награды: 0
Замечания: 0%
Статус: 
Профессия: Программист
Команда: Solomanders te@m
Проектов: TripleWar(разработка)
| Эта функция жрет 50(!!!!!!!!!!) фпс: Code Function menu() user_created=False Cls menu=LoadImage("menu\MenuImage2.jpg") startimage=LoadImage("menu\start.png") cursor=LoadImage("menu\cursor.png") DrawImage menu,0,0 DrawImage startimage,200,200 DrawImage cursor,MouseX(),MouseY() If ImagesCollide(startimage,200,200,0,cursor,MouseX(),MouseY(),0) And MouseHit(1) Then game_new() Else End If HidePointer End Function
Internet Explorer-замечательный браузер для того чтобы зайти и скачать Firefox
|
|
| |
Optimus | Дата: Воскресенье, 18 Апреля 2010, 10:17 | Сообщение # 6 |
 Крутой
Группа: Участники
Сообщений: 646
Награды: 0
Замечания: 0%
Статус: 
Профессия: Программист
Команда: Solomanders te@m
Проектов: TripleWar(разработка)
| Jack, +1 офигенно помог. ТОЧНО!!Пересмотрел код-действительно-цикл начинается заново и заново все грузитсо!!!!! Счас сделаю функцию, чтоб все материалы игры загружались перед началом игры, кромет тех которые можно сменить.
Internet Explorer-замечательный браузер для того чтобы зайти и скачать Firefox
|
|
| |
Optimus | Дата: Воскресенье, 18 Апреля 2010, 17:01 | Сообщение # 7 |
 Крутой
Группа: Участники
Сообщений: 646
Награды: 0
Замечания: 0%
Статус: 
Профессия: Программист
Команда: Solomanders te@m
Проектов: TripleWar(разработка)
| я офигенный перерыв сделал и все забыл
Internet Explorer-замечательный браузер для того чтобы зайти и скачать Firefox
|
|
| |