Título: Realizar accion al cambiar de color un pixel Publicado por: Demereth en 1 Septiembre 2012, 17:08 pm Hola, lo que quiero hacer es para un juego, en el que hay barras de estados,de hambre, energía, sed, magia y vida, que al bajar, ya sea por no comer, usar hechizos o que algo te cause algún daño, van volviéndose color negro, lo que quiero hacer es que a la barra de vida(roja) y magia(azul) que al bajar se vuelve negra, clickee automaticamente las pociones, para que vuelvan a llenarse las barras, esto solo quiero con la magia y la vida:
(http://desmond.imageshack.us/Himg812/scaled.php?server=812&filename=barrasllenas.jpg&res=landing) Aquí estarían las barras llenas al máximo y lo que quiero es que detecte cuando van volviendose negras: (http://desmond.imageshack.us/Himg824/scaled.php?server=824&filename=barrasvacias.jpg&res=landing) Cuando recibiese daño o gastase mana la barra bajaría y quedaría más o menos como en la imagen de arriba. Al detectar que ha cambiado el color a negro enviaria clicks a las coordenadas de las pociones hasta que vuelva a llenarse la barra. Y así automáticamente cada vez que la vida o mana bajase de ese nivel se auto-sanaría sólo y así me ahorro tener que andar haciendolo yo. Saludos y gracias! Título: Re: Realizar accion al cambiar de color un pixel Publicado por: Dunkansdk en 3 Septiembre 2012, 01:27 am En la interfaz el fondo es negro, y tiene arriba un pic que calcula el porcentaje de la vida :|
Título: Re: Realizar accion al cambiar de color un pixel Publicado por: Yoghurt en 3 Septiembre 2012, 20:36 pm El color del pixel lo obtienes con:
Código X e Y son las coordenadas del pixel en la ventana de la aplicacion. El hDC es la capa grafica (display device context - DC) de una aplicación y lo obtienes con: Código
El hwnd es el identificador de ventana (handle window) y lo obtienes con: Código ...y te recomiendo leer esto: FindWindow Example (http://www.vbforums.com/showthread.php?356751-Classic-VB-API-How-can-I-find-a-window-outside-of-my-program) Creo que con eso será suficiente para ahorrarte "unos clicks". P.D.: A veces los juegos pintan los graficos en un hDC distinto al que le entrega el sistema (debido a DirectX) o Por la configuración de pintado, pintado fijo (mas lento ya que se memoriza los pixels y es facil obtener el color de alguno) o pintado volatil (mas rapido y sin memoria de pixel). Todo esto supone un obstaculo al momento de obtener el ínfimo pixel pero solucionable, solo busca y pregunta. |