New games every week!
JSE - Pong
3rd May 2021  
Can it play Pong yet?!


View on YouTube

Sure it can!

Mouse control for player one.
Gamepad or keys for player two.
Alternatively (by default) Player two is AI controlled.
.. AI controlled.!?!?! In a script!?! That I've written!!?!?

Sure does feel kinda empty without sound though, huh...?

The code is more or less "standard", but I've had to do a few quirky things to get the ifs working properly.

You can Play it here. Simply copy the code below, shove it in the box, then click run!

// Table Tennis // by Jayenkai // Created 2021/5/3 Symbol 0,"2__0_0,O.MM0_0_0@OVVOOMM0_0_0/OVVOOMM0_0_0/OVVO,MM0_0_0!OVVO,MM0_0_0!OVVO,MM0_0_0!OVVO,MM0_0_0!OVVO,MM0_0_0!OVVO,MM0_0_0!OVVO,MM0_0_0!OVVO,MM0_0_0!OVVO,MM0_0_0!OVVO,MM0_0_0!OVVO,MM0_0_0!OVVO,MM0_0_0!OVVO,MM0_0_0!OVVO,MM0_0_0!OVVO,MM0_0_0!OVVO,MM0_0_0!OVVO,MM0_0_0!OVVO,MM0_0_0!OVVO,MM0_0_0!OVVO,MM0_0_0!OVVO,MM0_0_0!OVVO,MM0_0_0!OVVO,MM0_0_0!OVVO,MM0_0_0!OVVO,MM0_0_0!OVVO,MM0_0_0!OVVOOMM0_0_0/OVVOOMM0_0_0/O.MM"; Symbol 1,"2__0_0?MMO.0_0_0/MMOOBBO0_0_0/MMOOBBO0_0_0!MMO,BBO0_0_0!MMO,BBO0_0_0!MMO,BBO0_0_0!MMO,BBO0_0_0!MMO,BBO0_0_0!MMO,BBO0_0_0!MMO,BBO0_0_0!MMO,BBO0_0_0!MMO,BBO0_0_0!MMO,BBO0_0_0!MMO,BBO0_0_0!MMO,BBO0_0_0!MMO,BBO0_0_0!MMO,BBO0_0_0!MMO,BBO0_0_0!MMO,BBO0_0_0!MMO,BBO0_0_0!MMO,BBO0_0_0!MMO,BBO0_0_0!MMO,BBO0_0_0!MMO,BBO0_0_0!MMO,BBO0_0_0!MMO,BBO0_0_0!MMO,BBO0_0_0!MMO,BBO0_0_0!MMO,BBO0_0_0/MMOOBBO0_0_0/MMOOBBO0_0_0@MMO."; Symbol 2,"2__0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_00M.0_0_0_M,NNO0_0_0/M,N,OP0_0_0!MMN,OOP0_0_0!MN,OOPP0_0_0!MNNOOP,0_0_0/O,P,0_0_0_P."; Players=1 // One player mode. Use mouse for player one //Players=2 // Two player mode. Use gamepad/keys for player two Graphics 1024,768,2 AA Off reset=1 point=0;pointlit=0 y1=ScreenHeight()*0.5 y2=ScreenHeight()*0.5 yg2=0 Repeat CLS;ResetDraw() If reset==1 ballx=ScreenWidth()*0.5 bally=ScreenHeight()*0.5 ballgx=Rnd(0.8,1.2) if Rnd(10)<5 then ballgx=Neg(ballgx) ballgy=Rnd(0.8,1.2) if Rnd(10)<5 then ballgy=Neg(ballgy) speed=Neg(8) maxspeed=8 reset=0 endif if speed<maxspeed then speed=speed+0.1 size=24 SetCol 32,64,32 Rect ScreenWidth()*0.5,ScreenHeight()*0.5,4,ScreenHeight(),1 SetCol 100,255,100 SetSize 3 DrawImg size*2,y1,0 DrawImg jscrw-(size*2),y2,1 n=0 Repeat n=n+1 if speed>0 ballx=ballx+((ballgx*speed)*0.25) bally=bally+((ballgy*speed)*0.25) endif DrawImg ballx,bally,2 if bally<32 then bally=32;ballgy=jRnd(0.8,1.2) if bally>(jscrh-32) then bally=(jscrh-32);ballgy=Neg(jRnd(0.8,1.2)) a=(Abs(ballx-(size*2))<(size)) b=(Abs(bally-(y1))<(48+(size*0.5))) c=ballgx<0 if a and b and c then ballgx=jRnd(0.8,1.2); maxspeed=maxspeed+0.25 a=(Abs(ballx-(ScreenWidth()-(size*2)))<(size)) b=(Abs(bally-(y2))<(48+(size*0.5))) c=ballgx>0 if a and b and c then ballgx=Neg(jRnd(0.8,1.2)); maxspeed=maxspeed+0.25 Until n>4 If ballx<Neg(size) then reset=1;Score2=Score2+1;point=2;pointlit=90 If ballx>(ScreenWidth()+size) then reset=1;Score1=Score1+1;point=1;pointlit=90 if MouseY>0 then y1=MouseY() if Players!=1 then y2=y2+((Gamepad(ButtonDown)-Gamepad(ButtonUp))*16) if Players==1 // Basic AI if bally<(y2-24) then yg2=yg2+Neg(Rnd(0.5,2)) if bally>(y2+24) then yg2=yg2+Rnd(0.5,2) if Abs(bally-y2)<24 then yg2=yg2*0.6 if yg2<Neg(16) then yg2=Neg(16) if yg2>16 then yg2=16 y2=y2+yg2 endif if y1<48 then y1=48 if y1>(ScreenHeight()-48) then y1=(ScreenHeight()-48) if y2<48 then y2=48 if y2>(ScreenHeight()-48) then y2=(ScreenHeight()-48) SetSize 4 SetCol 100,255,100 if ((point==1) and (pointlit%30>15)) then SetCol 255,100,255 Text ScreenWidth()*0.25,32,Score1,1 SetCol 100,255,100 if ((point==2) and (pointlit%30>15)) then SetCol 255,100,255 Text ScreenWidth()*0.75,32,Score2,1 pointlit=pointlit-1 if pointlit<1 then pointlit=0;point=0 Flip fin=0 if Score1>9 then fin=1;GameOver="Left Wins" if Score2>9 then fin=1;GameOver="Right Wins" Until fin=1 Text ScreenWidth()*0.5,ScreenHeight()*0.5,GameOver,1 Flip
Open JSE

|update| Apologies if you copy+pasted this in the previous hour or so. Silly me forgot that browser's don't like <'s and >'s!! Had to do some code-converting in the AGameAWeek script! |update|

Views 111, Upvotes 1
New games every week!
Site credits : PHP script, Blog posts, Games, Music, Pixelart, Poems and More : Jayenkai
(c) Jayenkai 2017 and onwards, site design Rychan. RSS feed
Blog - JSE - Pong - AGameAWeek