O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Como fazer variavél reconhecer posição X e Y de uma imagem? RMXP

Iniciado por Rayner, 11/10/2018 às 10:44

Bom dia, ao mostrar uma imagem, devemos definir sua posição X e Y que é onde ela irá surgir e também sua magnitude que é sua largura e sua altura total que irá ter. Minha dúvida é a seguinte como posso fazer para...
Ao clicar em uma tecla (qualquer tecla), uma variável vai verificar o ID da imagem e se for o número (ID) colocado pelo programador irá surgir uma tela (e se não for o mesmo número da ID, nada acontece) pedindo para eu escolher um número entre 0 e 640 (Largura total da tela do RMXP) e após escolher esse número, será exigido outro número em outra variavél e dessa vez pedindo para escolher entre 0 e 480 (Altura total da tela do RMXP) e se houver alguma parte da imagem de Número X nessas coordenadas, algo acontece.
Lembrando que para isso acontecer deverá haver alguma imagem na tela.

Minha maior dúvida mesmo é como fazer para reconhecer em que posição X e Y a imagem está. Como posso fazer para reconhcer em que local da tela terá alguma parte da imagem? Grato a quem puder me ajudar.
O livro traz a vantagem de a gente poder estar só e ao mesmo tempo acompanhado.

------------


Você pode declarar as variáveis antes com as coordenadas desejadas e mostrar a imagem com base nelas. Se precisar saber o valor atualizado, talvez os comandos abaixo funcionem. Não testei.

$game_screen.pictures[ID da Imagem].x
$game_screen.pictures[ID da Imagem].y

Tinha que ser o XP mesmo? É bem fácil no Ace, mas não tenho certeza se é o mesmo no xp :feelsbatman:

Spoiler
Citação de: Corvo online 11/10/2018 às 10:55
Você pode declarar as variáveis antes com as coordenadas desejadas e mostrar a imagem com base nelas. Se precisar saber o valor atualizado, talvez os comandos abaixo funcionem. Não testei.

$game_screen.pictures[ID da Imagem].x
$game_screen.pictures[ID da Imagem].y

[close]

Enquanto eu digitava minha sessão expirou  :facepalm: - Mas nesse caso a variável só iria reconhecer a posição X e Y que a imagem surgiu na tela. Minha ideia é fazer com que a variável reconheça a posição em que a imagem total está na tela. Assim, a imagem vai aparecer na posição 0x e 0y mas sua largura e altura vai além disso, ou seja, ela não está apenas na posição X e Y. Suponhamos que a imagem tem 4 pxl de largura e 3 de altura e surge na posição 0x e 0y, nesse caso a imagem estará nas posições 0x, 1x, 2x e 3x (em pixel) de largura da tela, em y estará nas posições 0y, 1y e 2y (em pixel) de altura da tela e então colocando os valores nas variáveis var 1 = 1x e var 2 = 0y as variáveis irão reconhecer que naquelas áreas tem uma parte / pixel da imagem de ID X.

Spoiler
Citação de: Sotelie online 11/10/2018 às 11:14
Tinha que ser o XP mesmo? É bem fácil no Ace, mas não tenho certeza se é o mesmo no xp :feelsbatman:
[close]

Como seria no Ace? Quem sabe da certo no XP  :sera:
O livro traz a vantagem de a gente poder estar só e ao mesmo tempo acompanhado.

------------


Sim, isso ali só vai te informar o ponto de origem da imagem, mas bastaria adicionar a largura/altura para descobrir o ponto onde ela termina. Com esses quatro valores você tem um mapa da área que a imagem ocupa na tela.

Spoiler
Citação de: Corvo online 11/10/2018 às 16:30
Sim, isso ali só vai te informar o ponto de origem da imagem, mas bastaria adicionar a largura/altura para descobrir o ponto onde ela termina. Com esses quatro valores você tem um mapa da área que a imagem ocupa na tela.
[close]

Mas existe algum comando por script que pega a largura e altura sem eu mesmo precisar informar ao script a numeração?
O livro traz a vantagem de a gente poder estar só e ao mesmo tempo acompanhado.

------------


Não porque é coisa extremamente simples. Por exemplo, digamos que você tenha uma imagem de 50x50 e queira mostrar nas coordenadas 16x16. Os pontos iniciais da imagem serão:

x = 16
y = 16


E os finais:

x = 16 + 50
y = 16 - 50


Faz tempo que não mexo com coordenadas da tela, mas tenho quase certeza de que o eixo Y no RM é invertido. Por isso a subtração, se der errado é só trocar por soma. Um script faria a mesma coisa, mas usando os atributos da imagem.