Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 6023 → Rev 6024

/programs/games/pong3/trunk/ascgl.inc
89,14 → 89,14
macro collimg img1_off,x1,y1,img2_off,x2,y2,otv
{
local bounce,exit,anot,bc,nbc
mov esi,[img1_off] ;xs1
mov edi,[img2_off] ;ys2
mov esi, dword[img1_off] ;xs1
mov edi, dword[img2_off] ;ys2
mov eax,x1 ;
mov ebx,x2 ;
call _1dbounce
mov edx,ecx
mov esi,[img1_off+4] ;ys1
mov edi,[img2_off+4] ;ys2
mov esi, dword[img1_off+4] ;ys1
mov edi, dword[img2_off+4] ;ys2
mov eax,y1 ;
mov ebx,y2 ;
call _1dbounce
316,14 → 316,14
yespicsize:
mov eax,bmp_load_area
mov ebx,eax
add ebx, [bmp_load_area+2];file size
add ebx, dword[bmp_load_area+2];file size
inc ebx
mov dword [bmp_soi],ebx ;soi-start of image area for drawing
add eax, [bmp_load_area+10]
add eax, dword[bmp_load_area+10]
mov dword [sop],eax ;sop-start of picture in file
add eax, [bmp_load_area+34]
add eax, dword[bmp_load_area+34]
mov dword [eop],eax ;eop-end of picture in file
mov eax, [bmp_load_area+18]
mov eax, dword[bmp_load_area+18]
lea eax,[eax+2*eax] ;3x pixels in eax
 
mov edi,dword [bmp_soi] ;initializing
353,7 → 353,7
 
convertno32:
mov ebx,bmp_load_area
add ebx, [bmp_load_area+14]
add ebx, dword[bmp_load_area+14]
add ebx,14 ;start of color table
push esi
add esi,dword [bps]
/programs/games/pong3/trunk/pong3.asm
5,6 → 5,8
; Not use bmpfile!
 
;******************************************************************************
format binary as ""
 
use32
org 0x0
db 'MENUET01' ; 8 byte id
13,7 → 15,7
dd IM_END ; size of image
dd 0x300000 ; memory for app
dd 0x300000 ; esp
dd temp_area , 0x0 ; I_Param , I_Icon
dd temp_area, 0x0 ; I_Param , I_Path
 
;******************************************************************************
 
26,7 → 28,6
START: ; start of execution
call draw_window
 
; loadbmp '/RD/1/PONG.BMP',temp_area,I_END,tsoi
convbmp pongfile,tsoi
bmptoimg pongfile,tsoi,pong
getimg pong,0,0,80,4,img
36,10 → 37,7
fullimg img4 , 80 ,20 ,0x00000000 ;black for rocket
fullimg img6 , 15 ,15 ,0x00000000 ;black for ball
 
 
 
still:
 
scevent red,key,button
 
;mcall 48, 4 ;get skin width
47,85 → 45,83
;div eax, 2
;mov [skin_h], eax
outcount dword [scoreb],300,8,cl_Blue,5*65536
outcount dword [scorea],350,8,cl_Red,5*65536
outcount [scoreb], 300, 4, 0x10000000 + cl_Blue, 5 shl 16
outcount [scorea], 350, 4, 0x10000000 + cl_Red, 5 shl 16
 
del_images:
setimg dword [ply1x],dword [ply1y],img4
setimg dword [ply2x],dword [ply2y],img4
setimg dword [ballx],dword [bally],img6
setimg dword [gravx],dword [gravy],img4
setimg [ply1x], [ply1y], img4
setimg [ply2x], [ply2y], img4
setimg [ballx], [bally], img6
setimg [gravx], [gravy], img4
 
move_ply1:
 
correct [ply1x],[ply1rx],4
correct [ply1y],[ply1ry],2
 
;automove ball
mov eax,dword [ballxv]
add dword [ballx],eax
mov eax,dword [ballyv]
add dword [bally],eax
mov eax, [ballxv]
add [ballx], eax
mov eax, [ballyv]
add [bally], eax
 
 
;autoslow ball
cmp dword [ballxv],0
cmp [ballxv], 0
jl ballb
balla:
cmp dword [ballxv],2
cmp [ballxv], 2
jng balln
dec dword [ballxv]
dec [ballxv]
jmp balln
ballb:
cmp dword [ballxv],-2
cmp [ballxv], -2
jnl balln
inc dword [ballxv]
inc [ballxv]
jmp balln
balln:
cmp dword [ballyv],2
cmp [ballyv], 2
jng by_n
dec dword [ballyv]
dec [ballyv]
by_n:
 
;ball collusion of screen
cmp dword [ballx],640-32
cmp [ballx], 640-32
jna xa_ok
neg dword [ballxv]
neg [ballxv]
xa_ok:
cmp dword [ballx],6
cmp [ballx], 6
jnb xb_ok
neg dword [ballxv]
neg [ballxv]
xb_ok:
 
;if ball far out of screen come back
; is not work already
cmp dword [bally],466
cmp [bally], 466
jng yax_ok
call draw_window
inc dword [scoreb]
mov dword [bally],240
mov dword [ballx],310
mov dword [ballyv],2
random 5,dword [ballxv]
sub dword [ballxv],2
inc [scoreb]
mov [bally], 240
mov [ballx], 310
mov [ballyv], 2
random 5, [ballxv]
sub [ballxv], 2
yax_ok:
cmp dword [bally],30
cmp [bally], 30
jnl yax_ok2
call draw_window
inc dword [scorea]
mov dword [bally],240
mov dword [ballx],310
mov dword [ballyv],2
random 5,dword [ballxv]
sub dword [ballxv],2
inc [scorea]
mov [bally], 240
mov [ballx], 310
mov [ballyv], 2
random 5, [ballxv]
sub [ballxv], 2
yax_ok2:
 
xorx:
cmp dword [ballxv],0
cmp [ballxv], 0
jne norx
random 5,dword [ballxv]
sub dword [ballxv],2
cmp dword [ballxv],0
random 5, [ballxv]
sub [ballxv], 2
cmp [ballxv], 0
je xorx
norx:
 
134,9 → 130,9
collimg img,[ply1x],[ply1y],img3,[ballx],[bally],eax
cmp eax,1
jne not_coll
neg dword [ballyv]
add dword [bally],4
; neg dword [ballxv]
neg [ballyv]
add [bally], 4
; neg [ballxv]
not_coll:
 
;test on collusion com of ball
144,8 → 140,8
collimg img,[ply2x],[ply2y],img3,[ballx],[bally],eax
cmp eax,1
jne not_collcom
neg dword [ballyv]
sub dword [bally],4
neg [ballyv]
sub [bally], 4
; neg dword [ballxv]
not_collcom:
 
154,103 → 150,102
collimg img,[gravx],[gravy],img3,[ballx],[bally],eax
cmp eax,1
jne not_collg
neg dword [ballyv]
neg [ballyv]
 
; mov dword [ballxv],-20
; mov [ballxv], -20
 
cmp dword [ballyv],0
cmp [ballyv], 0
jl ab
jg bf
jmp not_collgx
ab:
sub dword [ballyv],25
sub [ballyv], 25
jmp not_collgx
bf:
add dword [ballyv],25
add [ballyv], 25
not_collgx:
cmp dword [ballxv],0
cmp [ballxv], 0
jl abx
jg bfx
jmp not_collg
abx:
sub dword [ballxv],8 ;15
sub [ballxv], 8 ;15
jmp not_collg
bfx:
add dword [ballxv],8
add [ballxv], 8
 
 
; mov dword [ballyv],20
; mov [ballyv], 20
not_collg:
 
;ply contorl
cmp dword [ply1rx],560
cmp [ply1rx], 560
jna plyok
cmp dword [ply1rx],12000
cmp [ply1rx], 12000
jna paa
mov dword [ply1rx],4
mov [ply1rx], 4
jmp plyok
paa:
mov dword [ply1rx],560
mov [ply1rx], 560
plyok:
 
 
;com contorl
cmp dword [ply2x],560
cmp [ply2x], 560
jna cplyok
cmp dword [ply2x],12000
cmp [ply2x], 12000
jna cpaa
mov dword [ply2x],4
mov [ply2x], 4
jmp cplyok
cpaa:
mov dword [ply2x],560
mov [ply2x], 560
cplyok:
 
 
;com move
cx_move:
cmp dword [bally],160
cmp [bally], 160
jna cno_m
mov eax,dword [ballx]
mov eax, [ballx]
sub eax,30
cmp dword [ply2x],eax
cmp [ply2x], eax
je cno_m
cmp dword [ply2x],eax
cmp [ply2x], eax
ja cm_m
cm_p:
add dword [ply2x],3
add [ply2x], 3
jmp cno_m
cm_m:
sub dword [ply2x],3
sub [ply2x], 3
cno_m:
 
;garvity
gravity:
cmp dword [gravtime],0
cmp [gravtime], 0
je no_dg
dec dword [gravtime]
dec [gravtime]
no_dg:
 
draw_gravity:
cmp dword [gravtime],0
cmp [gravtime], 0
je nograv
mov eax,dword [ply1x]
mov ebx,dword [ply1y]
mov eax, [ply1x]
mov ebx, [ply1y]
add ebx,10
mov dword [gravx],eax
mov dword [gravy],ebx
mov [gravx], eax
mov [gravy], ebx
jmp endgrav
nograv:
mov dword [gravx],1000
mov dword [gravy],1000
mov [gravx], 1000
mov [gravy], 1000
endgrav:
 
redraw_images:
setimg dword [ply1x],dword [ply1y],img
setimg dword [ply2x],dword [ply2y],img2 ;2
setimg dword [ballx],dword [bally],img3
setimg dword [gravx],dword [gravy],img5
setimg [ply1x], [ply1y], img
setimg [ply2x], [ply2y], img2
setimg [ballx], [bally], img3
setimg [gravx], [gravy], img5
 
 
delay 1 ;don't generate delay for fast speed programm
 
jmp still
264,23 → 259,23
mcall
cmp ah,key_Left
jne no_l
sub dword [ply1rx],32 ;16
sub [ply1rx], 32 ;16
no_l:
cmp ah,key_Right
jne no_r
add dword [ply1rx],32 ;16
add [ply1rx], 32 ;16
no_r:
cmp ah,key_Up
jne no_u
sub dword [ply1ry],16
sub [ply1ry], 16
no_u:
cmp ah,key_Down
jne no_d
add dword [ply1ry],16
add [ply1ry], 16
no_d:
cmp ah,key_Space
jne no_sp
mov dword [gravtime],100
mov [gravtime], 100
no_sp:
 
jmp still
335,30 → 330,20
counter dd 0
tsoi dd 0
 
pongfile:
file 'pong.bmp'
pongfile file 'pong.bmp'
 
IM_END:
 
temp:
rb 20000
temp rb 20000
 
pong:
rb 80*60*3+8
img:
rb 32*32*3+8
img2:
rb 32*32*3+8
img3:
rb 32*32*3+8
img4:
rb 80*20*3+8
img5:
rb 32*32*3+8
img6:
rb 15*15*3+8
pong rb 80*60*3+8
img rb 32*32*3+8
img2 rb 32*32*3+8
img3 rb 32*32*3+8
img4 rb 80*20*3+8
img5 rb 32*32*3+8
img6 rb 15*15*3+8
 
temp_area:
rb 0x15000
temp_area rb 0x15000
 
I_END: