forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Болтовня (http://forum.boolean.name/forumdisplay.php?f=25)
-   -   ХЕЛП!!! Спрайты размножаются (http://forum.boolean.name/showthread.php?t=4935)

Gamep 04.11.2007 02:06

ХЕЛП!!! Спрайты размножаются
 
Пожалуйста помогите! Пишу игру, возникла проблема с обновлением спрайтов, хочу чтобы спрайт сдвинулся в другую точку, а он тупо копируется, какие команды нужны на такую функцию? Напишите готовый пример! очень прошу.

SBJoker 04.11.2007 02:16

Re: ХЕЛП!!! Спрайты размножаются
 
Приведи пример кода, экстрасенсов тут нет.

Gamep 04.11.2007 02:28

Re: ХЕЛП!!! Спрайты размножаются
 
begin
drawImage(loadImage('/1.png'), 0, 0);
repaint;
delay(1000);
drawImage(loadImage('/1.png'), 30, 64);
repaint;
delay(1000);
end. При этом коде спрайт копируется, а мне нужно, чтобы первый спрайт исчезал, а второй появлялся в указанной точке.

Gamep 04.11.2007 02:54

Re: ХЕЛП!!! Спрайты размножаются
 
begin
drawImage(loadImage('/1.jpg'), 0, 0);
repaint;
delay(1000);
drawImage('/a.png'), 37, 64);
repaint;
delay(1000);
drawImage('/a.png'), 30, 64);
repaint;
delay(1000);
end. Вот точный код, после запуска появляется фон картинка 1.jpg, затем спрайт a.png, затем этот спрайт копируется в другую точку, а мне надо чтобы спрайт с первоначальными координатами исчез и появился в другой точке. Как это сделать?

Gamep 04.11.2007 03:53

Re: ХЕЛП!!! Спрайты размножаются
 
Ну люди, ответьте же. Неужели никто незнает? Пожалуйста помогите, очень надо...

Gamep 04.11.2007 05:05

Re: ХЕЛП!!! Спрайты размножаются
 
Программирую на Midlet Pascal.

Raiter 04.11.2007 05:11

Re: ХЕЛП!!! Спрайты размножаются
 

Да уж ясно, что не на Сях... :-)


Мидлет Паскаль не знаю. Но и так видно, что тебе нужно очищать экранчег ;)
Типо Cls.

Или это оно и есть? :dontknow:
Цитата:

repaint;
* (сам к сибе) и чаво я лезу? :-)

Gamep 04.11.2007 10:24

Re: ХЕЛП!!! Спрайты размножаются
 
repaint по всей сути и должен обновлять содержимое экрана, но тупо копирует изображения. Кто-нибудь, кто шарит в паскале, проверьте пожалуйста код и что там не так?

jimon 04.11.2007 11:22

Re: ХЕЛП!!! Спрайты размножаются
 
при вот таком коде что будет на MP ?

Код:

begin
drawImage(loadImage('/1.png'), 0, 0);
drawImage(loadImage('/1.png'), 30, 64);
repaint;
delay(1000);
end.


Gamep 04.11.2007 11:43

Re: ХЕЛП!!! Спрайты размножаются
 
При таком коде сначала появляется один спрайт, на него накладывается другой, но это не то что мне нужно. Мне нужно чтобы 1.jpg ставился на фон, а a.png сначала накладывался на него, затем сдвигался в указанные мной координаты. Ну чего вы все? Я знаю что есть тут умные паскалисты, я весь форум перелопатил до 5 утра, но так и не получил нужного ответа.

impersonalis 04.11.2007 17:12

Re: ХЕЛП!!! Спрайты размножаются
 
Ты темой не ошибся? А нафлужено-то...

Eddy 04.11.2007 22:27

Re: ХЕЛП!!! Спрайты размножаются
 
Gamep,
во-первых, как сказал сэр impersonalis, ты ошибся темой,
тебе сюда http://www.boolean.name/forumdisplay.php?f=47
и тему, имхо, надо перенести
во-вторых,

begin
drawImage(loadImage('/1.jpg'), 0, 0);
repaint;
delay(1000);
drawImage('/a.png'), 37, 64);
repaint;
delay(1000);
drawImage('/a.png'), 30, 64);
repaint;
delay(1000);
end. Вот точный код, после запуска появляется фон картинка 1.jpg, затем спрайт a.png, затем этот спрайт копируется в другую точку, а мне надо чтобы спрайт с первоначальными координатами исчез и появился в другой точке. Как это сделать?

прога делает именно то, что ты написал, вот примерный код, надеюсь всё поймешь:

while getkeypressed<>ke_key0 do begin //цикл, который будет идти, пока ты не нажмешь 0
if getkeypressed=ke_key6 then x:=x+1;
if getkeypressed=ke_key4 then x:=x-1;
drawimage(back,0,0);//рисуем фон
drawimage(sprite,x,64);//рисуем спрайт с координатами x и 64
repaint;
end;
в-третьих, если ты собираешься выводит рисунок мног раз, то рисовать так
drawImage(loadImage('/1.png'), 0, 0);
неправильно,
нужно до основного цикла объявить переменную типа image и присвоить ей рисунок, т.е.
var im:image;
begin
im:=loadimage('/image.png');
....
drawimage(im,0,0);
....
end;
в-четвертых, для "очитски" экрана стандартных процедур нет, можно делать так:
1)
setcolor(255,255,255);// выбираем цвет - белый
fillrect(0,0,176,220); //рисуем закрашенный прямоугольник выбранным цветом
2) если твой background занимает весь экран то можно просто нарисовать его
в-пятых, зачем тебе delay? тем более с такой большой задержкой?
вроде всё).

Eddy 04.11.2007 22:31

Re: ХЕЛП!!! Спрайты размножаются
 
при вот таком коде что будет на MP ?

Код:
begindrawImage(loadImage('/1.png'), 0, 0);drawImage(loadImage('/1.png'), 30, 64);repaint;delay(1000);end.

рисует 1.пнг в 0,0 в "память"
рисует 1.пнг в 30,64 в "память"
выводит всё что нарисованно
ждем одну секунду
закрываем мидлет


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot