FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
[AYUDA] con coponentes Timage "sobrepuestos"
Buenas noches comunidad, me encuentro creando un juego pero me encuentro en este problema... tengo 2 componentes Timage que son
imgchar1.picture (de 50x50) imgchar2.picture (de 50x50) imgchar1 lo controla el usuario imgchar2 lo controla el ordenador con un componente TTIMER siguiendo a imgchar1 Lo que quiero hacer es que cuando char2 alcance a char1 termine el juego este es el codigo que emple teniendo en cuenta que cada personaje mide 50x50... la idea de mi algoritmo es que cuando char2 este en el rango XY de char1, por "logica" estaria en sus escalas XY y el juego tendria que terminar pero n me queda Delphi no me da error ni nada pero el algoritmo no funciona aqui el codigo: Código:
//Codigo dentro de un componente Timer a un intervalo de 1// Var c1X, c1Xn, c1Y, c2Y, c1Yn, c2Yn, c2X, c2Xn : integer; begin c1X := imgchar1.Left; c1Xn := c1X + 50; c1Y := imgchar1.Top; c1Yn := imgchar1.Top + 50; c2X := imgchar2.Left; c2Xn := c2X + 50; c2Y := imgchar2.Top; c2Yn := imgchar2.Top + 50; if (c2X in [c1X..c1Xn]) and (c2Y in[c1Y..c1Yn]) then begin showmessage('Dentro del rango'); end; c1X = 'c1' de char1 / 'X' de coordenadas X c1Xn = 'c1' de char1 / 'X' de coordenadas X / 'n' de numero elevado a la n potencia (incognita) (Los mismo se aplica para c1Y - tanto para char1 como para char2) Si alguien da con el error de este algoritmo porfavor hechenme la mano Gracias por su tiempo |
#2
|
||||
|
||||
Creo que el problema está en que los conjuntos no pueden tener más de 255 elementos. Y los números con los que vos formás en conjunto son integers que superan el valor 255. Si ponés las imágenes cerca de los bordes superior e izquierdo, (es decir que el valor c1X, c1Xn, etc. son menores a 255) vas a ver que funciona.
La solución es no usar conjuntos.
EDIT: Por cierto, esto funciona únicamente cuando la imagen 2 viene por la izquierda/abajo de la imagen 1... Última edición por Lord Delfos fecha: 18-05-2010 a las 21:36:53. |
#3
|
|||
|
|||
Muchas gracias por tu contestancion Lord pero no me funciono
Intente haciendo el FORM a escalas 250x250 y si funciona mi algoritmo pero la ventana queda muy pequeña intente poniendo las variables a tipo 'extended' pero en la sentencia IF al compilar marca error Lord, el algoritmo que me diste no funciona por que lo que pasa es que cuando char1 y char2 tanto XY estan sobrepuestas el juego termina, pero no cuando esta entre los rangos de x... n Alguna otra solucion? Gracias por tu tiempo |
#4
|
||||
|
||||
Hmm... Entonces no entendí nada de lo que estabas diciendo
Lo que yo entiendo: [1] Tenés dos imágenes (TImage) que se mueven por la ventana (o una imagen quieta y la otra que se mueve). [2] Querés saber cuándo las dos imágenes se están "tocando" o superponiendo una con la otra. Eso es lo que yo entendí... Ahora, evidentemente no era así la cosa. ¿Podrías tratar de explicarlo un poco más? Saludetes. |
#5
|
|||
|
|||
Cita:
gracias por tu tiempo |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
El programa se queda "colgado" mientras copia y luego "despierta" | NeWsP | OOP | 5 | 10-03-2010 22:05:40 |
"OBJECT OR CLASS TYPE REQUIRED" en "APPLICATION EXENAME" | Xavierator | Varios | 3 | 27-10-2008 09:09:50 |
Necesito llamar a métodos de clases "hija" desde su clase "padre" | Flecha | OOP | 17 | 20-04-2007 00:03:53 |
¿cuál es mejor: "close" o "application.terminate"? | unreal4u | Varios | 5 | 05-03-2007 11:01:19 |
"ChequeaEsto" elegido el futuro "Killer CLubDelphi" | mamcx | Noticias | 51 | 31-10-2006 20:56:32 |
|