forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=13)
-   -   Опять проблемы. (http://forum.boolean.name/showthread.php?t=16119)

Crayzi 16.01.2012 09:47

Ответ: Опять проблемы.
 
Цитата:

Сообщение от FireOwl (Сообщение 216930)
Про картинку. Как я понял, она вообще одна.
А в таком случае копировать ее в каждый экземпляр, да еще и загружать каждый раз из файла, абсолютно бессмысленно.

Проще для рисования каждого камня обращаться к одной картинке,
в виде глобальной переменной или параметра передаваемого в функцию обновления камней.

Вобщемто да, неподумал))
П.с. Переделал ф-цию.

LLI.T.A.L.K.E.R. 16.01.2012 14:43

Ответ: Опять проблемы.
 
Цитата:

GetHandle() это моя личная функция (которой нет в B3D), для вывода из номера ячейки..
В B3D все есть (Правда называется она Handle%(Тип%) )
Про Handle я то знаю (им я и вносил в массив)

GetHandle() функция из моей длл у других точно не будет в Блитзе

reumep 16.01.2012 15:50

Ответ: Опять проблемы.
 
а где кнопка спойлера? ее тут нет?
и да, как сделать рандомную генерацию ландшафта из кубов? и вообще чтобы все было из кубов?
страшный спойлер

Nikich 16.01.2012 17:10

Ответ: Опять проблемы.
 
На ютьюбе глянь, там есть цикл видео о создании Minecraft'a на блице. И вопрос не совсем соответствует теме.

Nikich 16.01.2012 17:23

Ответ: Опять проблемы.
 
Так, у меня возникло два вопроса. Во-первых, можно ли как-нибудь оптимизировать тот код, который отвечает за поворот игрока в направление куда он идет? И как удобнее всего сделать бесконечный(почти бесконечный:) ) уровень? Мо моим соображениям надо делать 4 функции отвечающие за создание карты сверху,слева,справа,снизу от нынешней карты. Но я не знаю как сделать сохранение карты и последующую загрузку. Будет обидно если игрок застроит первую карту, пойдет на вторую, вернется, а там опять новая карта:)

Nikich 17.01.2012 21:50

Ответ: Опять проблемы.
 
И как сделать так, чтобы камни при создании не создавались друг в друге, и вообще не могли быть в друг друге?

FireOwl 18.01.2012 04:34

Ответ: Опять проблемы.
 
Проще всего пользоваться KeyHit, вмеcто KeyDown, чтобы функция создания срабатывала только один раз за щелчок.
А если надо предупредить возможные следующие щелчки по тому же месту,
придется перебрать все существующие камни, на предмет близости координат.

Nex 18.01.2012 06:55

Ответ: Опять проблемы.
 
Как то так. Писал в блокноте поэтому может быть не правильно.
Код:

For stone.stone = Each stone
        For stone2.stone = Each stone
                If MouseHit (1) Then
                        If stone2 <> stone Then
                                If Not ImagesCollide (stone\image,stone\x,stone\y,1,stone2\image,stone2\x,stone2\y,1) Then CreateStone (x#,y#)
                        End If
                End If
        Next
Next


FireOwl 18.01.2012 06:59

Ответ: Опять проблемы.
 
А зачем перебирать два раза список камней?
Создается один камень - и проверяется один раз по списку.
Подходит - добавляется в список.

Nikich 19.01.2012 00:25

Нет, мне не это надо. Когда карта генерируется, камни появляются в друг друге.

И можете подсказать что тут нет так?
Код:

Function DrawInventory()
For c.Inventory=Each Inventory
DrawImage c\image,c\x,100
Next
End Function


Function CreateInventory()
For a1=1 To 4
c.Inventory=New Inventory
c\x=c\x+72
c\id=1
c\image=LoadImage("cell.bmp")
Next
End Function

FPS резко падает до MAV. И ничего не рисуется. Проблема скорее всего в CreateInventory().

Crayzi 19.01.2012 01:26

Ответ: Опять проблемы.
 
Цитата:

Сообщение от Nikich (Сообщение 217182)
Нет, мне не это надо. Когда карта генерируется, камни появляются в друг друге.

И можете подсказать что тут нет так?
Код:

Function DrawInventory()
For c.Inventory=Each Inventory
DrawImage c\image,c\x,100
Next
End Function


Function CreateInventory()
For a1=1 To 4
c.Inventory=New Inventory
c\x=c\x+72
c\id=1
c\image=LoadImage("cell.bmp")
Next
End Function

FPS резко падает до MAV. И ничего не рисуется. Проблема скорее всего в CreateInventory().


А насколько часто ты вызываеш ф-цию CreateInventory()?
И ты точно уверен что именно эти ф-ции жрут память?

FireOwl 19.01.2012 01:31

Ответ: Опять проблемы.
 
А функция создания инвентаря случайно не из главного цикла вызывается?

Nikich 19.01.2012 09:53

Ответ: Опять проблемы.
 
Да, именно там:-D
У меня тут возникла идея о свете. Что если использовать не одну картинку травы на весь бэкграунд, а заместить ее большим количеством маленьких? Тогда используя трехмерный массив(х,у,light) можно сделать квадратное освещение. Но не будет ли это требовательно?

Nikich 19.01.2012 21:10

Ответ: Опять проблемы.
 
Инвентарь пока декорация:) Хотелось бы услышать, что изменить в камнях? Выглядят ли они как камни?

Nex 19.01.2012 21:36

Ответ: Опять проблемы.
 
Цитата:

Сообщение от Nikich (Сообщение 217238)
Инвентарь пока декорация:) Хотелось бы услышать, что изменить в камнях? Выглядят ли они как камни?

Сохраняй картинки в .png, курсор рисуй самым последним чтоб ничто его не перекрывало. Картинка камней подойдет если камни будут раза в два меньше размером. :)


Часовой пояс GMT +4, время: 16:10.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot