[GameProgging] Hoe laat je een poppetje springen

Pagina: 1
Acties:

  • Parcye
  • Registratie: Maart 2001
  • Laatst online: 24-08-2017
Mensen,

Ben beetje aan het rommelen met DelphiX, en heb nu een beetje platform game enging gebouwd... is eigenlijk crap kan lopen en een plattegrond laden...

Maar ik wil nu zorgen dati k kan springen, dus bij de UP knop in mijn geval dat het poppetje om hoog sprint, nu kan dit heel simpel met Y := Y - 64 bijvb... maar dat is niet wat je mooi noemt, ik wil dus springen en landen in meerdere stappen...

Mijn vraag : hoe hebben jullie dit opgelost

op het moment heb ik :
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    if JumpHeight > 0 then
    if JumpTo < Y then
      Y := Y - 1
    else
    begin
      Y := Y + JumpHeight;
      JumpHeight := 0;
    end;
 ....code cut...
    VK_UP: begin
      if JumpHeight = 0 then
      begin
        JumpHeight := 64;
        JumpTo := Round(Y) - JumpHeight;
      end;
    end;

"Als je het kan bedenken, kan het gemaakt worden" Parcye - 14 januari 2002


Verwijderd

gewoon formule voor parabool gebruiken toch? :?

Verwijderd

Laat het object (in dit geval poppetje) een x (horizontale) en y (verticale) waarde hebben en gebruik deze vervolgens om de sprong te bereken. Bijv: x gelijk houden en y kwadratisch laten toenemen (en ook weer afnemen dus ;) ). Dit zorgt ervoor dat als je poppetje bijvoorbeeld harder gaat lopen (x groter) de sprong ook in evenwicht is met die loopsnelheid.

/me moet naar bed :S

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

Hou voor je objecten 2 dingen bij: z'n positie en z'n bewegingsvector (delta x en delta y per frame zeg maar)

Zwaartekracht werkt door elke frame een bepaalde hoeveelheid van de vectoren van de objecten op te tellen. De waarde die je erbij optelt is simpelweg de vector van de valversnelling per frame, bijvoorbeeld (0, -1)

Een sprongetje maken doe je dan door gewoon 'm een verticale snelheid te geven. De rest gaat vanzelf

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.