Skocz do zawartości

Nowa gra i pierwsze problemy


Rekomendowane odpowiedzi

Napisano

Witam wszystkich szanownych forumowiczów!

Tylko proszę mnie zrozumieć, jestem początkujący...

 

Mam problem: otóż wymodelowałem samochód w programie Anim8or... Jestem w posiadaniu demówki DarkBasic'a i zauważyłem problem: gdy załaduję ten plik (model.3ds) to nie ma połowy; ta część karoserii na którą się spogląda jest przeźroczysta! Co z tym zrobić?

 

Serdecznie pozdrawiam - Kamil

  • Odpowiedzi 15
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano

Pokaz jakis screen ;)...

 

ehh Anim8or - pierwszy program 3d, ktory uzywalem :D ehh lezka w oku sie kreci ;)...

 

 

edit: Juz dodales obrazek, nie widze tutaj braku karoserii ;)...

 

Pozdrawiam

Napisano

Najprawdopodobniej wlaczone jest rysowanie polygonow tylko gdy wierzcholki sa w odpowiedniej kolejnosci. To taka optymalizacja ktora ma powodowac ze nie sa rysowane scianki ktore teoretycznie powinny byc tylem do patrzacego. Wystarczy to wylaczyc i juz powinno byc ok. Niestety nie pamietam dokladnie polecenia bo dawno w opengl nie pisalem a jak sadze robisz to w opengl.

 

Pozdrawiam

Gość WojciechZ
Napisano

Piszesz w dark basicu? Przezuc sie na cos lepszego. Ale jesli sie czujesz w tym dobrze to ok. Co do Problemu - 2side rendering.

Napisano

W załączniku to, co widać...

Zauważcie: widać jak kółko z drugiej strony przebija i lusterko, złom nie? Brak środka karoserii. Kurka, co wpisać, aby wszystko było dobrze?

 

Wpisałem taki kod:

 

load object "model.3ds",1

yrotate object 1,40

fix object pivot 1

scale object 1,90,90,90

sleep 5000

end

 

PS. sorki za kompresje obrazka

Pozdrawiam i zapraszam do dalszej dyskusji!

Napisano

zwiończują cię za tą siatkę :P

strasznie dużo tam tych linii - przesadziłeś ze ściankami. ile ścianek ma ten model?

Bo strasznie kanciasto wygląda a patrząć po siatce jest dość obszerny

Napisano

zrobiłem tak: najpierw narysowałem boczną linię nadwozia, później skopiowałem, zrobiłem z tego "extrude", później wkleiłem 2 razy, zrobiłem z tego "fill", następnie poustawiałem poligony przy szybach itd...

 

co nie tak?

Napisano

Zdecydowanie nie tak. Mam drobna rade.

Albo poszukaj jakiegos dobrego tutka o modelowaniu fur, a najelpiej to sie zdecyduj w co chcesz sie pakowac. Czy w grafike czy w kod. Byc dobrym w obu to nielada wyzwanie.

Napisano

programowanie w DarkBasicu nie sprawia mi żadnych trudności... więc mogę się podszkolić w modelowaniu aut!

 

pewnie jak wymodeluję auto inaczej, ta będzie widoczne całe, czy tak?

 

pozdrawiam

Napisano

No, to mam problem z kodem w DarkBasic :P

 

Czy ktoś wie, na podstawie podanego niżej kodu, czemu samochód nie chce jechać ani do przodu ani do tyłu?

 

Oto kod gry (bez funkcji menu głównego, ekranów tytułowych oraz mojego matrixa):

 

`Matrix

make matrix 1,10000.0,10000.0,25,25

randomize matrix 1,50

 

`Arrays

dim xSpeed#(4)

dim ySpeed#(4)

dim zSpeed#(4)

dim friction#(4)

dim movedist#(4)

dim targetCount(4)

 

`Grawitacja

dim gravity#(0) : gravity#(0)=0.1

 

`Ustawienia

sync on

sync rate 40

hide mouse

autocam off

 

`--------------

`Ladowanie gracza

`--------------

 

for id=1 to 1

make object cube id,1

hide limb id,0

 

load object "media/car.x",10+id

scale object 10+id,20,20,20

 

glue object to limb 10+id,id,0

 

make object collision box id,-4,0,-4,4,4,4,0

next id

 

`--------------

`Main

`--------------

 

main:

 

for id=1 to 1

 

read xPos#

read zPos#

yPos#=get ground height(1,xPos#,zPos#)

 

read yAng

 

position object id,xPos#,yPos#,zPos#

rotate object id,0,0,0

rotate object id+10,0,0,0

yrotate object id,yAng

 

read friction#(id)

read moveDist#(id)

xSpeed#(id)=0

zSpeed#(id)=0

ySpeed#(id)=0

 

next id

 

set camera view 0,0,640,480

 

do

 

`Sterowanie

if upkey()=1 then forward=1 else forward=0

if downkey()=1 then backward=1 else backward=0

if leftkey()=1 then left=1 else left=0

if rightkey()=1 then right=1 else right=0

 

`Sterowanie cd.

move_player(1,forward,backward,left,right)

 

`Kamera

chase_cam(1)

 

`Sluchacz

position listener camera position x(),camera position y(),camera position z()

rotate listener camera angle x(),camera angle y(),camera angle z()

 

gosub update_collision

 

sync

 

loop

 

`Kolizje

update_collision:

 

for id=1 to 1

xPos#=object position x(id)

yPos#=object position y(id)

zPos#=object position z(id)

 

collision=object collision(id,0)

 

if collision>0

xPos#=xPos#-(get object collision x()/2)

zPos#=zPos#-(get object collision z()/2)

endif

 

Position object id,xPos#,yPos#,zPos#

next id

 

return

 

`---------

`Kamera

`---------

function chase_cam(id)

 

yAng#=wrapvalue(object angle y(id)+180)

 

xPos#=object position x(id)

yPos#=object position y(id)

zPos#=object position z(id)

 

camDist=15

camHeight=3

 

xCamPos#=newxvalue(xPos#,yAng#,camDist)

zCamPos#=newZvalue(zPos#,yAng#,camDist)

 

if xCamPos#>499 then xCamPos#=499

if zCamPos#>499 then zCamPos#=499

if xCamPos#

if zCamPos#

 

yCamPos#=get ground height(1,xCamPos#,zCamPos#)+camHeight

if yCamPos#

 

xCamPos#=curvevalue(xCamPos#,camera position x(),4)

yCamPos#=curvevalue(yCamPos#,camera position y(),4)

zCamPos#=curvevalue(zCamPos#,camera position z(),4)

 

position camera xCamPos#,yCamPos#,zCamPos#

point camera xPos#,yPos#+camHeight,zPos#

 

endfunction

 

`-------------------------

`Sterowanie

`-------------------------

function move_player(id,forward, backward, left, right)

 

xPos#=object position x(id)

yPos#=object position y(id)

zPos#=object position z(id)

yAng#=object angle y(id)

 

`Do przodu

if forward=1

xSpeed#(id)=xSpeed#(id)+newxvalue(0,yAng#,moveDist#(id))

zSpeed#(id)=zSpeed#(id)+newzvalue(0,yAng#,moveDist#(id))

endif

 

`Do tylu

if backward=1

xSpeed#(id)=xSpeed#(id)+newxvalue(0,yAng#,moveDist#(id)*-1)

zSpeed#(id)=zSpeed#(id)+newzvalue(0,yAng#,moveDist#(id)*-1)

endif

 

`W lewo

if left=1

yrotate object id,wrapvalue(yAng#-4)

endif

 

`W prawo

if right=1

yrotate object id,wrapvalue(yAng#+4)

endif

 

`--------------------------------------------------

`Fizyka itp.

`--------------------------------------------------

 

xSpeed#(id)=xSpeed#(id)*friction#(id)

zSpeed#(id)=zSpeed#(id)*friction#(id)

 

`Dodaj grawitacje

ySpeed#(id)=ySpeed#(id)+gravity#(0)

 

xPos#=xPos#+xSpeed#(id)

zPos#=zPos#+zSpeed#(id)

yPos#=yPos#-ySpeed#(id)

 

`Kolizje

if xPos#>495 then xPos#=495

if zPos#>495 then zPos#=495

if xPos#

if zPos#

 

if yPos#

 

ySpeed#(id)=ySpeed#(id)+(yPos#-get ground height(1,xPos#,zPos#))

yPos#=get ground height(1,xPos#,zPos#)

 

`------------------------------

`Przyklej samochód do ziemi

`------------------------------

distVal#=1.2

 

ang#=yAng# : frontX#=newxvalue(xPos#,ang#,distVal#) : frontZ#=newzvalue(zPos#,ang#,distVal#)

ang#=yAng#+180 : backX#=newxvalue(xPos#,ang#,distVal#) : backZ#=newzvalue(zPos#,ang#,distVal#)

ang#=yAng#+90 : leftX#=newxvalue(xPos#,ang#,distVal#) : leftZ#=newzvalue(zPos#,ang#,distVal#)

ang#=yAng#-90 : rightX#=newxvalue(xPos#,ang#,distVal#) : rightZ#=newzvalue(zPos#,ang#,distVal#)

 

frontHeight#=get ground height(1,frontX#,frontZ#)

backHeight#=get ground height(1,backX#,backZ#)

leftHeight#=get ground height(1,leftX#,leftZ#)

rightHeight#=get ground height(1,rightX#,rightZ#)

 

xAng#=curveangle((backHeight#-frontHeight#)*30,object angle x(id+10),5)

zAng#=curveangle((leftHeight#-rightHeight#)*30,object angle z(id+10),5)

 

rotate object id+10,xAng#,0,zAng#

 

`-----------------

`Samochód zjezdzajacy z górek

`-----------------

xMoveDist#=(backHeight#-frontHeight#)/30

zMoveDist#=(leftHeight#-rightHeight#)/30

 

xSpeed#(id)=xSpeed#(id)+newxvalue(0,yAng#,xMoveDist#)

zSpeed#(id)=zSpeed#(id)+newzvalue(0,yAng#,xMoveDist#)

 

xSpeed#(id)=xSpeed#(id)+newxvalue(0,yAng#-90,zMoveDist#)

zSpeed#(id)=zSpeed#(id)+newzvalue(0,yAng#-90,zMoveDist#)

 

endif

 

`Odswiez pozycje samochodu

position object id,xPos#,yPos#,zPos#

position sound id+10,xPos#,yPos#,zPos#

 

endfunction

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się



×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności