Новые форматы
|
|
Nextik | Дата: Понедельник, 28.03.2011, 07:02 | Сообщение # 76 |
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация:
« 42 »
Статус: Offline
| Ну давай, посмотрю что и как. Я недельку подумал и вот что: мне кажется, что грани повёрнутые к "камере" отрисовываются, а все остальные грани не отрисовываются. Или же отрисовывается всё, но на последней строке в коде стоят те грани которые должны быть отрисованы, ещё не понял до конца, но вроде как то так
|
|
| |
Nextik | Дата: Понедельник, 09.05.2011, 11:04 | Сообщение # 77 |
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация:
« 42 »
Статус: Offline
| Кто может мне помочь?
|
|
| |
ssanek | Дата: Четверг, 12.05.2011, 12:36 | Сообщение # 78 |
Новичок
Группа: Пользователи
Сообщений: 18
Награды: 0
Репутация:
« -2 »
Статус: Offline
| Привет. Ну на счёт помоч не знаю. Но я сей час делую свой каркасный 3д движок вот кидаю можешь посмотреть там мало пока что есть, я работую над ним два дня, но поможет разобратся с основами. Если возникнут вопросы или идеи или баги какие найдёшь пиши.
|
|
| |
Nextik | Дата: Пятница, 13.05.2011, 14:44 | Сообщение # 79 |
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация:
« 42 »
Статус: Offline
| чувствует моё сердце что я не разберусь без коментариев)))
|
|
| |
ssanek | Дата: Пятница, 13.05.2011, 17:49 | Сообщение # 80 |
Новичок
Группа: Пользователи
Сообщений: 18
Награды: 0
Репутация:
« -2 »
Статус: Offline
| Сори стиль написания у меня такой без рюмки водки не разберёшся... Завтра выложу дополнений исправлю баг с очень длиными прямыми и сделую функцию маштобирования обьектов(всё это впринципе готово отладить надо и до ума довести) ну может добавлю какиенибудь коментарии только не ко всей библиотеки а к внешним процедурам.
|
|
| |
Nextik | Дата: Понедельник, 16.05.2011, 18:04 | Сообщение # 81 |
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация:
« 42 »
Статус: Offline
| мда... есть же люди умнее меня оказывается блин... в принципе мне нужно учить все языки программирования ,чтобы быть в этом деле "асом" ,короче говоря после 27 мая я собираюсь начать усилинно учить всё что встретится у меня на пути ,а то я так и ничего путного не создал за всё это время, а этот сайт стал мне как родной
|
|
| |
ssanek | Дата: Вторник, 17.05.2011, 15:58 | Сообщение # 82 |
Новичок
Группа: Пользователи
Сообщений: 18
Награды: 0
Репутация:
« -2 »
Статус: Offline
| Не парень надо говорить не так надо говорить умней меня нет)))) просто коечего я ёще не знаю, а ум и знания разные не связаные вещи... Сори что нет новой версии возникла проблема второй раз описывать не буду если интересно то http://forum.boolean.name/showthread.php?t=14748 вот если поможешь буду благодарен.
Сообщение отредактировал ssanek - Вторник, 17.05.2011, 16:16 |
|
| |
PassCall | Дата: Понедельник, 08.08.2011, 17:33 | Сообщение # 83 |
Знающий
Группа: Проверенные
Сообщений: 89
Награды: 0
Репутация:
« 4 »
Статус: Offline
| Ну я бы предложил такое.
Всем известно, что все изображения представляют собой квадрат. Даже если нарисовать круг и залить окружение прозрацным цветом, картинка все равно квадратная. А что если сделать картинку произвольной формы и с "дырками". Фишка такая - есть само изображение, и битовая матрица "дырок". Тоесть например этой матрицей описывается где пискелы, а где их не должно быть. Пикселы автоматически распространяются на указанную площадь, минуя "дырки". Надеюсь всё понятно.
|
|
| |
Nextik | Дата: Среда, 24.08.2011, 15:02 | Сообщение # 84 |
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация:
« 42 »
Статус: Offline
| PassCall, то что ты написал долго реализовывать на MidletPascal, не в плане заумности такого кода, а в его РАЗМЕРЕ. Я уже представляю сколько уйдет строк... Все же любят быстро делать)))) тем более никому не охото кроме тебя похоже делать всё с 0.
|
|
| |
Nextik | Дата: Пятница, 26.08.2011, 19:51 | Сообщение # 85 |
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация:
« 42 »
Статус: Offline
| Помогите разобраться в том что я написал и понять ошибку в этом коде))):
Code Procedure FIZIKA; var i,n:integer; begin //обсчитываем ось Y for i:=1 to 100 do begin if (setka_Y[i]=1) then begin if (setka_Y[i+1]=0) then begin blok[i].padenie:=true end;// else begin blok[i].padenie:=false end; if (setka_Y[i+1]=1) then begin blok[i].padenie:=false end; end; end; //Если падение блока включено for i:=1 to 100 do begin if (blok[i].padenie=true) and (blok[i].posY=GetHeight-16-16) or (blok[i].posY>GetHeight-16-16) then begin blok[i].padenie:=false end; if (blok[i].padenie=true) then begin blok[i].posY:=blok[i].posY+1 end; end; //Проверка раз в 20мс if step_setka=0 then begin for i:=1 to 100 do begin //по оси Y if (blok[i].posY=0) and (blok[i].postavlen=true) or (blok[i].posY>0) and (blok[i].posY<16) and (blok[i].postavlen=true) then begin setka_Y[i]:=1 end else begin setka_Y[i]:=0 end; if (blok[i].posY=16) and (blok[i].postavlen=true) or (blok[i].posY>16) and (blok[i].posY<32) and (blok[i].postavlen=true) then begin setka_Y[i]:=1 end else begin setka_Y[i]:=0 end; if (blok[i].posY=32) and (blok[i].postavlen=true) or (blok[i].posY>32) and (blok[i].posY<48) and (blok[i].postavlen=true) then begin setka_Y[i]:=1 end else begin setka_Y[i]:=0 end; if (blok[i].posY=48) and (blok[i].postavlen=true) or (blok[i].posY>48) and (blok[i].posY<64) and (blok[i].postavlen=true) then begin setka_Y[i]:=1 end else begin setka_Y[i]:=0 end; if (blok[i].posY=64) and (blok[i].postavlen=true) or (blok[i].posY>64) and (blok[i].posY<80) and (blok[i].postavlen=true) then begin setka_Y[i]:=1 end else begin setka_Y[i]:=0 end; if (blok[i].posY=80) and (blok[i].postavlen=true) or (blok[i].posY>80) and (blok[i].posY<96) and (blok[i].postavlen=true) then begin setka_Y[i]:=1 end else begin setka_Y[i]:=0 end; if (blok[i].posY=96) and (blok[i].postavlen=true) or (blok[i].posY>96) and (blok[i].posY<112) and (blok[i].postavlen=true) then begin setka_Y[i]:=1 end else begin setka_Y[i]:=0 end; if (blok[i].posY=112) and (blok[i].postavlen=true) or (blok[i].posY>112) and (blok[i].posY<128) and (blok[i].postavlen=true) then begin setka_Y[i]:=1 end else begin setka_Y[i]:=0 end; if (blok[i].posY=128) and (blok[i].postavlen=true) or (blok[i].posY>128) and (blok[i].posY<144) and (blok[i].postavlen=true) then begin setka_Y[i]:=1 end else begin setka_Y[i]:=0 end; if (blok[i].posY=144) and (blok[i].postavlen=true) or (blok[i].posY>144) and (blok[i].posY<160) and (blok[i].postavlen=true) then begin setka_Y[i]:=1 end else begin setka_Y[i]:=0 end; if (blok[i].posY=160) and (blok[i].postavlen=true) or (blok[i].posY>160) and (blok[i].posY<176) and (blok[i].postavlen=true) then begin setka_Y[i]:=1 end else begin setka_Y[i]:=0 end; if (blok[i].posY=176) and (blok[i].postavlen=true) or (blok[i].posY>176) and (blok[i].posY<192) and (blok[i].postavlen=true) then begin setka_Y[i]:=1 end else begin setka_Y[i]:=0 end; if (blok[i].posY=192) and (blok[i].postavlen=true) or (blok[i].posY>192) and (blok[i].posY<208) and (blok[i].postavlen=true) then begin setka_Y[i]:=1 end else begin setka_Y[i]:=0 end; if (blok[i].posY=208) and (blok[i].postavlen=true) or (blok[i].posY>208) and (blok[i].posY<224) and (blok[i].postavlen=true) then begin setka_Y[i]:=1 end else begin setka_Y[i]:=0 end; if (blok[i].posY=224) and (blok[i].postavlen=true) or (blok[i].posY>224) and (blok[i].posY<240) and (blok[i].postavlen=true) then begin setka_Y[i]:=1 end else begin setka_Y[i]:=0 end; if (blok[i].posY=240) and (blok[i].postavlen=true) or (blok[i].posY>240) and (blok[i].posY<256) and (blok[i].postavlen=true) then begin setka_Y[i]:=1 end else begin setka_Y[i]:=0 end; if (blok[i].posY=256) and (blok[i].postavlen=true) or (blok[i].posY>256) and (blok[i].posY<272) and (blok[i].postavlen=true) then begin setka_Y[i]:=1 end else begin setka_Y[i]:=0 end; if (blok[i].posY=272) and (blok[i].postavlen=true) or (blok[i].posY>272) and (blok[i].posY<288) and (blok[i].postavlen=true) then begin setka_Y[i]:=1 end else begin setka_Y[i]:=0 end; if (blok[i].posY=288) and (blok[i].postavlen=true) or (blok[i].posY>288) and (blok[i].posY<304) and (blok[i].postavlen=true) then begin setka_Y[i]:=1 end else begin setka_Y[i]:=0 end; if (blok[i].posY=304) and (blok[i].postavlen=true) or (blok[i].posY>304) and (blok[i].posY<320) and (blok[i].postavlen=true) then begin setka_Y[i]:=1 end else begin setka_Y[i]:=0 end; //по оси X if (blok[i].posX=0) and (blok[i].postavlen=true) then begin setka_X[i]:=1 end; if (blok[i].posX=16) and (blok[i].postavlen=true) then begin setka_X[i]:=1 end; if (blok[i].posX=32) and (blok[i].postavlen=true) then begin setka_X[i]:=1 end; if (blok[i].posX=48) and (blok[i].postavlen=true) then begin setka_X[i]:=1 end; if (blok[i].posX=64) and (blok[i].postavlen=true) then begin setka_X[i]:=1 end; if (blok[i].posX=80) and (blok[i].postavlen=true) then begin setka_X[i]:=1 end; if (blok[i].posX=96) and (blok[i].postavlen=true) then begin setka_X[i]:=1 end; if (blok[i].posX=112) and (blok[i].postavlen=true) then begin setka_X[i]:=1 end; if (blok[i].posX=128) and (blok[i].postavlen=true) then begin setka_X[i]:=1 end; if (blok[i].posX=144) and (blok[i].postavlen=true) then begin setka_X[i]:=1 end; if (blok[i].posX=160) and (blok[i].postavlen=true) then begin setka_X[i]:=1 end; if (blok[i].posX=176) and (blok[i].postavlen=true) then begin setka_X[i]:=1 end; if (blok[i].posX=192) and (blok[i].postavlen=true) then begin setka_X[i]:=1 end; if (blok[i].posX=208) and (blok[i].postavlen=true) then begin setka_X[i]:=1 end; if (blok[i].posX=224) and (blok[i].postavlen=true) then begin setka_X[i]:=1 end; if (blok[i].posX=240) and (blok[i].postavlen=true) then begin setka_X[i]:=1 end; step_setka:=20; end;//цикл end;//условие step_setka:=step_setka-1; end;//процедура
|
|
| |
Nextik | Дата: Суббота, 27.08.2011, 15:05 | Сообщение # 86 |
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация:
« 42 »
Статус: Offline
| лол) не пишите не пишите!)) я решил переписать и начать потихоньку помаленьку чтобы составить правильный код)) просто у меня в это время голова не очень соображала, а ночь хороша для раздумий!
|
|
| |
PassCall | Дата: Суббота, 27.08.2011, 21:54 | Сообщение # 87 |
Знающий
Группа: Проверенные
Сообщений: 89
Награды: 0
Репутация:
« 4 »
Статус: Offline
| "Кто может - ответьте на моё сообщение на форуме в теме Новые форматы"
Так не надо или надо отвечать?
Если ненадо то напиши в миничате, а то заводиш тут людей в заблуждение =)
"PassCall, то что ты написал долго реализовывать на MidletPascal, не в плане заумности такого кода, а в его РАЗМЕРЕ. Я уже представляю сколько уйдет строк... Все же любят быстро делать)))) тем более никому не охото кроме тебя похоже делать всё с 0."
Ну вообщето кода не так много будет, строк на 50 =). Проблема лишь в том, что МидлетПаскаль не умеет считывать пикселы с изображения. Да и вообще толку немного от моей идеи.
Сообщение отредактировал PassCall - Суббота, 27.08.2011, 21:59 |
|
| |
Nextik | Дата: Понедельник, 29.08.2011, 11:47 | Сообщение # 88 |
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация:
« 42 »
Статус: Offline
| Quote (PassCall) Проблема лишь в том, что МидлетПаскаль не умеет считывать пикселы с изображения. библиотеки есть!
|
|
| |
Nextik | Дата: Понедельник, 29.08.2011, 17:40 | Сообщение # 89 |
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация:
« 42 »
Статус: Offline
| Ладно, после долгих терзаний я выкладываю переписанный кусок кода, это процедура где написан "физический движок" для моей игры в жанре SandBox)) лучше скопируйте в блокнот чтобы удобнее было читать код)) Code Procedure FIZIKA; var i:integer; begin //проверка сетки раз в 16 мс if step_setka=0 then begin for i:=1 to MAX_BLOCK do begin if (blok[i].posY=0) and (blok[i].postavlen=true) or (blok[i].posY>0) and (blok[i].posY<16) and (blok[i].postavlen=true) then begin setka_Y[1]:=1 ; blok[i].setka_YY:=1 end else begin setka_Y[1] :=0 end; if (blok[i].posY=16) and (blok[i].postavlen=true) or (blok[i].posY>16) and (blok[i].posY<32) and (blok[i].postavlen=true) then begin setka_Y[2]:=1 ; blok[i].setka_YY:=2 end else begin setka_Y[2] :=0 end; if (blok[i].posY=32) and (blok[i].postavlen=true) or (blok[i].posY>32) and (blok[i].posY<48) and (blok[i].postavlen=true) then begin setka_Y[3]:=1 ; blok[i].setka_YY:=3 end else begin setka_Y[3] :=0 end; if (blok[i].posY=48) and (blok[i].postavlen=true) or (blok[i].posY>48) and (blok[i].posY<64) and (blok[i].postavlen=true) then begin setka_Y[4]:=1 ; blok[i].setka_YY:=4 end else begin setka_Y[4] :=0 end; if (blok[i].posY=64) and (blok[i].postavlen=true) or (blok[i].posY>64) and (blok[i].posY<80) and (blok[i].postavlen=true) then begin setka_Y[5]:=1 ; blok[i].setka_YY:=5 end else begin setka_Y[5] :=0 end; if (blok[i].posY=80) and (blok[i].postavlen=true) or (blok[i].posY>80) and (blok[i].posY<96) and (blok[i].postavlen=true) then begin setka_Y[6]:=1 ; blok[i].setka_YY:=6 end else begin setka_Y[6] :=0 end; if (blok[i].posY=96) and (blok[i].postavlen=true) or (blok[i].posY>96) and (blok[i].posY<112) and (blok[i].postavlen=true) then begin setka_Y[7]:=1 ; blok[i].setka_YY:=7 end else begin setka_Y[7] :=0 end; if (blok[i].posY=112) and (blok[i].postavlen=true) or (blok[i].posY>112) and (blok[i].posY<128) and (blok[i].postavlen=true) then begin setka_Y[8]:=1 ; blok[i].setka_YY:=8 end else begin setka_Y[8] :=0 end; if (blok[i].posY=128) and (blok[i].postavlen=true) or (blok[i].posY>128) and (blok[i].posY<144) and (blok[i].postavlen=true) then begin setka_Y[9]:=1 ; blok[i].setka_YY:=9 end else begin setka_Y[9] :=0 end; if (blok[i].posY=144) and (blok[i].postavlen=true) or (blok[i].posY>144) and (blok[i].posY<160) and (blok[i].postavlen=true) then begin setka_Y[10]:=1; blok[i].setka_YY:=10 end else begin setka_Y[10]:=0 end; if (blok[i].posY=160) and (blok[i].postavlen=true) or (blok[i].posY>160) and (blok[i].posY<176) and (blok[i].postavlen=true) then begin setka_Y[11]:=1; blok[i].setka_YY:=11 end else begin setka_Y[11]:=0 end; if (blok[i].posY=176) and (blok[i].postavlen=true) or (blok[i].posY>176) and (blok[i].posY<192) and (blok[i].postavlen=true) then begin setka_Y[12]:=1; blok[i].setka_YY:=12 end else begin setka_Y[12]:=0 end; if (blok[i].posY=192) and (blok[i].postavlen=true) or (blok[i].posY>192) and (blok[i].posY<208) and (blok[i].postavlen=true) then begin setka_Y[13]:=1; blok[i].setka_YY:=13 end else begin setka_Y[13]:=0 end; if (blok[i].posY=208) and (blok[i].postavlen=true) or (blok[i].posY>208) and (blok[i].posY<224) and (blok[i].postavlen=true) then begin setka_Y[14]:=1; blok[i].setka_YY:=14 end else begin setka_Y[14]:=0 end; if (blok[i].posY=224) and (blok[i].postavlen=true) or (blok[i].posY>224) and (blok[i].posY<240) and (blok[i].postavlen=true) then begin setka_Y[15]:=1; blok[i].setka_YY:=15 end else begin setka_Y[15]:=0 end; if (blok[i].posY=240) and (blok[i].postavlen=true) or (blok[i].posY>240) and (blok[i].posY<256) and (blok[i].postavlen=true) then begin setka_Y[16]:=1; blok[i].setka_YY:=16 end else begin setka_Y[16]:=0 end; if (blok[i].posY=256) and (blok[i].postavlen=true) or (blok[i].posY>256) and (blok[i].posY<272) and (blok[i].postavlen=true) then begin setka_Y[17]:=1; blok[i].setka_YY:=17 end else begin setka_Y[17]:=0 end; if (blok[i].posY=272) and (blok[i].postavlen=true) or (blok[i].posY>272) and (blok[i].posY<288) and (blok[i].postavlen=true) then begin setka_Y[18]:=1; blok[i].setka_YY:=18 end else begin setka_Y[18]:=0 end; if (blok[i].posY=288) and (blok[i].postavlen=true) or (blok[i].posY>288) and (blok[i].posY<304) and (blok[i].postavlen=true) then begin setka_Y[19]:=1; blok[i].setka_YY:=19 end else begin setka_Y[19]:=0 end; if (blok[i].posY=304) and (blok[i].postavlen=true) or (blok[i].posY>304) and (blok[i].posY<320) and (blok[i].postavlen=true) then begin setka_Y[20]:=1; blok[i].setka_YY:=20 end else begin setka_Y[20]:=0 end; //if blok[i].posY=320 then begin setka_Y[]:=1 end; end;//цикл step_setka:=16; end;//условие for i:=1 to MAX_BLOCK do begin st_X:=blok[i].setka_XX; st_Y:=blok[i].setka_YY; if (setka_Y[st_Y+1]=0) then begin blok[i].padenie:=true end else begin blok[i].padenie:=false end; if (blok[i].padenie=true) and (blok[i].zakreplen=false) then begin blok[i].posY:=blok[i].posY+1 end else begin blok[i].padenie:=false end; end; step_setka:=step_setka-1; end;//процедура мне нужно узнать почему этот кусок кода не работает должным образом, не даже не так. Мне нужен кусок кода который довершит этот и всё будет работать
|
|
| |
Nextik | Дата: Вторник, 30.08.2011, 14:02 | Сообщение # 90 |
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация:
« 42 »
Статус: Offline
| ну опять же пока вас дождёшься я нашёл небольшой недочёт, просчитывание блока происходило даже когда он не поставлен =/, искать свои ошибки в коде трудно, но делать мне больше нечего, так что думаю что управлюсь сам
|
|
| |