Rem ***** Main Source File *****
REM F08, mindesign entertainment
Rem ***** Includes *****
#Include "Includes/builder.dba"
Rem ********************
Rem ***** ***** Inicializ�l�s ***** *****
Rem Autocam off
Hide Mouse
Sync On : Sync Rate 60
Rem ***** ***** ***** ***** ***** *****
Rem ///// ///// Glob�lis v�ltoz�k
Rem TPS Sug�r
Global TPS_R As Float : TPS_R=30
Rem Karakter
Global Karakter As Integer : Karakter=FreeObject()
Rem Alapok
Global Alap As Integer : Alap=FreeObject()+100
Rem Ugr�s v�ltoz�k
Global MaxY# as Float : MaxY#=5.0
Global SzintY# as Float : SzintY#=MaxY#-0.3
Global DeltaY# as Float : DeltaY#=0.1
Global Jump as Boolean : Jump=0
Global yPuffer# as Float
Global Mozgas$ : Mozgas$="elore"
Rem Builder
DIM map(1000,1000) as byte
Global done as boolean
Rem Glob�lis v�ltoz�k \\\\\ \\\\\
Rem Debug Matrix
Make matrix 1,100,100,25,25
Rem TPS Kamera
Global Self As Integer : Self=1
Make object cube Self,10 : Hide object Self
Rem Karakter Bet�lt�se
Make object box Karakter, 5,10,5
Rem Alapok bet�l�se
Make object box Alap,15,5,15
Hide object Alap
Rem P�lya bet�lt�se
Build_Map(20)
Rem Main Loop
Do
Rem Alprogramok megh�v�sa
Gosub Control_Karakter
Gosub Control_Camera
Gosub Debug
Rem K�perny� friss�t�s
Sync
Loop
Rem Kamera kezel� alprogram
Control_Camera:
Rem Eg�r
Rotate object Self, Object Angle X(Self)+MouseMoveY(),Object Angle Y(Self)+MouseMoveX(),0
Rem Debug
If Object Angle X(Self)<10 then xRotate Object Self,10
If Object Angle X(Self)>50 then xRotate Object Self,50
If Object Angle Y(Self)>360 then yRotate Object Self,0
If Object Angle Y(Self)<0 then yRotate Object Self,360
Rem Asszimil�l�d�s
Position camera Object Position X(Self),Object Position Y(Self)+yPuffer#,Object Position z(Self)
Rotate camera Object Angle X(Self),Object Angle Y(Self),Object Angle Z(Self)
Rem Sug�r
Move camera TPS_R*(-1)
Return
Rem Karakter kezel� alprogram
Control_Karakter:
Rem Karakter mozgat�sa
If not jump
Mozgas$=""
If keystate(17)
Move object Karakter,0.5
Position Object Self, Object Position X(Karakter),Object Position Y(Self),Object Position Z(Karakter)
If not jump then Mozgas$="elore"
Endif
If keystate(31)
Move object Karakter,-0.5
Position Object Self, Object Position X(Karakter),Object Position Y(Self),Object Position Z(Karakter)
If not jump then Mozgas$="hatra"
Endif
If keystate(32)
yRotate object Karakter,Object Angle Y(Karakter)+90
Move object Karakter,0.5
yRotate object Karakter,Object Angle Y(Karakter)-90
Position Object Self, Object Position X(Karakter),Object Position Y(Self),Object Position Z(Karakter)
If not jump then Mozgas$="jobbra"
Endif
If keystate(30)
yRotate object Karakter,Object Angle Y(Karakter)-90
Move object Karakter,0.5
yRotate object Karakter,Object Angle Y(Karakter)+90
Position Object Self, Object Position X(Karakter),Object Position Y(Self),Object Position Z(Karakter)
If not jump then Mozgas$="balra"
Endif
Rem Sr�g
If keystate(17) and keystate(32) then Mozgas$="jobbfel"
If keystate(17) and keystate(30) then Mozgas$="balfel"
If keystate(31)
If keystate(32) then Mozgas$="jobble"
If keystate(30) then Mozgas$="balle"
Endif
Rem Mozg�s v�ge
Endif
Rem Ugr�s
If spacekey() then Jump=1
If Jump
If Mozgas$="elore" then Move object Self,0.5
If Mozgas$="hatra" then Move object Self,-0.5
yPuffer#=(yPuffer#+(MaxY#-yPuffer#)*DeltaY#)
If yPuffer#>=SzintY# and DeltaY#>0 then DeltaY#=(-1)*DeltaY#
If yPuffer#<=0.005 and DeltaY#<0
Jump=0
DeltaY#=DeltaY#*(-1)
yPuffer#=0
Endif
Endif
Rem Karakter szink
Position Object Karakter, Object Position X(Self),yPuffer#,Object Position Z(Self)
Position Object Self, Object Position X(Self),0,Object Position Z(Self)
yRotate Object Karakter, Object Angle Y(Self)
Return
Rem Debug
Debug:
Set Cursor 1,1
Print "xAngle: ",Object Angle X(Self)
Print "yAngle: ",Object Angle Y(Self)
Print "FPS: ",Screen FPS()
Print Jump
Print "Y ",yPuffer#
Print "DeltaY ",DeltaY#
Print Object Position Y(Self)
Print Mozgas$
Return
Rem ********** F�ggv�nyek **********
Rem BuildMap
Function Build_Map(elemszam as integer)
Randomize timer()
done=0
map(50,50)=1
map(49,50)=1
kirak(49,50,2,elemszam)
For n=1 to 1000
For m=1 to 1000
If map(n,m)>0
temp=FreeObject()
Clone object temp,Alap
Position object temp,m*17,0,n*17
Endif
Next m
Next n
Endfunction
Rem FreeObject
Function FreeObject()
I=1
Repeat
I=I+1
Until Object Exist(I)=0
Endfunction I
Rem ********************************Rem 0:le,1:jobbra,2:fel,3:balra}
Rem 0:lentr�l,1:jobbr�l,2:fentr�l,3:balr�l}
DIM map(1000,1000) as byte
Global done as boolean
Set text font "Arial"
Set text size 7
randomize timer()
done=0
map(50,50)=1
map(49,50)=1
kirak(49,50,2,200)
Rem Main
Do
cls
For w=0 to 80
For v=0 to 120
Print map(w,v)," ";
Next v
Print " "
Next w
Sync
Loop
Function kirak(x as integer,y as integer,honnan as integer,van_meg as integer)
Rem Loc�lis deklar�ci�k
Local DIM mehet(3) as boolean
i as integer
uj_x as integer
uj_y as integer
tempx as integer
tempy as integer
irany as integer
jo as boolean
Rem Begin
Rem fillchar(mehet,sizeof(mehet),true);
For t=0 to 3
mehet(t)=1
Next t
tempx=x
tempy=y
Select honnan
Case 0
mehet(2)=0
tempx=x-1
endcase
Case 1
mehet(3)=0
tempy=y-1
endcase
Case 2
mehet(0)=0
tempx=x+1
endcase
Case 3
mehet(1)=0
tempy=y+1
endcase
Endselect
i=0
while done=0 and (i<=2)
Rem begin
map(x,y)=0
irany=RND(3)
while mehet(irany)=0
irany=RND(3)
endwhile
mehet(irany)=0
uj_x=x
uj_y=y
Select irany
Case 0
uj_x=x+1
endcase
Case 1
uj_y=y+1
endcase
Case 2
uj_x=x-1
endcase
Case 3
uj_y=y-1
endcase
endselect
jo=1
if map(uj_x,uj_y)=1 then jo=0
if (map(uj_x-1,uj_y)=1) then jo=0
if (map(uj_x,uj_y-1)=1) then jo=0
if (map(uj_x+1,uj_y)=1) then jo=0
if (map(uj_x,uj_y+1)=1) then jo=0
map(tempx,tempy)=0
if (map(uj_x+1,uj_y+1)=1) then jo=0
if (map(uj_x+1,uj_y-1)=1) then jo=0
if (map(uj_x-1,uj_y+1)=1) then jo=0
if (map(uj_x-1,uj_y-1)=1) then jo=0
map(tempx,tempy)=1
if jo
Rem begin
map(uj_x,uj_y)=1
if van_meg=0
Rem begin
map(x,y)=1
done=1
else
map(x,y)=1
kirak(uj_x,uj_y,irany,van_meg-1)
endif
endif
inc i
endwhile
if done=0
Rem begin
map(x,y)=0
endif
Endfunction
Remstart
procedure kiir;
var f:text;
i,j:integer;
temp:string[101];
begin
assign(f,'ki.ki');
rewrite(f);
for i:=0 to 100 do
begin
temp:='';
for j:=0 to 100 do
begin
if map[i,j]=1 then
begin
temp:=temp+'X';
end else begin
temp:=temp+' ';
end;
end;
writeln(f,temp);
end;
close(f);
end;
begin
randomize;
done:=false;
map[50,50]:=1;
map[49,50]:=1;
kirak(49,50,2,200);
kiir;
end.
Remend
[COMMON]
PathToEXE=D:\temp\Projects\f08\CrashOn_09_26_08.txt
[CEXE]
m_dwRuntimeErrorDWORD=Internal Code:12002
m_dwRuntimeErrorLineDWORD=1042
Rem ***** Included Source File *****
REM KIDA BETEG KONSZEPTJE
Rem Inicializ�l�s
Rem Autocam off
Hide Mouse
Sync On : Sync Rate 60
Rem Glob�lis v�ltoz�k
Rem TPS Sug�r
Global TPS_R As Float : TPS_R=30
Rem Karakter
Global Karakter As Integer : Karakter=FreeObject()
Rem Ugr�s v�ltoz�k
Global MaxY# as Float : MaxY#=5.0
Global SzintY# as Float : SzintY#=MaxY#-0.3
Global DeltaY# as Float : DeltaY#=0.1
Global Jump as Boolean : Jump=0
Global yPuffer# as Float
Global Mozgas$ : Mozgas$="elore"
Rem Debug Matrix
Make matrix 1,100,100,25,25
Rem TPS Kamera
Global Self As Integer : Self=1
Make object cube Self,10 : Hide object Self
Rem Karakter Bet�lt�se
Make object box Karakter, 5,10,5
Rem Main Loop
Do
Rem Alprogramok megh�v�sa
Gosub Control_Karakter
Gosub Control_Camera
Gosub Debug
Rem K�perny� friss�t�s
Sync
Loop
Rem Kamera kezel� alprogram
Control_Camera:
Rem Eg�r
Rotate object Self, Object Angle X(Self)+MouseMoveY(),Object Angle Y(Self)+MouseMoveX(),0
Rem Debug
If Object Angle X(Self)<10 then xRotate Object Self,10
If Object Angle X(Self)>50 then xRotate Object Self,50
If Object Angle Y(Self)>360 then yRotate Object Self,0
If Object Angle Y(Self)<0 then yRotate Object Self,360
Rem Asszimil�l�d�s
Position camera Object Position X(Self),Object Position Y(Self)+yPuffer#,Object Position z(Self)
Rotate camera Object Angle X(Self),Object Angle Y(Self),Object Angle Z(Self)
Rem Sug�r
Move camera TPS_R*(-1)
Return
Rem Karakter kezel� alprogram
Control_Karakter:
Rem Karakter mozgat�sa
If not jump
Mozgas$=""
If keystate(17)
Move object Karakter,0.5
Position Object Self, Object Position X(Karakter),Object Position Y(Self),Object Position Z(Karakter)
If not jump then Mozgas$="elore"
Endif
If keystate(31)
Move object Karakter,-0.5
Position Object Self, Object Position X(Karakter),Object Position Y(Self),Object Position Z(Karakter)
If not jump then Mozgas$="hatra"
Endif
If keystate(32)
yRotate object Karakter,Object Angle Y(Karakter)+90
Move object Karakter,0.5
yRotate object Karakter,Object Angle Y(Karakter)-90
Position Object Self, Object Position X(Karakter),Object Position Y(Self),Object Position Z(Karakter)
If not jump then Mozgas$="jobbra"
Endif
If keystate(30)
yRotate object Karakter,Object Angle Y(Karakter)-90
Move object Karakter,0.5
yRotate object Karakter,Object Angle Y(Karakter)+90
Position Object Self, Object Position X(Karakter),Object Position Y(Self),Object Position Z(Karakter)
If not jump then Mozgas$="balra"
Endif
Rem Sr�g
If keystate(17) and keystate(32) then Mozgas$="jobbfel"
If keystate(17) and keystate(30) then Mozgas$="balfel"
If keystate(31)
If keystate(32) then Mozgas$="jobble"
If keystate(30) then Mozgas$="balle"
Endif
Rem Mozg�s v�ge
Endif
Rem Ugr�s
If spacekey() then Jump=1
If Jump
If Mozgas$="elore" then Move object Self,0.5
If Mozgas$="hatra" then Move object Self,-0.5
yPuffer#=(yPuffer#+(MaxY#-yPuffer#)*DeltaY#)
If yPuffer#>=SzintY# and DeltaY#>0 then DeltaY#=(-1)*DeltaY#
If yPuffer#<=0.005 and DeltaY#<0
Jump=0
DeltaY#=DeltaY#*(-1)
yPuffer#=0
Endif
Endif
Rem Karakter szink
Position Object Karakter, Object Position X(Self),yPuffer#,Object Position Z(Self)
Position Object Self, Object Position X(Self),0,Object Position Z(Self)
yRotate Object Karakter, Object Angle Y(Self)
Return
Rem Debug
Debug:
Set Cursor 1,1
Print "xAngle: ",Object Angle X(Self)
Print "yAngle: ",Object Angle Y(Self)
Print "FPS: ",Screen FPS()
Print Jump
Print "Y ",yPuffer#
Print "DeltaY ",DeltaY#
Print Object Position Y(Self)
Print Mozgas$
Return
Rem ********** F�ggv�nyek **********
Rem FreeObject
Function FreeObject()
I=1
Repeat
I=I+1
Until Object Exist(I)=0
Endfunction I