PDA

View Full Version : Phá đám



Rikku
15-10-2004, 21:58
Có bạn nào có source của 1 số trò phá đám bằng pascal không , như làm lửa nè, hình khối lập phương chuyển động như 3D nè,..

FinderDev
15-10-2004, 22:14
Nhấn Yahoo tìm Source Pascal xem sao

jiSh@n
16-10-2004, 02:51
Có nè, nhiều lắm. Xem trong cuốn DEMO và lập trình đồ họa ý.

Rikku
16-10-2004, 13:58
Mấy ông tung hỏa mù kinh wá, tìm yahoo tui chưa thử nhưng nghe thế đã kinh rùi, còn cuốn demo và lập trình đồ họa thì ..tui không biết, các bạn attach lên được không, có vài kb thôi mà!

neverstop
16-10-2004, 20:28
làm lửa thì vào trang web của báo tin học và nhà trường có cả hướng dẫn đấy: www.thnt.com.vn

lee_huynh306
17-10-2004, 14:48
www.monstersoft.com
vô đó rồi tha hồ mà khói với lửa nhé.

Rikku
17-10-2004, 21:06
Đúng là cái tui cần tìm, cám ơn nhìu.

FinderDev
17-10-2004, 23:39
các huynh tìm cách nào mà được mấy trang hay vậy ?

Zero
20-10-2004, 09:46
Mấy cái bạn tìm có giống cái này không ?

http://www.diendantinhoc.com/showthread.htm?t=39146

Rikku
20-10-2004, 12:45
Tuyệt wá Zero ơi, anh có cái nào nữa không, nhưng em nhìn code chả hiểu gì ráo, mấy lệnh lạ wá.

lee_huynh306
21-10-2004, 10:28
hay,code viết bằng assembly mà cũng làm nên nhiều ttrò, công nhận trí tưởng tượng của bạn giởi thật.

jisj@l toàn chỉ sách độc không hà, hôm trước chỉ tui mua đĩa msdn của microsoft, chạy ra hãng đĩa nó nói với tui tổng cộng có 7cd, đem về mà cài hết 7 đĩa đó chắc mọc râu dài thêm 8 thước !!!

jiSh@n
22-10-2004, 00:39
Ặc, mua ở đâu mà những 7 CD MSDN? Chỉ có 3 CD thôi. Mà lập trình trên Windows mà ko tham khảo MSDN thì cũng khó... Còn cuốn DEMO.. thì hay thật sự đó, tòan là những chương trình đồ họa bằng Pascal và ASM rất hay.

Rikku
22-10-2004, 12:05
jiSh@n ơi, sách đó là sách giấy hay ebook, attach lên cho mình với. :D:D:D

jiSh@n
22-10-2004, 12:40
Sách tựa tiếng Việt --> sách giấy, chỉ có mấy chục ngàn hà (hai ba chục gì đó) :). Còn source thì attach lên hơi khó vì source của nó chứa nguyên một CD lận.

Rikku
22-10-2004, 23:21
To jiSh@n: Huynh xem cái nào nổ tưng bừng, khói lửa mù trời thì attach hộ đệ nha.Cám ơn trước hê hê :evil: :evil:

lee_huynh306
23-10-2004, 14:22
thì 3 cd, nhưng mà có kèm theo cái gì đó, thành ra 7 cd, nghe phát ngán

Zero
23-10-2004, 17:32
Đây là 1 hướng cải tiến của ct kia, sử dụng 1 tí kiến thức vật lý về vật ném xiên have fun



{$A+,B-,D+,E+,F-,G+,I-,L+,N+,O-,P-,Q-,R-,S+,T-,V+,X+,Y+}
{$M 16384,0,655360}

const
MaxPoints = 500; // Số hạt

V0 = 256; // Vận tốc ban đầu
VRange = 16 * 32; // Vận tốc Random
AngRange = 60; // Góc Random

X0 = 160; // Vị trí ban đầu
Y0 = 100;

G = 32; // Gia tốc

Color = 160;

MinJump = 3;
JumpRand = 5;

Delay = 3; // Đặt cái nì = 0 thì kô Delay

var
I, J, X, Y : Integer;


Par : array [1..MaxPoints] of
record
X, Y : LongInt;
VX, VY : LongInt;
Jump : LongInt;
end;

Count : LongInt;
Time : LongInt absolute $0:$46C;
OTime : LongInt;
Vir : Pointer;
Pal : array [0..255,1..3] of Byte;

procedure Flip (vir : Pointer); assembler;
asm
push es
push ds
mov ax, $A000
xor di, di
mov es, ax
lds si, Vir
mov cx, 16000
db 0F3h, 66h, 0A5h {rep movsd}
pop ds
pop es
end;

procedure Blur (P : Pointer); assembler;
asm
les di, P
add di, 321
mov cx, 64000
xor ax, ax
xor bx, bx
xor dx, dx
@Loop:
mov al, es:[di]
mov bl, es:[di+1]
mov dl, es:[di-1]
add ax, bx
mov bl, es:[di-320]
add ax, dx
add ax, bx
shr ax, 2
mov es:[di],al
inc di
dec cx
jnz @Loop
end;

procedure InitVGA; assembler;
asm
mov ax, $13
int $10
end;

procedure CloseVGA; assembler;
asm
mov ax, $3
int $10
end;

procedure SetRGB (T, R, G, B : Byte);
begin
Port [$3c8] := T;
Port [$3c9] := R;
Port [$3c9] := G;
Port [$3c9] := B;
end;

procedure SetPal;
var
I : Byte;
begin
for I := 0 to 255 do SetRGb (I, Pal [I,1], Pal [I,2], Pal [I,3]);
end;

procedure PutPixel (P : Pointer; X, Y : Integer; Col : Byte); assembler;
asm
les di, P
mov ax, Y
mov bx, Y
shl ax, 8
shl bx, 6
add ax, bx
add ax, X
add di, ax
mov al, Col
mov es:[di], al
end;


procedure CreatePal (P : Integer);
var
I : Integer;
begin
case P of
1 :
begin
for I := 0 to 63 do
begin
Pal [I, 1] := 0;
Pal [I, 2] := 0;
Pal [I, 3] := I;

Pal [I + 64, 1] := 0;
Pal [I + 64, 2] := I;
Pal [I + 64, 3] := 63;

Pal [I + 128, 1] := I;
Pal [I + 128, 2] := 63;
Pal [I + 128, 3] := 63;

Pal [I + 192, 1] := 63;
Pal [I + 192, 2] := 63;
Pal [I + 192, 3] := 63;
end;
end;
2 :
begin
for I := 0 to 63 do
begin
Pal [I, 1] := I;
Pal [I, 2] := 0;
Pal [I, 3] := 0;

Pal [I + 64, 1] := 63;
Pal [I + 64, 2] := I;
Pal [I + 64, 3] := 0;

Pal [I + 128, 1] := 63;
Pal [I + 128, 2] := 63;
Pal [I + 128, 3] := I;

Pal [I + 192, 1] := 63;
Pal [I + 192, 2] := 63;
Pal [I + 192, 3] := 63;
end;
end;
end;
SetPal;
end;

procedure AddPar (Index : Integer);
var
V, Angle : LongInt;
begin
with Par [Index] do
begin
X := X0 * 256;
Y := Y0 * 256;

V := V0 + Random (VRange);
Angle := -AngRange + Random (2 * AngRange);
VX := Round (V * Sin (Angle * Pi/360));
VY := -Round (V * Cos (Angle * Pi/360));

Jump := MinJump + Random (JumpRand);
end;
end;

procedure Move;
var
I, J : Integer;
begin
for I := 1 to MaxPoints do
with Par [I] do
begin
Inc (X, VX);
Inc (Y, VY);
Inc (VY, G);

if Y > 199 * 256 then
if Jump > 0 then
begin
Dec (Jump);
VY := -VY * 3 div 4;

for J := 1 to 4 do
PutPixel (Vir, X shr 8, Y shr 8 - J, Color);
end
else
AddPar (I);
end;
end;

procedure Draw;
var
I : Integer;
begin
for I := 1 to MaxPoints do
with Par [I] do
if (X > 0) and (Y > 0) and (X <= 319 * 256) and (Y <= 199 * 256) then
PutPixel (Vir, X shr 8, Y shr 8, Color);
end;

begin
InitVGA;
GetMem (Vir, 65000);
FillChar (Vir^, 65000, 0);
OTime := Time;
Count := 0;

{Fire}
CreatePal (2);
{Water}
CreatePal (1);

for I := 1 to MaxPoints do AddPar (I);

repeat

Move;

Draw;

Blur (Vir);

for I := 1 to Delay + 1 do
Flip (Vir);

Inc (Count);

until Port [$60] = 1;

OTime := Time - OTime;

Dispose (Vir);
CloseVGA;

Writeln ('Speed : ', Count * 18.023/OTime:0:3, ' FPS');
Readln;
end.


Xem thử ct ở đây www.vitbeotron.com/backup/water.exe

Rikku
23-10-2004, 22:50
Em mới kiếm được một cái hay lắm

FinderDev
25-10-2004, 01:27
Hay quá nhưng mà tui chưa học đến đó nên đọc chẳng hiểu gì cả .

neverstop
25-10-2004, 18:29
cuốn lập trình đồ họa hay thật đấy các bạn à. không chỉ những trò "tầm thường" như lửa đâu, mà còn có nhiều trò liên quan đến xử lý ảnh nữa, làm nhiều hiệu ứng rất hay, mà bạn có thể đưa ảnh của bạn vào để làm vài cái cho vui. khoái lắm.