Pong: Fix title (score), whitespace changes.

git-svn-id: svn://kolibrios.org@6024 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
hidnplayr 2016-01-02 12:24:25 +00:00
parent e48064d090
commit 8f4ba7ce29
2 changed files with 251 additions and 266 deletions

View File

@ -89,14 +89,14 @@ _1dbounce_count=0;
macro collimg img1_off,x1,y1,img2_off,x2,y2,otv macro collimg img1_off,x1,y1,img2_off,x2,y2,otv
{ {
local bounce,exit,anot,bc,nbc local bounce,exit,anot,bc,nbc
mov esi,[img1_off] ;xs1 mov esi, dword[img1_off] ;xs1
mov edi,[img2_off] ;ys2 mov edi, dword[img2_off] ;ys2
mov eax, x1 ; mov eax, x1 ;
mov ebx, x2 ; mov ebx, x2 ;
call _1dbounce call _1dbounce
mov edx,ecx mov edx,ecx
mov esi,[img1_off+4] ;ys1 mov esi, dword[img1_off+4] ;ys1
mov edi,[img2_off+4] ;ys2 mov edi, dword[img2_off+4] ;ys2
mov eax, y1 ; mov eax, y1 ;
mov ebx, y2 ; mov ebx, y2 ;
call _1dbounce call _1dbounce
@ -316,14 +316,14 @@ local noaddword
yespicsize: yespicsize:
mov eax,bmp_load_area mov eax,bmp_load_area
mov ebx,eax mov ebx,eax
add ebx, [bmp_load_area+2];file size add ebx, dword[bmp_load_area+2];file size
inc ebx inc ebx
mov dword [bmp_soi],ebx ;soi-start of image area for drawing 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 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 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 lea eax,[eax+2*eax] ;3x pixels in eax
mov edi,dword [bmp_soi] ;initializing mov edi,dword [bmp_soi] ;initializing
@ -353,7 +353,7 @@ local noaddword
convertno32: convertno32:
mov ebx,bmp_load_area 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 add ebx,14 ;start of color table
push esi push esi
add esi, dword[bps] add esi, dword[bps]

View File

@ -5,6 +5,8 @@
; Not use bmpfile! ; Not use bmpfile!
;****************************************************************************** ;******************************************************************************
format binary as ""
use32 use32
org 0x0 org 0x0
db 'MENUET01' ; 8 byte id db 'MENUET01' ; 8 byte id
@ -13,7 +15,7 @@
dd IM_END ; size of image dd IM_END ; size of image
dd 0x300000 ; memory for app dd 0x300000 ; memory for app
dd 0x300000 ; esp dd 0x300000 ; esp
dd temp_area , 0x0 ; I_Param , I_Icon dd temp_area, 0x0 ; I_Param , I_Path
;****************************************************************************** ;******************************************************************************
@ -26,7 +28,6 @@ include 'ascgml.inc'
START: ; start of execution START: ; start of execution
call draw_window call draw_window
; loadbmp '/RD/1/PONG.BMP',temp_area,I_END,tsoi
convbmp pongfile, tsoi convbmp pongfile, tsoi
bmptoimg pongfile, tsoi,pong bmptoimg pongfile, tsoi,pong
getimg pong, 0, 0, 80, 4, img getimg pong, 0, 0, 80, 4, img
@ -36,10 +37,7 @@ START: ; start of execution
fullimg img4, 80 ,20 ,0x00000000 ;black for rocket fullimg img4, 80 ,20 ,0x00000000 ;black for rocket
fullimg img6, 15 ,15 ,0x00000000 ;black for ball fullimg img6, 15 ,15 ,0x00000000 ;black for ball
still: still:
scevent red,key,button scevent red,key,button
;mcall 48, 4 ;get skin width ;mcall 48, 4 ;get skin width
@ -47,85 +45,83 @@ still:
;div eax, 2 ;div eax, 2
;mov [skin_h], eax ;mov [skin_h], eax
outcount dword [scoreb],300,8,cl_Blue,5*65536 outcount [scoreb], 300, 4, 0x10000000 + cl_Blue, 5 shl 16
outcount dword [scorea],350,8,cl_Red,5*65536 outcount [scorea], 350, 4, 0x10000000 + cl_Red, 5 shl 16
del_images: del_images:
setimg dword [ply1x],dword [ply1y],img4 setimg [ply1x], [ply1y], img4
setimg dword [ply2x],dword [ply2y],img4 setimg [ply2x], [ply2y], img4
setimg dword [ballx],dword [bally],img6 setimg [ballx], [bally], img6
setimg dword [gravx],dword [gravy],img4 setimg [gravx], [gravy], img4
move_ply1: move_ply1:
correct [ply1x], [ply1rx], 4 correct [ply1x], [ply1rx], 4
correct [ply1y], [ply1ry], 2 correct [ply1y], [ply1ry], 2
; automove ball ; automove ball
mov eax,dword [ballxv] mov eax, [ballxv]
add dword [ballx],eax add [ballx], eax
mov eax,dword [ballyv] mov eax, [ballyv]
add dword [bally],eax add [bally], eax
;autoslow ball ;autoslow ball
cmp dword [ballxv],0 cmp [ballxv], 0
jl ballb jl ballb
balla: balla:
cmp dword [ballxv],2 cmp [ballxv], 2
jng balln jng balln
dec dword [ballxv] dec [ballxv]
jmp balln jmp balln
ballb: ballb:
cmp dword [ballxv],-2 cmp [ballxv], -2
jnl balln jnl balln
inc dword [ballxv] inc [ballxv]
jmp balln jmp balln
balln: balln:
cmp dword [ballyv],2 cmp [ballyv], 2
jng by_n jng by_n
dec dword [ballyv] dec [ballyv]
by_n: by_n:
;ball collusion of screen ;ball collusion of screen
cmp dword [ballx],640-32 cmp [ballx], 640-32
jna xa_ok jna xa_ok
neg dword [ballxv] neg [ballxv]
xa_ok: xa_ok:
cmp dword [ballx],6 cmp [ballx], 6
jnb xb_ok jnb xb_ok
neg dword [ballxv] neg [ballxv]
xb_ok: xb_ok:
;if ball far out of screen come back ;if ball far out of screen come back
; is not work already ; is not work already
cmp dword [bally],466 cmp [bally], 466
jng yax_ok jng yax_ok
call draw_window call draw_window
inc dword [scoreb] inc [scoreb]
mov dword [bally],240 mov [bally], 240
mov dword [ballx],310 mov [ballx], 310
mov dword [ballyv],2 mov [ballyv], 2
random 5,dword [ballxv] random 5, [ballxv]
sub dword [ballxv],2 sub [ballxv], 2
yax_ok: yax_ok:
cmp dword [bally],30 cmp [bally], 30
jnl yax_ok2 jnl yax_ok2
call draw_window call draw_window
inc dword [scorea] inc [scorea]
mov dword [bally],240 mov [bally], 240
mov dword [ballx],310 mov [ballx], 310
mov dword [ballyv],2 mov [ballyv], 2
random 5,dword [ballxv] random 5, [ballxv]
sub dword [ballxv],2 sub [ballxv], 2
yax_ok2: yax_ok2:
xorx: xorx:
cmp dword [ballxv],0 cmp [ballxv], 0
jne norx jne norx
random 5,dword [ballxv] random 5, [ballxv]
sub dword [ballxv],2 sub [ballxv], 2
cmp dword [ballxv],0 cmp [ballxv], 0
je xorx je xorx
norx: norx:
@ -134,9 +130,9 @@ collusion_test:
collimg img, [ply1x], [ply1y], img3, [ballx], [bally], eax collimg img, [ply1x], [ply1y], img3, [ballx], [bally], eax
cmp eax, 1 cmp eax, 1
jne not_coll jne not_coll
neg dword [ballyv] neg [ballyv]
add dword [bally],4 add [bally], 4
; neg dword [ballxv] ; neg [ballxv]
not_coll: not_coll:
;test on collusion com of ball ;test on collusion com of ball
@ -144,8 +140,8 @@ collusion_com:
collimg img, [ply2x], [ply2y], img3, [ballx], [bally], eax collimg img, [ply2x], [ply2y], img3, [ballx], [bally], eax
cmp eax, 1 cmp eax, 1
jne not_collcom jne not_collcom
neg dword [ballyv] neg [ballyv]
sub dword [bally],4 sub [bally], 4
; neg dword [ballxv] ; neg dword [ballxv]
not_collcom: not_collcom:
@ -154,102 +150,101 @@ collusion_grav:
collimg img, [gravx], [gravy], img3, [ballx], [bally], eax collimg img, [gravx], [gravy], img3, [ballx], [bally], eax
cmp eax, 1 cmp eax, 1
jne not_collg jne not_collg
neg dword [ballyv] neg [ballyv]
; mov dword [ballxv],-20 ; mov [ballxv], -20
cmp dword [ballyv],0 cmp [ballyv], 0
jl ab jl ab
jg bf jg bf
jmp not_collgx jmp not_collgx
ab: ab:
sub dword [ballyv],25 sub [ballyv], 25
jmp not_collgx jmp not_collgx
bf: bf:
add dword [ballyv],25 add [ballyv], 25
not_collgx: not_collgx:
cmp dword [ballxv],0 cmp [ballxv], 0
jl abx jl abx
jg bfx jg bfx
jmp not_collg jmp not_collg
abx: abx:
sub dword [ballxv],8 ;15 sub [ballxv], 8 ;15
jmp not_collg jmp not_collg
bfx: bfx:
add dword [ballxv],8 add [ballxv], 8
; mov dword [ballyv],20 ; mov [ballyv], 20
not_collg: not_collg:
;ply contorl ;ply contorl
cmp dword [ply1rx],560 cmp [ply1rx], 560
jna plyok jna plyok
cmp dword [ply1rx],12000 cmp [ply1rx], 12000
jna paa jna paa
mov dword [ply1rx],4 mov [ply1rx], 4
jmp plyok jmp plyok
paa: paa:
mov dword [ply1rx],560 mov [ply1rx], 560
plyok: plyok:
;com contorl ;com contorl
cmp dword [ply2x],560 cmp [ply2x], 560
jna cplyok jna cplyok
cmp dword [ply2x],12000 cmp [ply2x], 12000
jna cpaa jna cpaa
mov dword [ply2x],4 mov [ply2x], 4
jmp cplyok jmp cplyok
cpaa: cpaa:
mov dword [ply2x],560 mov [ply2x], 560
cplyok: cplyok:
;com move ;com move
cx_move: cx_move:
cmp dword [bally],160 cmp [bally], 160
jna cno_m jna cno_m
mov eax,dword [ballx] mov eax, [ballx]
sub eax, 30 sub eax, 30
cmp dword [ply2x],eax cmp [ply2x], eax
je cno_m je cno_m
cmp dword [ply2x],eax cmp [ply2x], eax
ja cm_m ja cm_m
cm_p: cm_p:
add dword [ply2x],3 add [ply2x], 3
jmp cno_m jmp cno_m
cm_m: cm_m:
sub dword [ply2x],3 sub [ply2x], 3
cno_m: cno_m:
;garvity ;garvity
gravity: gravity:
cmp dword [gravtime],0 cmp [gravtime], 0
je no_dg je no_dg
dec dword [gravtime] dec [gravtime]
no_dg: no_dg:
draw_gravity: draw_gravity:
cmp dword [gravtime],0 cmp [gravtime], 0
je nograv je nograv
mov eax,dword [ply1x] mov eax, [ply1x]
mov ebx,dword [ply1y] mov ebx, [ply1y]
add ebx, 10 add ebx, 10
mov dword [gravx],eax mov [gravx], eax
mov dword [gravy],ebx mov [gravy], ebx
jmp endgrav jmp endgrav
nograv: nograv:
mov dword [gravx],1000 mov [gravx], 1000
mov dword [gravy],1000 mov [gravy], 1000
endgrav: endgrav:
redraw_images: redraw_images:
setimg dword [ply1x],dword [ply1y],img setimg [ply1x], [ply1y], img
setimg dword [ply2x],dword [ply2y],img2 ;2 setimg [ply2x], [ply2y], img2
setimg dword [ballx],dword [bally],img3 setimg [ballx], [bally], img3
setimg dword [gravx],dword [gravy],img5 setimg [gravx], [gravy], img5
delay 1 ;don't generate delay for fast speed programm delay 1 ;don't generate delay for fast speed programm
@ -264,23 +259,23 @@ redraw_images:
mcall mcall
cmp ah, key_Left cmp ah, key_Left
jne no_l jne no_l
sub dword [ply1rx],32 ;16 sub [ply1rx], 32 ;16
no_l: no_l:
cmp ah, key_Right cmp ah, key_Right
jne no_r jne no_r
add dword [ply1rx],32 ;16 add [ply1rx], 32 ;16
no_r: no_r:
cmp ah, key_Up cmp ah, key_Up
jne no_u jne no_u
sub dword [ply1ry],16 sub [ply1ry], 16
no_u: no_u:
cmp ah, key_Down cmp ah, key_Down
jne no_d jne no_d
add dword [ply1ry],16 add [ply1ry], 16
no_d: no_d:
cmp ah, key_Space cmp ah, key_Space
jne no_sp jne no_sp
mov dword [gravtime],100 mov [gravtime], 100
no_sp: no_sp:
jmp still jmp still
@ -335,30 +330,20 @@ scoreb dd 0
counter dd 0 counter dd 0
tsoi dd 0 tsoi dd 0
pongfile: pongfile file 'pong.bmp'
file 'pong.bmp'
IM_END: IM_END:
temp: temp rb 20000
rb 20000
pong: pong rb 80*60*3+8
rb 80*60*3+8 img rb 32*32*3+8
img: img2 rb 32*32*3+8
rb 32*32*3+8 img3 rb 32*32*3+8
img2: img4 rb 80*20*3+8
rb 32*32*3+8 img5 rb 32*32*3+8
img3: img6 rb 15*15*3+8
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: temp_area rb 0x15000
rb 0x15000
I_END: I_END: