Главная
Регистрация
Вход
Авторизироваться
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 6 из 7
  • «
  • 1
  • 2
  • 4
  • 5
  • 6
  • 7
  • »
Модератор форума: ADMIN, Nextik  
Новые форматы
NextikДата: Понедельник, 28.03.2011, 07:02 | Сообщение # 76
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация: « 42 »
Статус: Offline
Ну давай, посмотрю что и как. Я недельку подумал и вот что: мне кажется, что грани повёрнутые к "камере" отрисовываются, а все остальные грани не отрисовываются. Или же отрисовывается всё, но на последней строке в коде стоят те грани которые должны быть отрисованы, ещё не понял до конца, но вроде как то так smile
 
NextikДата: Понедельник, 09.05.2011, 11:04 | Сообщение # 77
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация: « 42 »
Статус: Offline
Кто может мне помочь?
 
ssanekДата: Четверг, 12.05.2011, 12:36 | Сообщение # 78
Новичок
Группа: Пользователи
Сообщений: 18
Награды: 0
Репутация: « -2 »
Статус: Offline
Привет. Ну на счёт помоч не знаю. Но я сей час делую свой каркасный 3д движок вот кидаю можешь посмотреть там мало пока что есть, я работую над ним два дня, но поможет разобратся с основами.
Если возникнут вопросы или идеи или баги какие найдёшь пиши.
Прикрепления: 3D045.rar (23.0 Kb)
 
NextikДата: Пятница, 13.05.2011, 14:44 | Сообщение # 79
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация: « 42 »
Статус: Offline
чувствует моё сердце что я не разберусь без коментариев)))
 
ssanekДата: Пятница, 13.05.2011, 17:49 | Сообщение # 80
Новичок
Группа: Пользователи
Сообщений: 18
Награды: 0
Репутация: « -2 »
Статус: Offline
Сори стиль написания у меня такой без рюмки водки не разберёшся... Завтра выложу дополнений исправлю баг с очень длиными прямыми и сделую функцию маштобирования обьектов(всё это впринципе готово отладить надо и до ума довести) ну может добавлю какиенибудь коментарии только не ко всей библиотеки а к внешним процедурам. smile
 
NextikДата: Понедельник, 16.05.2011, 18:04 | Сообщение # 81
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация: « 42 »
Статус: Offline
мда... есть же люди умнее меня оказывается biggrin
блин... в принципе мне нужно учить все языки программирования biggrin ,чтобы быть в этом деле "асом" biggrin ,короче говоря после 27 мая я собираюсь начать усилинно учить всё что встретится у меня на пути smile ,а то я так и ничего путного не создал за всё это время, а этот сайт стал мне как родной smile
 
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
ну опять же пока вас дождёшься я нашёл небольшой недочёт, просчитывание блока происходило даже когда он не поставлен =/, искать свои ошибки в коде трудно, но делать мне больше нечего, так что думаю что управлюсь сам
 
  • Страница 6 из 7
  • «
  • 1
  • 2
  • 4
  • 5
  • 6
  • 7
  • »
Поиск: