AMD Duron 1.5ghz \
GForce4 Mx440 =========> 40 fps
256m ram /
but...i paste image each loop ...of 640 by 480 you never see the real....screen i mean you always see the image from the ..."before" loop... see the code you will understand ..when ill have much time ill maybe try to speed it a little bit
but if you like this... try this (i made both with almost the same method):
sync on
sync rate 0
hide mouse
backdrop on : color backdrop rgb(150,100,0)
create bitmap 1,1024,1024
ink rgb(100,0,0),0
box 0,0,512,512
ink rgb(0,100,0),0
box 512,0,1023,512
ink rgb(0,0,100),0
box 0,512,512,1023
ink rgb(0,0,0),0
box 512,512,1023,1023
get image 1,0,0,1024,1024
delete bitmap 1
make matrix 1,5000,5000,20,20
prepare matrix texture 1,1,1,1
fill matrix 1,0,0
rem ------------------------------------------------
rem corps
make object box 1,100,200,100
rem bras
make object box 2,30,100,30
make mesh from object 1,2
delete object 2
rem jambe
make object box 2,30,100,30
make mesh from object 2,2
delete object 2
rem point de rotation
make object plain 2,1,1
make mesh from object 3,2
delete object 2
rem faire un object pour le corps....pour collision
make mesh from object 4,1
make object 2,4,0
delete mesh 4
rem adder les bras/jambe au perso
make object 10,2,0
for i=1 to 4
add limb 1,i,1
next i
rem adder les jambes au perso
for i=1 to 4
add limb 1,i+4,2
next i
rem adder les point de rotation au perso
for i=9 to 16
add limb 1,i,3
next i
rem fixer les bras/jambe aux point de rotation
for i=1 to 8
link limb 1,i,i+8
next i
rem fixer les point de rotation aux.....membre ki les font bouger..
for i=1 to 4
link limb 1,8+(2*i),(i*2)-1
next i
rem offsetter les bras/jambe de leur point de rotation
for i=1 to 8
offset limb 1,i,0,-50,0
next i
rem offset les bras/jambe ...du bas ..par rapport..a leur bras/jambe du haut
for i=1 to 4
offset limb 1,8+(i*2),0,-50,0
next i
rem POSITIONNEMENT FINAL: mettre les bras/jambe a la bonne place (en positionnant seulemnt leur point de rotation)
offset limb 1,9,-60,100,0
offset limb 1,11,60,100,0
offset limb 1,13,-40,-100,0
offset limb 1,15,40,-100,0
rem Tete
make mesh from object 4,10
add limb 1,17,4
offset limb 1,17,0,125,0
set object rotation ZYX 1
clear all object keyframes 1
i=1:rotate limb 1,8+((i*3)-(3-i)),45,90,0:rotate limb 1,10+((i*3)-(3-i)),45,270,0:set object keyframe 1,0
rotate limb 1,13,45,0,0:rotate limb 1,14,315,0,0:rotate limb 1,9,45,45,0:rotate limb 1,11,315,90,0:set object keyframe 1,10
rotate limb 1,13,0,0,0:rotate limb 1,14,0,0,0:rotate limb 1,15,45,0,0:rotate limb 1,16,315,0,0:rotate limb 1,9,45,90,0:rotate limb 1,11,315,135,0:set object keyframe 1,20
rotate limb 1,15,0,0,0:rotate limb 1,16,0,0,0:rotate limb 1,13,45,0,0:rotate limb 1,14,315,0,0:rotate limb 1,9,45,45,0:rotate limb 1,11,315,90,0:set object keyframe 1,30
rem -------------------------------------------
delete object 10
delete object 2
x#=2500
z#=2500
y#=0
ink rgb(255,255,255),0
Direction=0
make object plain 100,640.0*0.85,480.0*0.85
position object 100,2500,object size y(100)/2,4500
yrotate object 100,180
make object plain 101,640.0*0.85,480.0*0.85
position object 101,2500,object size y(100)/2,4500+3
position object 1,x#,y#+90,z#
position camera x#,y#+150,z#
rotate camera 25,ay#,0
move camera -250
scale object 1,30,30,30
yrotate object 1,180
fix object pivot 1
get image 200,0,0,64*2,48*2
do
NbTouche=LeftKey()+RightKey()+Upkey()+Downkey()
if (upkey()) and (NbTouche=1) then Direction=1
if (downkey()) and (NbTouche=1) then Direction=5
if (leftkey()) and (NbTouche=1) then Direction=7
if (rightkey()) and (NbTouche=1) then Direction=3
if (upkey()) and (leftkey()) (NbTouche=2) then Direction=8
if (upkey()) and (rightkey()) (NbTouche=2) then Direction=2
if (downkey()) and (rightkey()) (NbTouche=2) then Direction=4
if (downkey()) and (leftkey()) (NbTouche=2) then Direction=6
Difx#=camera position x()-x#
Difz#=camera position z()-z#
CamAng#=atanfull(Difx#,Difz#)
Camx#=newxvalue(x#,CamAng#,500)
Camz#=newzvalue(z#,CamAng#,500)
if direction<>0
if object looping(1)=0 then loop object 1,10,30
ay#=wrapvalue(((Direction-1)*45)+(CamAng#-180))
x#=newxvalue(x#,ay#,10)
z#=newzvalue(z#,ay#,10)
direction=0
else
stop object 1
endif
yrotate object 1,ay#
position object 1,x#,y#+90,z#
if sqrt((camera position x()-x#)^2+(camera position z()-z#)^2)>500 then Position Camera CamX#,camera position y(),CamZ#
point camera x#,y#+150,z#
oldcamx#=camera position x()
oldcamy#=camera position y()
oldcamz#=camera position z()
oldcamay#=camera angle y()
oldcamax#=camera angle x()
oldcamaz#=camera angle z()
position camera 2500,200,4500+300
rotate camera 0,180,0
hide object 100
hide object 101
if object position z(1)>4500 then hide object 1
get image 100,0,0,64*2,48*2
texture object 100,100
paste image 200,0,0
set camera view 0,0,64*2,48*2
position camera oldcamx#,oldcamy#,oldcamz#
rotate camera oldcamax#,oldcamay#,oldcamaz#
show object 100
show object 101
show object 1
sync
get image 200,0,0,64*2,48*2
set cursor 0,0
print Screen Fps()
set camera view 0,0,640,480
sync
loop
shit.....i have the almost the same thing...2 time in my comp but my older version seem to be..better ... this is my old version (the above one is the last version..test both to see):
sync on
sync rate 0
hide mouse
backdrop on : color backdrop rgb(150,100,0)
create bitmap 1,1024,1024
ink rgb(100,0,0),0
box 0,0,512,512
ink rgb(0,100,0),0
box 512,0,1023,512
ink rgb(0,0,100),0
box 0,512,512,1023
ink rgb(0,0,0),0
box 512,512,1023,1023
get image 1,0,0,1024,1024
delete bitmap 1
make matrix 1,5000,5000,20,20
prepare matrix texture 1,1,1,1
fill matrix 1,0,0
rem ------------------------------------------------
rem corps
make object box 1,100,200,100
rem bras
make object box 2,30,100,30
make mesh from object 1,2
delete object 2
rem jambe
make object box 2,30,100,30
make mesh from object 2,2
delete object 2
rem point de rotation
make object plain 2,1,1
make mesh from object 3,2
delete object 2
rem faire un object pour le corps....pour collision
make mesh from object 4,1
make object 2,4,0
delete mesh 4
rem adder les bras/jambe au perso
make object 10,2,0
for i=1 to 4
add limb 1,i,1
next i
rem adder les jambes au perso
for i=1 to 4
add limb 1,i+4,2
next i
rem adder les point de rotation au perso
for i=9 to 16
add limb 1,i,3
next i
rem fixer les bras/jambe aux point de rotation
for i=1 to 8
link limb 1,i,i+8
next i
rem fixer les point de rotation aux.....membre ki les font bouger..
for i=1 to 4
link limb 1,8+(2*i),(i*2)-1
next i
rem offsetter les bras/jambe de leur point de rotation
for i=1 to 8
offset limb 1,i,0,-50,0
next i
rem offset les bras/jambe ...du bas ..par rapport..a leur bras/jambe du haut
for i=1 to 4
offset limb 1,8+(i*2),0,-50,0
next i
rem POSITIONNEMENT FINAL: mettre les bras/jambe a la bonne place (en positionnant seulemnt leur point de rotation)
offset limb 1,9,-60,100,0
offset limb 1,11,60,100,0
offset limb 1,13,-40,-100,0
offset limb 1,15,40,-100,0
rem Tete
make mesh from object 4,10
add limb 1,17,4
offset limb 1,17,0,125,0
set object rotation ZYX 1
clear all object keyframes 1
i=1:rotate limb 1,8+((i*3)-(3-i)),45,90,0:rotate limb 1,10+((i*3)-(3-i)),45,270,0:set object keyframe 1,0
rotate limb 1,13,45,0,0:rotate limb 1,14,315,0,0:rotate limb 1,9,45,45,0:rotate limb 1,11,315,90,0:set object keyframe 1,10
rotate limb 1,13,0,0,0:rotate limb 1,14,0,0,0:rotate limb 1,15,45,0,0:rotate limb 1,16,315,0,0:rotate limb 1,9,45,90,0:rotate limb 1,11,315,135,0:set object keyframe 1,20
rotate limb 1,15,0,0,0:rotate limb 1,16,0,0,0:rotate limb 1,13,45,0,0:rotate limb 1,14,315,0,0:rotate limb 1,9,45,45,0:rotate limb 1,11,315,90,0:set object keyframe 1,30
rem -------------------------------------------
delete object 10
delete object 2
x#=2500
z#=2500
y#=0
ink rgb(255,255,255),0
Direction=0
make object plain 100,640.0*0.85,480.0*0.85
position object 100,2500,object size y(100)/2,4500
yrotate object 100,180
make object plain 101,640.0*0.85,480.0*0.85
position object 101,2500,object size y(100)/2,4500+3
position object 1,x#,y#+90,z#
position camera x#,y#+150,z#
rotate camera 25,ay#,0
move camera -250
scale object 1,30,30,30
yrotate object 1,180
fix object pivot 1
UpdateMirroir=0
do
UpdateMirroir=UpdateMirroir+1
NbTouche=LeftKey()+RightKey()+Upkey()+Downkey()
if (upkey()) and (NbTouche=1) then Direction=1
if (downkey()) and (NbTouche=1) then Direction=5
if (leftkey()) and (NbTouche=1) then Direction=7
if (rightkey()) and (NbTouche=1) then Direction=3
if (upkey()) and (leftkey()) (NbTouche=2) then Direction=8
if (upkey()) and (rightkey()) (NbTouche=2) then Direction=2
if (downkey()) and (rightkey()) (NbTouche=2) then Direction=4
if (downkey()) and (leftkey()) (NbTouche=2) then Direction=6
Difx#=camera position x()-x#
Difz#=camera position z()-z#
CamAng#=atanfull(Difx#,Difz#)
Camx#=newxvalue(x#,CamAng#,500)
Camz#=newzvalue(z#,CamAng#,500)
if direction<>0
if object looping(1)=0 then loop object 1,10,30
ay#=wrapvalue(((Direction-1)*45)+(CamAng#-180))
x#=newxvalue(x#,ay#,10)
z#=newzvalue(z#,ay#,10)
direction=0
else
stop object 1
endif
yrotate object 1,ay#
position object 1,x#,y#+90,z#
if sqrt((camera position x()-x#)^2+(camera position z()-z#)^2)>500 then Position Camera CamX#,camera position y(),CamZ#
point camera x#,y#+150,z#
oldcamx#=camera position x()
oldcamy#=camera position y()
oldcamz#=camera position z()
oldcamay#=camera angle y()
oldcamax#=camera angle x()
oldcamaz#=camera angle z()
position camera 2500,200,4500+300
rotate camera 0,180,0
hide object 100
hide object 101
if object position z(1)>4500 then hide object 1
if UpdateMirroir=2
get image 100,0,0,64*2,48*2
texture object 100,100
paste image 200,0,0
set camera view 0,0,64*2,48*2
UpdateMirroir=0
endif
set cursor 0,0
print Screen Fps()
position camera oldcamx#,oldcamy#,oldcamz#
rotate camera oldcamax#,oldcamay#,oldcamaz#
show object 100
show object 101
show object 1
if UpdateMirroir=1 then get image 200,0,0,64*2,48*2
set camera view 0,0,640,480
sync
loop