RD5 GOLD WEB EDITOR
📄
📄 2-RB4-3CC.HTML
📄 222.JPG
📄 3CC-BASIC1.HTML
📄 Microsoft Paint.exe
📄 R2C-3.HTML
📄 R2C-4.HTML
📄 RB4-3C.HTML
📄 RB4-3CC.HTML
📄 RB4-RETRO.HTML
📄 RB4-RETRO.html
📄 RD5-3CC.html
📄 RL-4.html
📄 TARS.html
📄 TES10.mp3
📄 TES11.mp3
📄 TRISHA-OK.html
📄 TRISHA-WIN.HTML
📄 Tiny-demo.html
📄 Tinybj7-blindado.html
📄 Tinybj7-publica.html
📄 aplicaciones-rd5.html
📄 app1.html
📄 app2.html
📄 app3.html
📄 appb1.html
📄 appb2.html
📄 appb3.html
📄 appb4.html
📄 appb5.html
📄 appb6.html
📄 c-julio.JPG
📄 caratula.gif
📄 caratula02.gif
📄 caratula2.gif
📄 chokurei2.jpg
📄 columna-julio.html
📄 columna-stella.html
📄 columna-stellab.html
📄 demos.html
📄 df3.html
📄 dni.gif
📄 donaciones.gif
📄 ecualizador.html
📄 ed-podcast.JPG
📄 ed-radio.JPG
📄 editorv.html
📄 editorv1.html
📄 editorv2.html
📄 fondo5d.jpg
📄 fresi-clip.html
📄 gold.php
📄 gold62.php
📄 gold93.php
📄 googlefd161ffccea5f6ab.html
📄 gw.php
📄 index-anterior.html
📄 index.html
📄 index2.html
📄 logo.png
📄 logo.webp
📄 magazine.html
📄 manager3.php
📄 mic2.jpg
📄 mini1.html
📄 minib2a.html
📄 mn.php
📄 muestra.JPG
📄 p.html
📄 pm.html
📄 pm2.html
📄 pod-rd5.html
📄 podcast-stops.gif
📄 podcast2.mp3
📄 pp.html
📄 promo-tinybj7.html
📄 radio.html
📄 radio_gold.html
📄 rd5-fresia-4 canvashtml
📄 rd5-fresia-ok.html
📄 rd5-fresia.html
📄 rd5-plus-anterior.html
📄 rd5-plus.html
📄 rd5-plus2.html
📄 rd5-radioplayer.html
📄 rd5-tv.html
📄 rd5.html
📄 sst.html
📄 st.html
📄 starclip.html
📄 stella-2.JPG
📄 stella.JPG
📄 stt.html
📄 t-rd5.html.html
📄 t-rd6.html
📄 t-rd7.html
📄 t-tiny.html
📄 tes0.jpg
📄 tes1.jpg
📄 tes2.jpg
📄 tes4.jpg
📄 tes4.mp3
📄 tes5.jpg
📄 tes7.jpg
📄 tes8.jpg
📄 tienda.html
📄 tiendaaps.html
📄 tiendapps.html
📄 tiny-bj6.html
📄 tiny-bj7-full.html
📄 tiny-bj7.html
📄 tiny3-bj2.html
📄 tinybj7-blindado.html
📄 tinydemo.html
📄 titulo.jpg
📄 tnw2.html
📄 trisha-basic.html
📄 trisha-cafe.html
📄 trisha-mini.html
📄 tv-pantalla.php
📄 tv.html
📄 xdni.html
CÓDIGO (OSCURO GOLD)
VISTA PREVIA
💾 GUARDAR
Tema: Monokai
Tema: Dracula
Tema: Material
Tema: Blackboard
Tema: Abyss
Monospace
Courier
12px
14px
16px
18px
20px
22px
24px
26px
28px
30px
32px
↷ Rehacer
↶ Deshacer
🔍 BUSCAR
+ REPRO RADIO
SIG.
X
<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>RD5 Defender</title> <style> html, body { margin:0; padding:0; background:#000; overflow:hidden; font-family: monospace; width:100%; height:100%; } canvas { display:block; width:100%; height:100%; } #startBtn { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:10; font-size:32px; color:#0ff; cursor:pointer; background: rgba(0,0,0,0.7); padding:20px 40px; border-radius:12px; } </style> </head> <body> <canvas id="game"></canvas> <div id="startBtn">CLICK PARA JUGAR</div> <script> const canvas = document.getElementById("game"); const ctx = canvas.getContext("2d"); function resize(){ canvas.width = canvas.parentElement.clientWidth; canvas.height = canvas.parentElement.clientHeight; } window.addEventListener("resize", resize); resize(); /* Audio estilo Atari */ const audioCtx = new (window.AudioContext || window.webkitAudioContext)(); function laserSound(){ const o = audioCtx.createOscillator(); const g = audioCtx.createGain(); o.type="square"; o.frequency.value=900; g.gain.value=0.12; o.connect(g); g.connect(audioCtx.destination); o.start(); o.stop(audioCtx.currentTime+0.08); } function explosionSound(){ const o = audioCtx.createOscillator(); const g = audioCtx.createGain(); o.type="sawtooth"; o.frequency.setValueAtTime(200,audioCtx.currentTime); o.frequency.exponentialRampToValueAtTime(40,audioCtx.currentTime+0.35); g.gain.setValueAtTime(0.25,audioCtx.currentTime); g.gain.exponentialRampToValueAtTime(0.001,audioCtx.currentTime+0.35); o.connect(g); g.connect(audioCtx.destination); o.start(); o.stop(audioCtx.currentTime+0.35); } /* Estado del juego */ let gameOver=false, score=0, level=1, canShoot=true; const player={x:100,y:100,w:50,h:20,speed:6,bullets:[]}; const stars=Array.from({length:150},()=>({x:Math.random()*canvas.width, y:Math.random()*canvas.height, s:Math.random()*2+1})); let enemies=[], enemyRate=0.02; /* Input */ const keys={}; document.addEventListener("keydown",e=>{ keys[e.key]=true; if(e.key===" " && gameOver){audioCtx.resume(); resetGame();} }); document.addEventListener("keyup",e=>{ keys[e.key]=false; if(e.key===" ") canShoot=true; // permite disparar otro pulso al soltar espacio }); /* Reset */ function resetGame(){ score=0; level=1; enemyRate=0.02; enemies=[]; player.bullets=[]; player.x=100; player.y=canvas.height/2; canShoot=true; gameOver=false; } /* Disparar */ function shoot(){ if(!canShoot || gameOver) return; canShoot=false; // Alcance largo player.bullets.push({x:player.x+player.w, y:player.y+player.h/2, w:14, h:4, sp:14, life:80}); laserSound(); } /* Spawn enemigos */ function spawnEnemy(){ enemies.push({x:canvas.width+40,y:Math.random()*(canvas.height-60)+30,r:15,sp:2+Math.random()*level,a:0}); } /* Update */ function update(){ if(gameOver) return; if(keys.ArrowUp) player.y-=player.speed; if(keys.ArrowDown) player.y+=player.speed; if(keys.ArrowLeft) player.x-=player.speed; if(keys.ArrowRight) player.x+=player.speed; if(keys[" "]) shoot(); player.x=Math.max(0,Math.min(canvas.width-player.w,player.x)); player.y=Math.max(0,Math.min(canvas.height-player.h,player.y)); // Actualizar balas player.bullets.forEach((b,i)=>{ b.x+=b.sp; b.life--; if(b.life<=0){player.bullets.splice(i,1); canShoot=true;} }); // Spawn enemigos if(Math.random()<enemyRate) spawnEnemy(); // Mover enemigos y colisiones enemies.forEach((e,i)=>{ e.x-=e.sp; e.y+=Math.sin(e.a)*2; e.a+=0.05; // Colisión con nave if( player.x < e.x+e.r && player.x+player.w > e.x-e.r && player.y < e.y+e.r && player.y+player.h > e.y-e.r ){ gameOver=true; } // Colisión con balas player.bullets.forEach((b,j)=>{ if(b.x<e.x+e.r && b.x+b.w>e.x-e.r && b.y<e.y+e.r && b.y+b.h>e.y-e.r){ player.bullets.splice(j,1); enemies.splice(i,1); score+=100; explosionSound(); if(score%1000===0){level++; enemyRate+=0.005;} } }); // Enemigos que se escapan if(e.x < -e.r) enemies.splice(i,1); }); // Estrellas stars.forEach(s=>{s.x-=1; if(s.x<0)s.x=canvas.width;}); } /* Draw */ function draw(){ ctx.clearRect(0,0,canvas.width,canvas.height); ctx.fillStyle="#fff"; stars.forEach(s=>ctx.fillRect(s.x,s.y,s.s,s.s)); ctx.fillStyle="#0ff"; ctx.fillRect(player.x,player.y+5,50,10); ctx.fillStyle="#0aa"; ctx.fillRect(player.x+10,player.y,20,10); ctx.fillStyle="#ff0"; player.bullets.forEach(b=>ctx.fillRect(b.x,b.y,b.w,b.h)); enemies.forEach(e=>{ctx.fillStyle="#f00"; ctx.beginPath(); ctx.arc(e.x,e.y,e.r,0,Math.PI*2); ctx.fill();}); ctx.fillStyle="#0f0"; ctx.fillText(`SCORE ${score}`,20,30); ctx.fillText(`LEVEL ${level}`,20,50); if(gameOver){ ctx.fillStyle="#f00"; ctx.font="40px monospace"; ctx.fillText("GAME OVER",canvas.width/2-120,canvas.height/2); ctx.font="18px monospace"; ctx.fillText("ESPACIO PARA REINICIAR",canvas.width/2-120,canvas.height/2+30); } } /* Loop */ function loop(){update(); draw(); requestAnimationFrame(loop);} /* Start */ document.getElementById("startBtn").onclick=()=>{ audioCtx.resume(); resetGame(); document.getElementById("startBtn").style.display="none"; loop(); }; </script> </body> </html>