PDA

Ver la versión completa : Viejo Pascal



MartínAriel
03-02-2005, 05:20
:) Hola:
Mi problema está en que Turbo Pascal 7.0 no me permite escribir infinitos renglones para mi programa.Estaba intentando hacer un juego , y este utiliza muchos dibujos(creados en Icon Maker) ,los cuales ocupan demasiado espacio . Pense entonces crear subarchivos en los cuales se divida el juego y que vayan siendo llamados desdo un archivo principal.Sin embargo no se si esto es posible. Si pueden decirme como hacerlo , o darme otra solución a mI problema les agradecería mucho

NOTA:MUCHAS GRACIAS POR TODO , LA WEB ESTÁ MUY BUENA. :) :)

Ivanchuk
03-02-2005, 22:07
Pos yo creo que eso ta bien. Puedes hacer unidades o escribir en distintos archivos y meterlos en el principal con $L... 1Saludo

MartínAriel
04-02-2005, 05:48
:) Hola:
Perdoná pero no entendí como hacer para unir los programas secundarios al primario ,ni tampoco que me quicistes decir con $L... .

NOTA : GRACIAS POR CONTESTAR. :)

MartínAriel
08-02-2005, 03:04
;) Hola:
Hace rato que no me responden , si no tienen la respuesta , me lo dicen y esta todo bien, hace rato que intento solucionar el problema y no serían los único que desconocen de como realizar esto.

NOTA: Gracias de todos modos. ;)

clarinetista
08-02-2005, 14:03
No seas impaciente, seguro que se puede ayudarte, pero no todo el mundo esta a todas horas conectado. :D
Un saludo

MartínAriel
09-02-2005, 05:59
:) Hola:
Todo bien , perdonen si sonó algo mal el mensaje que anteriormente les escribí .
Bueno entonces solo sigo esperando la respuesta.

NOTA: MUY BUENA LA WEB. :)

VirVant
13-02-2005, 04:13
Wenasss:
Vas bien encaminado, puedes crearte librerias, weno en pascal "unidades", en ellas vas ha poder poner funciones y procedimientos; para ello en el programa principal has de poner "uses miunidad", el nombre del archivo de la unidad
se ha de llamar, en este caso, miunidad.pas, que al compilarla quedara miunidad.tpu.
Las unidades tienen unas clausulas un poco diferente a los programas, si no encuentras como hacerlo, enviame un mail

juanma.m.d
13-02-2005, 14:43
virvant aki se hace todo por el foro no por emails :S

Ivanchuk
13-02-2005, 20:00
Perdon Martin, es que hace rato que no paso por el foro, mucho estudio :rolleyes: , jeje. Que me equivoque con la directiva esa, la que tenes que usar es $I, de esta manera:

{$I codigo.pas}
Asi como lo ves, sese, no es un comentario :D . Lo que tengas escrito en codigo.pas se anexara a tu codigo principal en una secuencia logica.
Supongamos que tenes escrito esto en codigo.pas:


procedure ejemplo;
begin
Write('Toy en otro pas XDD');
end;

Tonces para incluirlo en tu codigo principal haces esto:


program codigoprincipal;
uses crt;
{$I codigo.pas}
begin
ejemplo;{llamada a proc que ta en codigo.pas}
end.

De todas maneras te recomiendo que uses unidades, hacen mas legible el codigo. 1saludo

MartínAriel
15-02-2005, 19:35
:) Hola:
Perdonen que no les contesté , pero es porque estaba arreglando la computadora.
Bueno , entonces tendría que hacer algo como lo que voy a escribir a continuación:

Escribo las procedimientos y funciones para guardarla como unidad. Por ejemplo:

USES DIBUJOS;
PROCEDURE IMAGEN;
BEGIN
SETCOLOR(0);
SETFILLSTYLE(1,RED);
BAR(100,100,200,200);
OUTTEXTXY(150,150,'HOLA');
END;
END.


Al guardar esto se crearía la unidad Dibujos. Entonces voy al programa principal :


USES GRAPH,DIBUJO;
VAR A,B:INTEGER;
BEGIN
A:=DETECT;
INITGRAPH(A,B,'C:/TP/BGI');
IMAGEN;
END.

Esto entonces sería un programa que dibuja un rectangulo de color rojo , y dentro de este la palabra "HOLA".

Les pido me digan si tengo algun error en mi proceder.

NOTA:PERDÓN NUEVAMENTE POR ESTAR AUSENTE POR TANTO TIEMPO Y MUCHÍSIMAS GRACIAS POR RESPONDER.
MUY BUENA WEB. :D

Ivanchuk
18-02-2005, 13:27
USES DIBUJOS;
PROCEDURE IMAGEN;
BEGIN
SETCOLOR(0);
SETFILLSTYLE(1,RED);
BAR(100,100,200,200);
OUTTEXTXY(150,150,'HOLA');
END;
END.


emm ese codigo tiene que tener estructura de unidad para que se compile como tal.

Al guardar esto se crearía la unidad Dibujos. Entonces voy al programa principal :
Si guardas y compilas exactamente como está NO SE CREA LA UNIDAD.
Me pareque no sabes como hacer una unidad en tp7 ;) igual no es tan dificil, asi que aca va la estructura de una unidad.


UNIT Dibujos;
INTERFACE
procedure Imagen;
IMPLEMENTATION
procedure Imagen;
begin
SetColor(0);
SetFillStyle(1, Red);
Bar(100,100,200,200);
OutTextXY(150,150,'HOLA');
end;
BEGIN
END.

Gue, el archivo que contiene este codigo se debe llamar igual que el nombre de la unidad, en este caso Dibujo.pas. Debajo de INTERFACE declaras solo la cabecera de las funciones, procedimientos, constantes, variables, etc. que queres exportar, es decir todo lo que va a ser usado desde otro programa que use esta unidad. Luego en IMPLEMENTATION va la implementacion de la funciones y/o procedimientos. Todo lo que declares abajo de IMPLEMENTATION sera visible solo en dicha unidad. La ultima parte de la unidad (BEGIN END.) es para inicializacion. Luego de compilar se genera el archivo miunidad.tpu que es el que tenes que usar. We creo que logre explicarme, cualquier cosa pega el grito :0= . 1saludo..

MartínAriel
01-03-2005, 22:32
:D Hola:
Muchas gracias, ya me funcionó todo bien.

Ahora el tema está en que en algunas de estas unidades se me hace más sensillo utilizar las mismas variables , pero al llamar a las dos unidades en un mismo programa y utilizar las variables repetidas, solo las acepta para la primar unidad declarada. Me gustaría que si supiesen la forma de resolver mi problema me la contaran.

Bueno les cuento que lo que estoy haciendo es un juego , dibujé el personaje y el mundo en el que se moverá , entonces para que el hobrecito no pase por encima de casas, arboles ,mesas, camas, etc., escribí en el código que el hombresito no pueda pasar por tales coordenadas.
POR EJEMPLO:
Si tengo una mesa que ocupa las cordenadas entre (x=100 ; y=100) y (x=150 ; y=200) , para que el muñeco no pase por ensima de esta pondría la condición :

IF ((X_MUÑECO<100) OR (X_MUÑECO>150))AND ((Y_MUÑECO<100)OR(Y_MUÑECO>200)) THEN BEGIN
...
...
END;

Bueno hacer esto es muy trabajoso para tanta cantidad de escenas que tiene el juego (ya que no conozco las coordenadas de cada imágen , y para esto tengo que ir probando distintas coordenadas hasta encontrar la correcta), me gustaría que me dijecen la forma de simplificar esto, si es que la hay.

NOTA:; MUCHÍSIMAS GRACIAS POR TODO. MUY BUENA WEB. :D :D :D :D

Markitos1024
17-03-2005, 21:37
hola yo creo que primero deberias crear una funcion que te diga cuales son las cordenadas no pemitidas. entonces..
IF NOPERMITIDA(muñeco) then
como crear la funcion bueno, tenes miles de maneras de plantear un algoritmo, pero algo que se me ocurre sin conocer tu programa es por ejemplo que esas mesas y cosa al dibujarce guarden las cordenadas en una matriz, por ejrmplo Mat1[i,j] = wherex ; mat1[i,j+1] = wherey entonces la funcion busque en la matrix las cordenadas y si son iguales que no permita que el muñeco pase.
por ejemplo yo hace un tiempo habia diseñado la vivorita ese juego que viene en los celulares y usaba algo asi, si queres despues lo posteo.
quizas sea mejor que veas la posibilidad de crear typos de datos especiales siempre que hagas un software y mas cuando sea largo intenta de diseñar `rimero bien antes de echarte akl codigo
si no me exprese bien o no me entendes posteaa
saludos
markitos