Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Как сместить точку регистрации у Bitmap ? (http://www.flasher.ru/forum/showthread.php?t=136186)

NoCD 11.02.2010 18:28

Как сместить точку регистрации у Bitmap ?
 
Всем привет!

Делаю копию круга(у круга точка регистрации находится в центре). А вот у bitmap - ы, точка регистрации находится в верхнем левом углу, как мне её сместить, что бы точка регистрации находилась по центру?
У bitmap нужен центр, что бы проверять множество ball на столкновение.

Вот пример:
Код AS1/AS2:

import flash.display.BitmapData;
import flash.geom.Matrix;
 
 
      var mc:MovieClip = attachMovie("mc","mc",1000)
 
          mc._x = 200;
          mc._y = 200;
 
      var bmp = new BitmapData(80,80,true,0x00000000)
      var matrix:Matrix = new Matrix();
 
      var circle = createEmptyMovieClip("ball",1009)
 
 
        circle.attachBitmap(bmp,2000+t)
        matrix.tx= circle._width/2;
        matrix.ty= circle._height/2;
 
        bmp.draw(mc,matrix);
        bmp.cacheAsBitmap = true;               
        mc.removeMovieClip();
 
        circle._rotation = 45;

Если это не возможно, то как решить эту задачу иначе?

Hauts 11.02.2010 18:49

Компенсировать разности координат точек центра при расчетах.

Сдвиг центра у битмапа вправо и вниз — это тоже самое, что сдвиг изображения вверх и влево. Три четверти изображения пропадут.

NoCD 11.02.2010 20:31

Что ж, будем компенсировать в расчетах:(

expl 12.02.2010 01:03

Можно на том же муви-клипе вместо аттача битмапы
нарисовать прямоугольник с заливкой этой битмапой
а нарисованный прямоугольник можно пододвинуть как хочется.

На худой конец можно обернуть мувиклип с этой битмапой еще в один.

А компенсация в расчетах - это:
- либо делать методы setX(value) и getX(), setY(value) и getY(), в которых выставлять истинное положение мувиклипа
- Придется вместо _x = 10 писать setX(10)
(в as2, насколько помню перегрузка полей типа _x связана с большими траблами, поэтому придется обходиться методами с именами отличными от _x и
_y)
- Если шарик нужно повернуть - добавиться еще и setRotation и веселая тригонометрия

ИМХО оно того не стоит.


Часовой пояс GMT +4, время: 07:54.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.