Forum || Horace Homepage
Doriți să reacționați la acest mesaj? Creați un cont în câteva clickuri sau conectați-vă pentru a continua.


Forum of Horatiu Roman - Enjoy
 
AcasaAcasa  Ultimele imaginiUltimele imagini  CăutareCăutare  ÎnregistrareÎnregistrare  Harta vizitatorilorHarta vizitatorilor  Conectare  
Conectare
Utilizator:
Parola:
Conectare automată: 
:: Mi-am uitat parola
Căutare
 
 

Rezultate pe:
 
Rechercher Cautare avansata
Ultimele subiecte
» pacat ca acest forum nu mai este activ
proiect nou: space shooter Icon_minitimeScris de crr_ro 12th Septembrie 2016, 3:42 pm

» CULOAREA VIETII
proiect nou: space shooter Icon_minitimeScris de EUGEN 19th Iunie 2012, 3:43 pm

» Povestea lui Iov
proiect nou: space shooter Icon_minitimeScris de Genesis 7th Aprilie 2011, 8:50 am

» transpun.txt
proiect nou: space shooter Icon_minitimeScris de Horace 24th Ianuarie 2011, 7:32 am

» MAZEGAME
proiect nou: space shooter Icon_minitimeScris de Horace 2nd Iunie 2010, 1:31 pm

» nebunie
proiect nou: space shooter Icon_minitimeScris de Vizitator 24th Februarie 2010, 8:50 am

Cine este conectat?
În total sunt 1 utilizatori conectați: 0 Înregistrați, 0 Invizibil și 1 Vizitator

Nici unul

Recordul de utilizatori conectați a fost de 22, 10th Mai 2024, 2:12 pm
Statistici
Avem 57 membri înregistrați
Cel mai nou utilizator înregistrat este: alinatim

Membrii nostri au postat un numar de 1064 mesaje în 108 subiecte

 

 proiect nou: space shooter

In jos 
AutorMesaj
Horace
Admin
Admin
Horace


masculin Numarul mesajelor : 298
Varsta : 30
Muzica : psihedelica
Reputatie : 10
Data de inscriere : 12/05/2007

proiect nou: space shooter Empty
MesajSubiect: proiect nou: space shooter   proiect nou: space shooter Icon_minitime6th Ianuarie 2010, 8:38 am

am o idee noua de joc in pascal

space shooter

modelul clasic, o nava jos care poate sa traga si multe nave mici slabe inamice in partea de sus, care se misca incet si le poti nimici destul de usor.

va fi un joc cu niveluri prestabilite cel mai probabil desi poate voi pune si un mod haotic in care apar ciudatenii.

oricum aici va voi tine la curent cu progresul proiectului.

in acelasi timp, aici voi pune codul sursa sa nu uit cumva de el. si sa il pot accesa mai usor cand sunt la scoala si vreau sa lucrez la joc.

Cod:

program joc_space;
{
autor: Horatiu Roman.
versiune: 0.0
}
uses crt,dos;
type
    enemy=record
      typ:byte;
      posx,posy:byte;
      end;
    player=record
      pos:byte;
      power:byte;
      end;

const
screen_vsize=50;
screen_hsize=80;
menu_hsize=20;


var
k:char;
keystep,exit,exit3:boolean;
ship:player;
btest:enemy;
i:word;
score:longint;
scores:array [1..10] of integer;
scoresn:array [1..10] of string;
initpos,maxpos,minpos:byte;
speed:word;{cate sec/100 sta pe step}


procedure writescores;
var f:text;
i:byte;
begin
assign(f,'space.res');
rewrite(f);
for i:=1 to 10 do begin
  writeln(f,scores[i]);
  writeln(f,scoresn[i]);
  end;
close(f);
end;





procedure readscores(var rst:boolean);
var f:text;
i:byte;
err:integer;
begin
assign(f,'space.res');
{$I-}
reset(f);
{$I+}
err:=IOResult;
if err<>0 then
  begin
  clrscr;
  writeln('Error ',err,' occured. Ask adult for help.');
  delay(2500);
  end;
if err=2 then
  begin
  rewrite(f);
  close(f);
  reset(f);
  writescores;
  rst:=true;
  end
  else
  rst:=false;
for i:=1 to 10 do begin
  readln(f,scores[i]);
  readln(f,scoresn[i]);
  end;
close(f);
end;



procedure initenemy(e:enemy; x,y:byte; t:byte);
begin
e.posx:=x;
e.posy:=y;
e.typ:=t;
end;


procedure init;
var rst:boolean;
begin
rst:=false;
repeat
textmode(CO80+Font8x8);
textcolor(white);
exit:=false;
exit3:=false;
score:=0;
minpos:=3;
maxpos:=screen_hsize-menu_hsize-3;
initpos:=(maxpos+minpos) div 2;
speed:=50;
readscores(rst);


initenemy(btest,initpos,20,1);
ship.pos:=initpos;
until rst=false;
end;


procedure clrscr2(x1,y1,x2,y2:byte);
var i,j:byte;
begin
for i:=x1 to x2 do
  for j:=y1 to y2 do begin
    gotoxy(i,j); write(' ');
    end;
end;




procedure showscores;
var i:byte;
begin
clrscr2(2,2,screen_hsize-menu_hsize-2,screen_vsize-2);
gotoxy((screen_hsize-menu_hsize) div 2 - 7,5); write('Highscores list');
for i:=1 to 10 do begin
  gotoxy(trunc((screen_hsize-menu_hsize)/7),10+i); write(scoresn[i]);
  gotoxy(trunc((screen_hsize-menu_hsize)*6/7),10+i); write(scores[i]);
  end;
end;




procedure gameover;
var str: string[10];
i,j:byte;
weak:boolean;
begin
clrscr2(2,2,screen_hsize-menu_hsize-1,screen_vsize-1);
gotoxy(trunc((screen_hsize-menu_hsize)/7),screen_vsize div 2);
textcolor(red);
write('Game is over, you are dead');
gotoxy(trunc((screen_hsize-menu_hsize)/7),screen_vsize div 2+1);
write('Please enter name: ');textcolor(white);
readln(str);
gotoxy(trunc((screen_hsize-menu_hsize)/7),screen_vsize div 2+2); textcolor(red);
weak:=true;
for i:=1 to 10 do begin
  if score>scores[i] then begin
                          for j:=10 downto i+1 do begin
                              scores[j]:=scores[j-1];
                              scoresn[j]:=scoresn[j-1];
                              end;
                          scores[i]:=score;
                          scoresn[i]:=str;
                          weak:=false;
                          break;
                          end;
  end;
if weak then i:=11;
case i of
1: write(str,' is the new champion!!!');
2..3: write(str,' is in the top 3!!');
4..9: write(str,' is in the highscores!');
10: write(str,' was quite lucky.');
11: if screen_hsize-menu_hsize>30 then write('My grandma plays better than ',str) else write(str,' sucks');
end;
    sound(340);delay(100);nosound;
    sound(380);delay(100);nosound;
    sound(420);delay(100);nosound;
    sound(445);delay(160);nosound;
    delay(700);

writescores;
exit:=true;
showscores;
gotoxy(trunc((screen_hsize-menu_hsize)*2/7),screen_vsize-2);write('Exit? (esc)');
if readkey=#27 then exit3:=true;
end;


procedure keys;
begin
k:=readkey;
case k of
  #27: begin
      exit:=true; exit3:=true; gotoxy(20,20); textcolor(red); writeln('Exiting');
      end;
  {ad}
  'd': if ship.pos<maxpos then inc(ship.pos);
  'a': if ship.pos>minpos then dec(ship.pos);
  {numpad}
  '6': if ship.pos<maxpos then inc(ship.pos);
  '4': if ship.pos>minpos then dec(ship.pos);
  end;
  keystep:=false;
end;



procedure drawmenu;
var i:byte;
begin
clrscr;
for i:=2 to screen_vsize do begin
  gotoxy(screen_hsize-menu_hsize,i);write(char(ord(186))); { mijloc vertical }
  end;
for i:=2 to screen_hsize-1 do begin
  gotoxy(i,1);write(char(ord(205)));          { linia sus }
  gotoxy(i,screen_vsize);write(char(ord(205)));        { linia jos }
  end;
gotoxy(screen_hsize-menu_hsize,1);write(char(ord(203)));    {mijloc sus}
gotoxy(1,1);write(char(ord(201)));    {  sus stg }
for i:=2 to screen_vsize-1 do begin
  gotoxy(1,i);write(char(ord(186)));        {linia stg }
  gotoxy(screen_hsize-1,i);write(char(ord(186)));        { linia dr }
  end;
gotoxy(1,screen_vsize);write(char(ord(200)));          { stg  jos }
gotoxy(screen_hsize-1,screen_vsize);write(char(ord(188)));          {  dr jos  }
gotoxy(screen_hsize-1,1);write(char(ord(187)));          {  dr sus  }
gotoxy(screen_hsize-menu_hsize,screen_vsize);write(char(ord(202)));          {mijloc jos}

gotoxy(screen_hsize-menu_hsize+menu_hsize div 2-3,7);write('SPACE'); {titlu}

gotoxy(screen_hsize-menu_hsize+menu_hsize div 2-4,9);write('Speed:');    {69,9 - viteza    }
gotoxy(screen_hsize-menu_hsize+menu_hsize div 2-4,10);write('Length:');  {70,10 - lungimea  }
gotoxy(screen_hsize-menu_hsize+menu_hsize div 2-4,11);write('Score:');  {69,11 - scor      }
gotoxy(screen_hsize-menu_hsize+menu_hsize div 2-5,13);write('Alt+Enter');
gotoxy(screen_hsize-menu_hsize+menu_hsize div 2-5,14);write('Fullscreen');
textcolor(darkgray);
if screen_vsize>=40 then begin
gotoxy(screen_hsize-menu_hsize+1,30);write('    controls:    ');
gotoxy(screen_hsize-menu_hsize+1,31);write('  (numlock on)  ');
gotoxy(screen_hsize-menu_hsize+1,32);write('    ');
gotoxy(screen_hsize-menu_hsize+1,33);write('  4, a  =  stg  ');
gotoxy(screen_hsize-menu_hsize+1,34);write('  6, d  =  dr.  ');
gotoxy(screen_hsize-menu_hsize+1,35);write('    ');
gotoxy(screen_hsize-menu_hsize+1,36);write('    ');
gotoxy(screen_hsize-menu_hsize+1,37);write('    ');
gotoxy(screen_hsize-menu_hsize+1,38);write('    ');
gotoxy(screen_hsize-menu_hsize+1,39);write('    ');
end;
gotoxy(20,20);
end;



procedure drawship(x,y:byte);

begin
gotoxy(x,y);
case ship.power of
1: write(char('H'));
else write(char('H'));
end;
end;


procedure drawenemy(e:enemy);
begin
gotoxy(e.posx,e.posy);
case e.typ of
1: write(char(1));

end;





procedure draw;
var i:word;
begin
drawship(ship.pos,screen_vsize-3);
{score}
gotoxy(screen_hsize-menu_hsize+menu_hsize div 2+3,11);write(score,'  ');

gotoxy(screen_hsize-3,screen_vsize-2);
end;



procedure step;
var i:word;
hour,min,sec,s,s2:word;
begin
gettime(hour,min,sec,s);
repeat
if keypressed then keys;
gettime(hour,min,sec,s2);
until (s2>s+speed) or exit3;
draw;
end;






begin
randomize;
repeat
init;
drawmenu;
repeat
step;
until exit;

until exit3;
end.



codul a pornit de la scheletul tip de la jocul snake. din nou insist, am facut tot codul singur, nu am copiat de nicaieri asa ca va rog, daca copiati ceva de aici sa nu ziceti ca ati pus coada la pruna ca nu-i adevarat si nu-i corect. eu am pus-o de data asta.

succese.
Sus In jos
https://horacehomepage.forumgratuit.ro
 
proiect nou: space shooter
Sus 
Pagina 1 din 1

Permisiunile acestui forum:Nu puteti raspunde la subiectele acestui forum
Forum || Horace Homepage :: Discutii :: Informatica si calculatoare-
Mergi direct la: