Forum: Ballistik

Forum huvudsida -> Programmering -> Ballistik

Sidor: 1

Till botten

the_avatar 18:12 - 2:a Januari 2006 | Post #1
Medlem
Inlägg: 2


Skicka PM
,,r det någon som har något bra kodsnutt för t ex att man ska skjuta en kanon kula i ett 2d spel.

jag programmerar c++ men kan läsa de mesta så pasta va ni har.

Jag ska ha en vattenslang som man kan höja o sänka vinkeln på så ska de dala snyggt i en båge.

men de är väl bara jätte många kanonkuler i rad kan jag tänka mig.
använder sdl

-------------------------
Ingen signatur!



ozamosi 18:18 - 2:a Januari 2006 | Post #2
Administratör
Inlägg: 1129


Skicka PM
Tja... I princip är det bara vanlig sinus. Låt någon form av loop sträcka sig från 0 till pi, ta sinus av det värdet, och multiplicera resultatet med amplituden.

-------------------------
Ljusblå



FunkyChicken 19:30 - 2:a Januari 2006 | Post #3
Nyhetsredaktör
Inlägg: 800


Skicka PM
Enkla fysikaliska lagar... kalkylera mha trigonometri hastighetsvektorns komposanter (hastighet för en tänkt droppe i x- och y-led beroende på utgångsvinkel och fart - säg till om du behöver hjälp). Accelerationen i y-led är sedan -9,82 m/s/s (välj lämpligt värde för pixlar per tidsenehet) och accelerationen i x-led försumbar om du inte räknar med luftmotstånd. Så brukar jag göra när folk hoppar i mina plattformsspel =)




Celeron 20:04 - 2:a Januari 2006 | Post #4
Medlem
Inlägg: 418


Skicka PM
Varför ska alla göra allt så avancerat? Jag fattar inget av sinus och cosinus (fast jag skulle behöva pga 3D). Gör en variabel som heter yspeed och sätt den till t ex 10. Sedan för varje "turn" så drar du ifrån yspeed från y (som håller koll på y positionen) och samtidigt aderar du t ex 0.2 till yspeed (du får testa dig fram). Då har du gravitationen där!

-------------------------
Det viktigaste är att ha roligt! Har ny hemsida: http://www.freewebs.com/cpperik/



FunkyChicken 00:32 - 3:e Januari 2006 | Post #5
Nyhetsredaktör
Inlägg: 800


Skicka PM
nja, gravitation blir det ju inte... men om du byter ut 0.2 mot en variabel och istället ökar den varje gång kommer du närmare sanningen (och min metod Smiley)




the_avatar 09:03 - 3:e Januari 2006 | Post #6
Medlem
Inlägg: 2


Skicka PM
jag har fått lite info nu när jag surfat runt nätet. men de flesta utgår från den vetenskapliga uppfattningen att 0 är i origo o y ökar uppåt. Vilket inte pixlarna gör. Sen får jag ganska raka skott rakt upp åt piiip efter som de flesta formler är gjorde för meter o sekunder. Lite kodsnuttar hade alltid uppskattats

-------------------------
Ingen signatur!



Celeron 09:29 - 3:e Januari 2006 | Post #7
Medlem
Inlägg: 418


Skicka PM
    Citat av FunkyChicken:
nja, gravitation blir det ju inte... men om du byter ut 0.2 mot en variabel och istället ökar den varje gång kommer du närmare sanningen (och min metod Smiley)


Ja just det. Men då blir det gravitation iaf!

EDIT: Eller, varför? yspeed ökar ju hela tiden och man drar bort yspeed från y.

-------------------------
Det viktigaste är att ha roligt! Har ny hemsida: http://www.freewebs.com/cpperik/

Senast redigerad 09:32 - 3:e Januari 2006


Independence 17:10 - 3:e Januari 2006 | Post #8
Administratör
Inlägg: 1800


Skicka PM
    Citat av the_avatar:
jag har fått lite info nu när jag surfat runt nätet. men de flesta utgår från den vetenskapliga uppfattningen att 0 är i origo o y ökar uppåt. Vilket inte pixlarna gör. Sen får jag ganska raka skott rakt upp åt piiip efter som de flesta formler är gjorde för meter o sekunder. Lite kodsnuttar hade alltid uppskattats


Om de går väldigt rakt så öka värdena på gravidationen, du har säkert en bra funktion, men bara lite felaktiga värden. Du får testa dig fram till något som passar eftersom en dator inte använder sig utav meter och sådant när den mäter saker på bildskärmen, öka 9,82 eller vad du har för accelerationsvärde till något högre tills du får en bana som ser verklig ut.

-------------------------

Vi är riddarna som säger fiskbulle!





Sidor: 1

Forum huvudsida -> Programmering -> Ballistik
Atom feed

Du får inte posta i den här tråden | Till toppen