Toon posts:

[Delphi] Muren bij een spel

Pagina: 1
Acties:
  • 185 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik zou graag een simpel spel willen maken, iets als pacman ofzo maar dan maak je t level en dan moet dat pacman bolletje natuurlijk niet door de muren kunnen rennen.

Hoe doe ik dat?
moet ik dan de coordinaten apart gaan invoeren van ieder stukkie muur zodat, als t beestje's coords t zelfde zijn als die van de muur dat ie dan kapt ofzo.

of is er een simpelere manier iets in de gedachte van een eventhandler ---> on_collide ofzo ?????? :?

  • IWriteCode
  • Registratie: Juli 2000
  • Laatst online: 09-07 11:51

IWriteCode

Less = more

Stel.. je maakt een 'kaart' van 20 bij 7 [even als voorbeeld] Je kan dan met 1en en 0en aangeven waar je wel en niet mag komen. Je zou hier ook powerups in kunnen stoppen met andere cijfers.
code:
1
2
3
4
5
6
7
11111111111111111111
10000000000000000001
10110111011011101101
10000000000000000001
10110111011011101101
10000000000000000001
11111111111111111111

De positie van de pacman hou je dan bij en dan kan je heel makkelijk kijken of je wel of niet naar een bepaald coordinaat mag.

Less = more


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

je kunt ook de layout van je scherm combineren of er op mag gelopen worden.

dus je deelt heel je scherm in "vakjes" en geef je aan met een getal wat er bij het opbouwen neer gezet moet worden. (getal) wat weer aangeeft wat het is.
(Punt, lege plaats, verticale muur, Horizontale muur, Gat)

Dan weet je dat bijvoorbeeld alles boven het nummer 100 loopbaar is en alles onder de 100 niet. (eigen definitie..)
Kan je er ook makkelijk nieuwe dingen bijvoegen.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • IWriteCode
  • Registratie: Juli 2000
  • Laatst online: 09-07 11:51

IWriteCode

Less = more

Check mijn supergaaf voorbeeldprogrammaatje:
SUPERPAC!
Uiterraad met Source
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
unit main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ImgList, ExtCtrls;

const
  Map: array[0..9,0..9] of Byte =
  (
   (0,0,0,0,0,0,0,0,0,0),
   (0,1,1,1,1,1,1,1,1,0),
   (0,1,0,0,0,0,0,0,1,0),
   (0,1,1,1,1,1,1,1,1,0),
   (0,1,0,1,0,0,1,0,1,0),
   (0,1,0,1,0,0,1,0,1,0),
   (0,1,1,1,1,1,1,1,1,0),
   (0,1,0,0,0,0,0,0,1,0),
   (0,1,1,1,1,1,1,1,1,0),
   (0,0,0,0,0,0,0,0,0,0)
  );

type
  TForm1 = class(TForm)
    PaintBox1: TPaintBox;
    ImageList1: TImageList;
    procedure PaintBox1Paint(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    PosX, PosY: Integer;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.PaintBox1Paint(Sender: TObject);
var
  x,y: integer;
begin
  for y:=0 to 9 do begin
    for x:=0 to 9 do begin
      imagelist1.Draw(PaintBox1.Canvas,x * 20,y * 20, Map[y,x]);
    end;
  end;
  imagelist1.draw(PaintBox1.Canvas,Posx * 20,Posy * 20, 2);
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  case Key of
    VK_LEFT:
      if Map[PosY, PosX-1] <> 0 then
        Dec(PosX);
    VK_RIGHT:
      if Map[PosY, PosX+1] <> 0 then
        Inc(PosX);
    VK_UP:
      if Map[PosY-1, PosX] <> 0 then
        Dec(PosY);
    VK_DOWN:
      if Map[PosY+1, PosX] <> 0 then
        Inc(PosY);
  end;
  PaintBox1Paint(Self);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  PosX := 1;
  PosY := 1;
end;

Ja, het kan veel efficienter enz. enz. enz. Het is ook maar een VOORBEELD :)

Less = more


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17-08 23:56

Janoz

Moderator Devschuur®

!litemod

Bij Pacman is er een extra retrictie aan de bewegingen. Ik weet niet of jij die ook over wil nemen. Bij Pacman kun je op een paadje slechts langs 1 richting heen en weer bewegen. Daarnaast kun je bij pacman ook niet 'stil staan'.. Hierdoor zou je ook gebruik kunnen maken van een graaf die het speelveld definieerd (knopen bij de kruispunten en edges over de paden). Op die manier kun je gewoon zelf weten wat je op het speelbord tekend, en daarnaast wordt de AI ook een stuk makkelijker (vijanden die via dijkstra's kortste pad algoritme op je af komen stormen :) ).

[edit]Iets ff iets duidelijker gemaakt

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • IWriteCode
  • Registratie: Juli 2000
  • Laatst online: 09-07 11:51

IWriteCode

Less = more

Op dinsdag 13 maart 2001 09:11 schreef Janoz het volgende:
Bij Pacman is er een extra retrictie aan de bewegingen. Ik weet niet of jij die ook over wil nemen. Bij Pacman kun je op een paadje slechts langs 1 richting heen en weer bewegen. Daarnaast kun je bij pacman ook niet 'stil staan'.. Hierdoor zou je ook gebruik kunnen maken van een graaf die het speelveld definieerd (knopen bij de kruispunten en edges over de paden). Op die manier kun je gewoon zelf weten wat je op het speelbord tekend, en daarnaast wordt de AI ook een stuk makkelijker (vijanden die via dijkstra's kortste pad algoritme op je af komen stormen :) ).

[edit]Iets ff iets duidelijker gemaakt
:?
Kan je niet gewoon de richting van de beweging van Pacman bijhouden?
Als je dan niet stil mag staan mag de beweging nooit nul zijn en als je niet terug mag in de richting die je opgaat mag de richting nooit 180 graden de andere kant op gaan.
[Lijkt me wat makkelijker te implementeren]

Less = more


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17-08 23:56

Janoz

Moderator Devschuur®

!litemod

Op dinsdag 13 maart 2001 09:20 schreef Jamal het volgende:

[..]

:?
Kan je niet gewoon de richting van de beweging van Pacman bijhouden?
Als je dan niet stil mag staan mag de beweging nooit nul zijn en als je niet terug mag in de richting die je opgaat mag de richting nooit 180 graden de andere kant op gaan.
[Lijkt me wat makkelijker te implementeren]
Makkelijker? mwah.. Mischien als je nog niet veel van grafen weet. Probeer maar eens te bedenken hoe je de tegenstanders wil laten bewegen.

De positie van pacman bepaal je gewoon door te kijken hoever hij al een edge afgelopen is (Hij mag trouwens wel omdraaien) Dan hoef je alleen te controleren of er mischien op de tegenovergestelde richting gedrukt is. Zodra je bij een knoop uitkomt (Een kruispunt dus) kijk je of er mischien van richting veranderd moet worden (door te kijken of er een richting gedrukt wordt) Op die manier heb je geen 'muur raak' algoritme meer nodig omdat je alleen over de edges van de graaf kunt bewegen.

De tegenstanders kunnen ook alleen over de graaf wandelen. Er zijn bergen algoritme's om te bepalen wat het kortste pad is richting een punt in die graaf. Op die manier kun je je vijanden zo snel mogelijk richting je speler sturen :)..

Wat er makkelijk is aan deze manier: Alle bewegingen van de speler zijn al vast gelegd (voor powerups gebruik je ook een knoop), daarnaast is ook al duidelijk hoe je een groot deel van de AI van de tegenstanders moet implementeren.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
dus wat jullie zeggen is dat ik byv. de tag velden kan veranderen naar 1 voor muren en als het beestje tegebn een object staat met tag=1 dan kan ie niet verder???
of begrijp ik er nu nix meer van.

Btw het moet een beetje lichtelijk gedetailleerd worden dus ik denk dat het gedoe met de 00 en 11 te veel wordt. Maar toch bedankt.
:P :9

  • joepP
  • Registratie: Juni 1999
  • Niet online
Pacman mag wel stilstaan (in een hoek bijvoorbeeld), de spookjes niet. Ze mogen ook niet omkeren. Ik heb in het verleden een heel eenvoudig algoritme gebruikt om de spookjes te laten lopen:

AANNAME:
1) Op het moment dat een spookje op een kruispunt staat, moet ie een beslissing nemen welke kant op te gaan.

REKEN UIT:
dx = verschil in x-richting tov pacman
dy = verschil in y-richting tov pacman

SPOOKJE 1:
probeert de dx te minimaliseren, daarna pas dy.
SPOOKJE 2: probeert de dy te minimaliseren.
SPOOKJE 3: probeert of dx of dy te minimaliseren
SPOOKJE 4: loopt compleet random

Zo heb je 4 verschillende spookjes, met quasi-intelligent verschillend gedrag. Spookje 4 bijvoorbeeld maar wat te dwalen, de rest 'jaagt' echt op je.

Niet moeilijk, wel makkelijk :)

  • IWriteCode
  • Registratie: Juli 2000
  • Laatst online: 09-07 11:51

IWriteCode

Less = more

Op dinsdag 13 maart 2001 11:31 schreef Zoepnek het volgende:
Btw het moet een beetje lichtelijk gedetailleerd worden dus ik denk dat het gedoe met de 00 en 11 te veel wordt. Maar toch bedankt.
:P :9
Wat heeft dat nu met detail te maken? [Heb je het demo programmaatje bekeken?]
Zoals boven al voor werd gesteld kan je ook andere waardes kiezen dus <100 is muur en >100 is geen muur.. dan kan je aardig wat plaatjes kwijt.

Ik zal vanavond wel ff kijken of ik een werkend demootje in elkaar kan flansen met tegenstanders en zo.

Less = more


Verwijderd

Topicstarter
Op Tuesday 13 March 2001 11:46 schreef Jamal het volgende:

[..]

Wat heeft dat nu met detail te maken? [Heb je het demo programmaatje bekeken?]
Zoals boven al voor werd gesteld kan je ook andere waardes kiezen dus <100 is muur en >100 is geen muur.. dan kan je aardig wat plaatjes kwijt.

Ik zal vanavond wel ff kijken of ik een werkend demootje in elkaar kan flansen met tegenstanders en zo.
Ik had m gedownd maar hij deed t niet

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17-08 23:56

Janoz

Moderator Devschuur®

!litemod

Op Tuesday 13 March 2001 11:31 schreef joepP het volgende:
...
AANNAME:
1) Op het moment dat een spookje op een kruispunt staat, moet ie een beslissing nemen welke kant op te gaan.

REKEN UIT:
dx = verschil in x-richting tov pacman
dy = verschil in y-richting tov pacman

SPOOKJE 1:
probeert de dx te minimaliseren, daarna pas dy.
SPOOKJE 2: probeert de dy te minimaliseren.
SPOOKJE 3: probeert of dx of dy te minimaliseren
SPOOKJE 4: loopt compleet random

Zo heb je 4 verschillende spookjes, met quasi-intelligent verschillend gedrag. Spookje 4 bijvoorbeeld maar wat te dwalen, de rest 'jaagt' echt op je.

Niet moeilijk, wel makkelijk :)
Sorry dat ik het moet zeggen, maar je hebt een paar dingen over het hoofd gezien.

Spookje 1 zal waarschijnlijk vooral van links naar rechts en andersom bewegen.
situatie
_____
|:) |
| | |
| | |
|_| |
___}:O|

Jouw speekje zal in dit geval naar links gaan ipv naar boven

Zelfde geldt voor die die alleen op de dy focust alleen ipv links<->rechts nu boven<->beneden.

Ook voor spookje drie heb ik nog een situatie waar ie helemaal de verkeerde kant op gaat:

___________
_:)________ |
________}:O_|

(Onder :) is ook een muurtje)

Hier zal het spookje gewoon naar links gaan terwijl als hij de :) wil pakken hij eerst naar rechts moet.

Het kortste pad werkt in deze gevallen juist wel, omdat het spookje op dat moment ook een ID heeft van hoe het doolhof in elkaar zit. Dit alles zonder dat er echt ingewikkelde algoritmes bij komen kijken


Ik weet dat mijn verhaal mischien moeilijk klinkt, maar als je je een klein beetje in de graven hebt verdiept zul je zien dat het het geheel een stuk makkelijker maakt (echt waar)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • joepP
  • Registratie: Juni 1999
  • Niet online
Met graven & kortste route-algoritmen werken is ontzettend leerzaam en interessent, maar voor pacman-spookjes niet zo belangrijk. Laten we de volgende eisen stellen aan het algoritme voor het lopen van spookjes:

1) De spookjes moeten niet allemaal hetzelfde doen, en dus achter elkaar aan gaan lopen
2) De spookjes mogen niet 'voorspelbaar' zijn

Beide punten zijn ZEER lastig te verwezenlijken met te intelligente spookjes (korte-route-algoritmen dus). De spookjes zullen steeds dezelfde beslissingen nemen en uiteindelijk precies over elkaar heen gaan lopen.. Ook krijgen ze nogal de neiging achter pacman aan te hobbelen in plaats van hem in te sluiten/te verrassen.

Indien je mijn eenvoudige algoritmetje gebruikt krijgen ze een eigen identiteit, zijn ze onvoorspelbaar, lopen niet over elkaar heen en het leukste: ze lijken nog intelligent ook. Soms is eenvoud zo slecht nog niet:)

Heb je zelf wel eens een pacman gemaakt eigenlijk, ik wel namelijk..

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op Wednesday 14 March 2001 10:35 schreef joepP het volgende:
Soms is eenvoud zo slecht nog niet:)

Heb je zelf wel eens een pacman gemaakt eigenlijk, ik wel namelijk..
Klopt als een bus. Een pacman spook behoort niet teveel intelligentie te bevatten. bevat hij wel veel intelligentie dan zal hij te sterk zijn en dan is het spel niet meer leuk om te spelen. Beetje "geluk" moet er namelijk wel in blijven zitten.

[edit: Jaymz Sabotage Fix. (spelvaut)]

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • joepP
  • Registratie: Juni 1999
  • Niet online
:) Volgens mij zijn intelligente spookjes juist makkelijker te verslaan.. Ze zullen namelijk altijd exact dezelfde beslissingen nemen waardoor ze voorspelbaar worden.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17-08 23:56

Janoz

Moderator Devschuur®

!litemod

Op Wednesday 14 March 2001 10:35 schreef joepP het volgende:
Met graven & kortste route-algoritmen werken is ontzettend leerzaam en interessent, maar voor pacman-spookjes niet zo belangrijk. Laten we de volgende eisen stellen aan het algoritme voor het lopen van spookjes:

1) De spookjes moeten niet allemaal hetzelfde doen, en dus achter elkaar aan gaan lopen
2) De spookjes mogen niet 'voorspelbaar' zijn

Beide punten zijn ZEER lastig te verwezenlijken met te intelligente spookjes (korte-route-algoritmen dus). De spookjes zullen steeds dezelfde beslissingen nemen en uiteindelijk precies over elkaar heen gaan lopen.. Ook krijgen ze nogal de neiging achter pacman aan te hobbelen in plaats van hem in te sluiten/te verrassen.

Indien je mijn eenvoudige algoritmetje gebruikt krijgen ze een eigen identiteit, zijn ze onvoorspelbaar, lopen niet over elkaar heen en het leukste: ze lijken nog intelligent ook. Soms is eenvoud zo slecht nog niet:)

Heb je zelf wel eens een pacman gemaakt eigenlijk, ik wel namelijk..
Wat ik probeer te zeggen is dat jouw algoritme nog niet voledig is. Bedenk wel dat in een doolhof de kortste afstand niet gelijk is aan de kortste afstand. Een spookje van jouw zal rustig een doodlopend stuk inlopen dat parralel loopt aan de gang waar pacman zich in bevind.

Ook met kortste pad algoritmen kun je inteligentie varieren. Zo kan een spookje de kortste route naar de huidige positie van pacman nemen, maar ook de kortste route kiezen die naar het eerste knoopunt(kruising) gaat waar pacman heen loopt.

Ikzelf heb nog geen Pacman gemaakt, maar ben wel geinspireerd door dit topic, en ben op dit moment bezig mijn algoritme te implementeren in flash actionscript. Het duurt waarschijnlijk nog wel ff omdat ik het de komende weken nogal druk heb. Maar zodra ik hem af heb post ik hem wel ff in dit topic.. We kunnen d'r natuurlijk ook een 'wedstrijdje' van maken :).. Implementeer jij 1 en ik 1 en vergelijken we die...

[edit]
Trouwens.. Wat een spookje doet is afhankelijk van de positie van pacman en van het spookje zelf. Als je ervoor zorgt dat:
1 de spookjes niet over elkaar heen kunnen
2 de spookjes omstebeurten uit hun holletje komen
Zullens ze wel een beetje uit elkaar gaan lopen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op Wednesday 14 March 2001 12:41 schreef Janoz het volgende:
Een spookje van jouw zal rustig een doodlopend stuk inlopen dat parralel loopt aan de gang waar pacman zich in bevind.
Ooit pacman gespeeld ? (een echte ?)

Ben nog nooit een doodlopende gang tegengekomen. ( In een echte pacman spel :+ )

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17-08 23:56

Janoz

Moderator Devschuur®

!litemod

Op Wednesday 14 March 2001 12:58 schreef dusty het volgende:

[..]

Ooit pacman gespeeld ? (een echte ?)

Ben nog nooit een doodlopende gang tegengekomen. ( In een echte pacman spel :+ )
't is idd erg lang geleden...

Maar het hoeft eventueel geen doodlopende gang te zijn... Het spookje zal met jouw algoritme gewoon de eerste afslag nemen terwijl die helemaal niet naar pacman hoeft te leiden.. Terwijl die in sommige gevallen juist een omweg zal moeten maken om sneller bij de speler te komen..

[edit]Ik bedoel JoepP's algoritme :)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op Wednesday 14 March 2001 13:07 schreef Janoz het volgende:
Maar het hoeft eventueel geen doodlopende gang te zijn... Het spookje zal met jouw algoritme gewoon de eerste afslag nemen terwijl die helemaal niet naar pacman hoeft te leiden.. Terwijl die in sommige gevallen juist een omweg zal moeten maken om sneller bij de speler te komen..

[edit]Ik bedoel JoepP's algoritme :)
Daarom is het ook altijd zo'n simpel speelveld geweest :+

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Verwijderd

Topicstarter
mensen ik had pacman als voorbeeld mijn werkelijke plannen zijn vele malen sniekier

  • tomato
  • Registratie: November 1999
  • Niet online
Op Wednesday 14 March 2001 13:38 schreef Zoepnek het volgende:
mensen ik had pacman als voorbeeld mijn werkelijke plannen zijn vele malen sniekier
*LOL* :D

Wat moeten we daar weer van verwachten :? ;)

  • joepP
  • Registratie: Juni 1999
  • Niet online
Ik zou zeggen: ga eerst maar eens je pacman afmaken, dan zal je zien wat het fijnst werkt. Ik heb beide geprobeerd en ben zelf tot de conclusie gekomen dat simpele spookjes beter werken. En ook leuker zijn!

Uiteraard maken ze wel eens foute beslissingen, maar dat maakt het juist onvoorspelbaarder & leuker.. En aangezien pacmanlevels nogal een hoge graad van verbondenheid hebben maakt het niet eens zoveel uit.

Maar back on-topic: begin maar met een eenvoudig spelletje te maken, het is al moeilijk genoeg! Tetris of pacman zijn *-) genoeg!

Verwijderd

Ha een pacman topic! :)

Even voor de originele vraagsteller: Het idee dat Jamal (en eventuele anderen) hierboven uitlegde is zeker aan te raden als je pacman-achtige spelletjes gaat maken.

Ik doel op het idee met de tweedimensionale array, waarin je je veld opslaat. Je kunt die array namelijk gebruiken als referentie op het moment dat je het speelveld tekent, en op het moment dat een spelobject (pacman, spookje, kersje, banaantje...) moet kijken of ie niet tegen een muur aanloopt.

Ook wordt het op die manier handiger om extra levels te maken, je kunt dat immers gewoon met een tekst editor doen.

Over de spookjes: ik ben ook bezig met een pacman-kloon, en was van plan om de spookjes toch met een soort 'kortste pad' algoritmetje te laten zoeken naar pacman.
De hoofdregel die de spoken volgen is de simpele 'seek en destroy' regel:

if (mijnpositieX < zijnpositieX)
{
mijnpositieX++;
}
else
{
mijnpositieX--;
}

Hetzelfde voor de Y-as. Dat gaat lang goed, totdat het spook op dezelfde X positie als pacman staat, maar er een muur tussen hun inzit. Dan houdt ie nog maar een regel over; "maak je Y positie ook gelijk aan die van pacman". En aangezien er een muur in de weg staat blijft spooklief besluiteloos stilstaan.

Ik (als kunstmatige intelligentie leek ;)) ben maar eens gaan bekijken wat een mens in zo'n geval doet. Die kijkt langs de muur totdat ie een doorgang vindt in de richting van zijn doel, gaat naar die doorgang en neemt dan zijn 'oude' doel weer in z'n hoofd.
Het spookje in deze (supercrappy) demo doet ongeveer hetzelfde (mits hij wordt geholpen van buitenaf :)). Hij kijkt met een while-lusje langs de muur, tot ie een doorgang vindt. Dan stelt hij die doorgang tijdelijk in als tussendoel, gaat daar heen, en zodra het tussendoel bereikt is neemt hij pacman weer als doel.

(overigens moet je in de demo zelf instellen of het doel van het spook pacman, of het tussendoel is. Dat moet ie natuurlijk zelf doen, maar voor een AI demo vond ik dit wel geinig)

Oh ja, voor het demootje is DirectX 6 nodig...

edit:

Trouwens met JoepP ben ik het volledig eens:

<kwoot>
Met graven & kortste route-algoritmen werken is ontzettend leerzaam en interessent, maar voor pacman-spookjes niet zo belangrijk.
</kwoot>

De door mij gebruikte methode is dus zeker niet de beste voor pacman, ik vond het vooral leuk om eens te spelen met objectjes die hun weg door een doolhof moeten vinden...



Verwijderd

Waarschuwinkje voor Jamal: Volgens McAffee zit er een virus in de SUPERPAC demo, pac.exe. (hoe het heet zegt ie d'r niet bij)

Als je hem wilt proberen is zelf de source ff compilen mischien een betere optie.

Verwijderd

Topicstarter
een eenvoudig spel heb ik al : Zoepah tennis
pong maar dan anders(<---- Lees Zieker). ik zal m morgen op school effe uploaden en dan post ik de url wel

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op Wednesday 14 March 2001 15:08 schreef Atari_Junkie het volgende:
Hetzelfde voor de Y-as. Dat gaat lang goed, totdat het spook op dezelfde X positie als pacman staat, maar er een muur tussen hun inzit. Dan houdt ie nog maar een regel over; "maak je Y positie ook gelijk aan die van pacman". En aangezien er een muur in de weg staat blijft spooklief besluiteloos stilstaan.
Dan ben je een simpel ding vergeten.

Je spook komt uit EEN richting.

Je kan niet dichter bij zijn x komen dus dat is 1 mogelijkheid uitgesloten.

Je kan niet dichter bij zijn y komen dus dat is de 2e mogelijkheid uitgesloten.

Aangezien de spook niet opeens de andere kant uit mag gaan is dat de 3e mogelijkheid uitgesloten.

Hey.. betekent dat niet dat er nog maar 1 weg is om heen te gaan ? :P

Life can be more simple than you think sometimes. (en sneller ook >:))

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

ik heb in Java ooit een soort kortste pad algoritme geschreven 62.250.6.6/showtopic.php/111750

En dat werkte op basis van een 2-dimensionale array. Dus eigenlijk perfect voor een pacman kloon.

Verder is het zo dat in een echte pac-man de spookjes allemaal verschillend gedrag hebben. En dat is iets ingewikkelder te programmeren dan zomaar een korste pad algoritme.

Maar succes in ieder geval(waar kan in het best op zoek gaan naar info over kortste pad algoritmes met voorbeelden in Java?)

Verwijderd

Op Wednesday 14 March 2001 18:24 schreef dusty het volgende:

[..]

Dan ben je een simpel ding vergeten.

Je spook komt uit EEN richting.

Je kan niet dichter bij zijn x komen dus dat is 1 mogelijkheid uitgesloten.

Je kan niet dichter bij zijn y komen dus dat is de 2e mogelijkheid uitgesloten.

Aangezien de spook niet opeens de andere kant uit mag gaan is dat de 3e mogelijkheid uitgesloten.

Hey.. betekent dat niet dat er nog maar 1 weg is om heen te gaan ? :P

Life can be more simple than you think sometimes. (en sneller ook >:))
Dat is wel een mooie samenvatting! Zo had ik er nog niet tegenaan gekeken.

Thanx, zoiets ga ik er ook eens inzetten...

  • SilentStorm
  • Registratie: November 2000
  • Laatst online: 18-03 14:45

SilentStorm

z.o.z

En let er daarbij ook even op: je spookje zit heel snel vast in het middelste hokje. Als pac niet naar de bovenkant van de map gaat kan hij er zelfs met je 'n' knop niet meer uitkomen (groter bereik maken)?

En spoken pakken na zo'n powerup geval kun je met een timer doen. =>
code:
1
2
3
4
5
if(pac spookje aanraakt) then
 if timer <> 0 then
   spookje is dood
 else
   pac is dood

Localhost is where the heart is


Verwijderd

Topicstarter
Bedankt voor jullie honderden manieren om de spookjes te laten lopen.
Maar de topic titel is MUREN |:(

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op Thursday 15 March 2001 07:28 schreef Zoepnek het volgende:
Bedankt voor jullie honderden manieren om de spookjes te laten lopen.
Maar de topic titel is MUREN |:(
*lol* geen probleem.

De "beste" methode in mijn mening is dus een dubbele array op te slaan van waarden die aangeeft welke "tekening" afgedrukt moet worden. afhankelijk daarvan weet je ook of er op gelopen mag worden of niet. Betekent ook dat een "nieuwe map" maken een stuk makkelijker wordt. (hoef je maar een keer te doen. immers zodra je je map gemaakt hebt is het meteen al duidelijk of er op gelopen mag worden of niet :P

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11-2025

Korben

() => {};

Heej Atari_Junkie ik wil niet negatief zijn of zo, maar die demo van jou is echt zupercrappy :r Als je op een toets drukt crasht ie :?

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


Verwijderd

Topicstarter
Hier is mijn 1e spel dan (niet dat waar ik de muren voor nodig had reacties graag :9~
http://www.angelfire.com/rpg/mlf/Zt.html

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17-08 23:56

Janoz

Moderator Devschuur®

!litemod

Op Thursday 15 March 2001 10:45 schreef Zoepnek het volgende:
Hier is mijn 1e spel dan (niet dat waar ik de muren voor nodig had reacties graag :9~
http://www.angelfire.com/rpg/mlf/Zt.html
Angelfire does not allow direct linking
from offsite, non-Angelfire pages,
to files hosted on Angelfire.

This practice of 'remote linking' reduces
our ability to serve out the homepages
of our members quickly and efficiently.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • heuveltje
  • Registratie: Februari 2000
  • Laatst online: 21-08 22:37

heuveltje

KoelkastFilosoof

misschien niet de "mooiste manier.
maar maak pacman geel, eten groen ,spookjes blauw, en muren bruin

kijk gewoon welke kleur er staat op het coordinaat waar je naar toe wil.

e presto :)

Heuveltjes CPU geschiedenis door de jaren heen : AMD 486dx4 100, Cyrix PR166+, Intel P233MMX, Intel Celeron 366Mhz, AMD K6-450, AMD duron 600, AMD Thunderbird 1200mhz, AMD Athlon 64 x2 5600, AMD Phenom X3 720, Intel i5 4460, AMD Ryzen 5 3600 5800x3d


Verwijderd

Topicstarter
http://www.angelfire.com/rpg/mlf/zt.html

HET WERKTTTTTT EINDELIJK (poep angelfire)

  • SilentStorm
  • Registratie: November 2000
  • Laatst online: 18-03 14:45

SilentStorm

z.o.z

Die is leuk.. loopt soepel (maar mis keyboard besturing :)). Misschien voor de volgende versie, maak verschillende levels->verschillende bal snelheden. En voor het plankje-> hoek van terugval is hoek van terugkaatsing. Je hebt geprobeert om als je de zijkant van het plankje raakt, de bal schuin te laten gaan. Probeer dat eens met eens zo:

Midden van plankje is voor programma 0. De hoek die voor het balletje moet veranderen verander je met de afstand -/+ van het midden van het plankje. Moet je zelf een beetje uitzoeken wat het efficientste is. Hierbij moet je dan ergens de waarde voor het middengedeelte (als het plankje 100 pixels is, dus van -50 tot +50 dan is -40 tot +40 niet van toepassing voor dat trucje.
code:
1
2
3
4
5
6
7
8
9
If (bal.locatie > balkje.locatie+40) OR (bal.locatie < balkje.locatie-40) Then
  begin
  bal.richtingX:=bal.richtingX + (bal.locatie-balkje.locatie) * [bepaalde waarde waarvan je zelf even moet uitvinden wat het lekkerste werkt]
  end
Else
  begin
  bal.snelheidX:=bal.richtingX * -1;
  bal.snelheidY:=bal.richtingY * -1;
  end;

Ik ben hierbij er vanuitgegaan dat je de bal en het balkje een klasse hebt gemaakt met deze waarden. Als dat niet zo is moet je het zelf even aanpassen aan je programma. De snelheid van het balletje zou ook bij bepaalde bewegingen sneller of langzamer moeten worden + een random factor.

Ik hoop dat je daar wat aan hebt..

Localhost is where the heart is


Verwijderd

Op Thursday 15 March 2001 09:05 schreef Xenophage het volgende:
Heej Atari_Junkie ik wil niet negatief zijn of zo, maar die demo van jou is echt zupercrappy :r Als je op een toets drukt crasht ie :?
Haha, ik had je gewaarschuwd! ;)

Nee even serieus, die error kende ik nog niet, hij doet het verder op de meeste win95/98 bakken best goed... Alleen alt/tabben gaat mis dat wist ik wel. Dat is namelijk een beetje irri met DirectDraw...

Ik denk haast dat er iets mis is met DirectSound, zodra je pacman beweegd hoor je namelijk het geluid dat ie een puntje opeet. D'r wordt bijna niet ge-errorcheckt, dus als er iets mis is crasht ie vrolijk....

Oh ja Zoepnek als echte pong junk wou ik je feliciteren met Zoepah Tennis, hij is goed. (vooral het icoontje :))

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17-08 23:56

Janoz

Moderator Devschuur®

!litemod

Op Thursday 15 March 2001 11:13 schreef Zoepnek het volgende:
http://www.angelfire.com/rpg/mlf/zt.html

HET WERKTTTTTT EINDELIJK (poep angelfire)
Als ik jouw was zou ik naast die vorige opmerking ook ff kijken naar hoe de ballen tegen de muur stuiteren (kwam een beetje onnatuurlijk over) en naar de besturing.. Als ik een beetje snel naar bv links bewoog, dan ging mijn balkje niet helemaal tegen de zijkant aan. Mischien is het handiger om de muis_x 'vast' te maken aan het midden van het plankje ipv aan de linker kant..

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • IWriteCode
  • Registratie: Juli 2000
  • Laatst online: 09-07 11:51

IWriteCode

Less = more

Op Wednesday 14 March 2001 15:33 schreef Atari_Junkie het volgende:
Waarschuwinkje voor Jamal: Volgens McAffee zit er een virus in de SUPERPAC demo, pac.exe. (hoe het heet zegt ie d'r niet bij)

Als je hem wilt proberen is zelf de source ff compilen mischien een betere optie.
Crap.. Norton Antivirus vind niks. Is dat het win95.CIH virus of zo iets? Daar hebben we op het werk last van gehad, maar dat zou verholpen moeten zijn.

Less = more


Verwijderd

Topicstarter
Jamal kun jij me uitleggen waarom mijn muren niet aan elkaar zitten. er zit tussen ieder plaatje een ruimte van ongeveer 1 mm ???

edit:
Ik zie t al mijn schermresolutie is anders dus moest ik de grootte van de plaatjes veranderen

  • IWriteCode
  • Registratie: Juli 2000
  • Laatst online: 09-07 11:51

IWriteCode

Less = more

Mijn superspel is af!
Check: ZIPPY

- Je kan zelf maps maken 8-)
- Spoken zijn niet bijster intelligent :'(
- Power-ups zijn er wel.. maar doen niets |:(
- Code is behoorlijk ranzig, zit er wel bij, succes met de brei

Maar.. het werkt wel!
edit:

Opstarten met:
[code]SUPERPAC <mapname>[/code]
voor eigen map :)

Less = more


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17-08 23:56

Janoz

Moderator Devschuur®

!litemod

Op Thursday 15 March 2001 22:37 schreef Jamal het volgende:
Mijn superspel is af!
Ziet er goed uit,

[opbouwende kritiek mode]
alleen jammer dat alles met van die grote stappen beweegt. Dat komt natuurlijk door de 'bitmap' die gebruikt wordt :).. IMHO zou het mooier zijn als alle figuren wat vloeiender bewogen..

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op Thursday 15 March 2001 23:12 schreef Janoz het volgende:
[opbouwende kritiek mode]
alleen jammer dat alles met van die grote stappen beweegt. Dat komt natuurlijk door de 'bitmap' die gebruikt wordt :).. IMHO zou het mooier zijn als alle figuren wat vloeiender bewogen..
Misschien een leuk project voor iemand die niets te doen heeft. Maak een pac man die op vectors gebasseerd is.
Kan je namelijk ontzettend grappige dingen gaan toevoegen.. (roterend speelveld *lol*) de spookjes hoeven dan absoluut niet intelligent te zijn. Het is al moeilijk zat dan :P

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • IWriteCode
  • Registratie: Juli 2000
  • Laatst online: 09-07 11:51

IWriteCode

Less = more

Op Thursday 15 March 2001 23:12 schreef Janoz het volgende:
alleen jammer dat alles met van die grote stappen beweegt. Dat komt natuurlijk door de 'bitmap' die gebruikt wordt :).. IMHO zou het mooier zijn als alle figuren wat vloeiender bewogen..
True.. true..
Das allemaal wel te maken, maar ik wilde alleen ff een werkende versie maken en ik heb niet zoveel zin om er nog een x aantal uur in te gaan stoppen.

Less = more

Pagina: 1