----- cute -----
AppTitle "casa"
Graphics3D 800,600,16,1
;practicas por adolfo andrino sanchez
;programando gravedad, movimiento y texturas.
; mesh = son objetos poligonales
; objetos minimos 1 mesh una camara y un mesh,
; las luces,pivots,mesh, camaras, etc. son entidades "entity"
SetBuffer BackBuffer()
Tipo_Escenario=1
Tipo_Jugador=2
Tipo_objeto1=3
Tipo_objeto2=4
movimiento=-1
abajo=0
castillo=LoadMesh("modelo2/casa.3ds")
pelota1=CreateSphere(8)
pelota2=CreateSphere(8)
;poniendo textura piedra a el objeto pelota1 y pelota2
textura_piedra=LoadTexture("modelo2/piedra.jpg") ;carga textura a la variable=textura_piedra
EntityTexture pelota1,textura_piedra
EntityTexture pelota2,textura_piedra
EntityType Castillo, Tipo_Escenario
EntityType pelota1, Tipo_objeto1
EntityType pelota2 ,Tipo_objeto2
pivot=CreatePivot()
EntityType pivot, Tipo_Jugador
EntityRadius pivot,40
PositionEntity pivot, 0,-20,0
camara=CreateCamera(pivot)
CameraRange camara, 1, 1500
ScaleEntity pelota1,10,10,10
ScaleEntity pelota2,10,10,10
EntityRadius pelota1,10
EntityRadius pelota2,10
PositionEntity camara,0,40,0
PositionEntity pelota1,150,0,100
PositionEntity pelota2,-50,0,100
;luz general
AmbientLight 200,200,200
;color de fondo por defecto negro
CameraClsColor camara,0,0,0
; Configuramos las colisiones
Collisions Tipo_Jugador, Tipo_Escenario, 2,2 ; colision, tipo1, tipo2, "0=detener"
Collisions Tipo_objeto1,Tipo_objeto2,2,0 ; "1=deslizar sin gravedad"
Collisions tipo_objeto1,Tipo_escenario ,2,0 ; "2=deslizar con gravedad"
Collisions tipo_jugador,tipo_objeto1,2,2
Collisions tipo_jugador,tipo_objeto2,2,2
;Bucle Principal
While KeyHit(1)=False
; --- teclas direccion movimiento y rotacion ---
If KeyDown(200)=True Then
MoveEntity pivot,0,0,5
EndIf
If KeyDown(208)=True Then
MoveEntity pivot,0,0,-5
EndIf
If KeyDown(205)=True Then
TurnEntity pivot,0,-2,0
EndIf
If KeyDown(203)=True Then
TurnEntity pivot,0,2,0
EndIf
; mirar parriba pabajo teclas="a" y "z"
If KeyDown(30)=True Then
TurnEntity camara,-3,0,0
EndIf
If KeyDown(44)=True Then
TurnEntity camara,3,0,0
EndIf
; --- movimiento de pelotas ---
MoveEntity pelota1,movimiento,abajo,0 ;movimiento de pelota eje_x
If EntityCollided(pelota1,tipo_objeto2)=pelota2 Then
movimiento=0
abajo=-1
EndIf
If EntityCollided(pelota1,tipo_escenario)=castillo Then
movimiento=-1
abajo=0
EndIf
;Gravedad
MoveEntity pivot, 0,-2,0
;Para Actualizar las colisiones
UpdateWorld
RenderWorld
Text 320,10,"www.fitopaisa.3a2.com"
Text 10,30,"comprobaciones de gravedad y movimiento"
Text 390,30,"Usa las teclas de dirección, cámara ´a´ y ´z´"
; Text 10,50,"movimiento inicial:"+movimiento
Text 10,60,"colisión pelota"+EntityCollided(pelota1,tipo_objeto2)
Text 10,70,"colisión escenario:"+EntityCollided(pelota1,tipo_escenario)
; Text 10,80,"abajo:"+abajo
; Punto de mira
Line 380,300,420,300
Line 400,280,400,320
Flip
Wend
End
--- fin ---