Elasticher Ball

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Chester

Betreff: Elasticher Ball

BeitragDi, Sep 21, 2004 17:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi@all
Ich hätte gerne dass ein elasticher Ball(ball_anim), wenn er auf eine Stufe(bg2) kommt dann wieder zurückspringt.

Code: [AUSKLAPPEN]

Const e_kraft# = 0.09 ;erdanziehungskraft
ball\speed = 5
hupsen = ImagesCollide(ball_anim, ball\x_kor, ball\y_kor, 0, bg2,0+viewx, 480+viewy,0)



If ball\speed > 0 Then hups_richtung = 1 ;nach oben

If ball\speed = 0 Then hups_richtung = 0 ;nach unten

If hups_richtung = 0 And hupsen = 1 Then
ball\speed = 5
hups_richtung = 1
EndIf


If hups_richtung = 0 Then
ball\speed = ball\speed - e_kraft
ball\y_kor = ball\y_kor + ball\speed
EndIf

If hups_richtung = 1 Then
ball\speed = ball\speed - e_kraft
ball\y_kor = ball\y_kor - ball\speed
EndIf



Das Problem ist: Er erkennt zwar die Kollision, aber tuen tut sich nichts:
Der Ball fliegt nach oben, wird langsamer, kommt zurück und fällt durch die Stufe.Währe euch sehr dankbar wenn ihr mir helfen könntet.
Ist für mein zweites Projekt(SkyWalk)(ein Icy-Tower-Clon).


Da ich mit 12 Jahren noch kein Mathe Genie bin, bitte ich um Hilfe.

Chester

BeitragDi, Sep 21, 2004 18:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Problem gelöst Thx für die Hilfe

Bms

BeitragDi, Sep 21, 2004 18:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm. ich hab das mal hier mit Sin() gemacht (und ohne type):

Code: [AUSKLAPPEN]

Graphics 640,480,16,2

;Ball machen
ball=CreateImage(50,50)
SetBuffer ImageBuffer(ball)
Color 0,0,255
Oval 0,0,50,50

SetBuffer BackBuffer()

ballx=275
bally#=200


Repeat



 Cls

 ;Fläche wo der ball abprallt
 Color 255,0,0
 Rect 250,400,100,50
 
 ;Kollisionsabfrage
 If ImageRectCollide(ball,ballx,bally#,0,250,400,100,50)Then spring=180

 ;Ball bewegen
 spring=spring+4
 bally#=bally#+Sin#(spring)*8

 ;Ball malen und flip
 DrawImage ball,ballx,bally

 Flip



Until KeyDown(1)


leider ist noch etwas unrealistisch(vor allem beim ersten abprallen).

<edit>
mist war zu laaaaaaam
Reblonce (Jump + Run + Shoot - Game; 20 Levels): Download

Chester

BeitragMi, Sep 22, 2004 16:36
Antworten mit Zitat
Benutzer-Profile anzeigen
wenigstens einer
 

getlose

BeitragMi, Sep 22, 2004 17:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Forumsuche ! Confused

Egon Dragon

BeitragFr, Sep 24, 2004 13:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Das geht auch so:
Code: [AUSKLAPPEN]

Graphics 800,600,16,1
SetBuffer BackBuffer()


Global sx#;<--Speed X
Global sy#;<--Speed Y

Global x=400-10;<--X Position
Global y=0;<--Y Position

;-->Hauptschleife<--
While Not KeyDown(1)

   ;-->Schwerkraft<--
   sy#=sy#+0.1

   ;-->Bewegung<--
   y=y+sy#

   ;-->Boden Abprall<--
   If y>600-20
   sy#=(sy#*-1)*0.8;<--Bei jedem Aufschlag langsamer werden
   EndIf

   ;-->Der Ball<--
   Cls
   Oval x,y,20,20
   Flip

Wend
End


Lass das Programm laufen, und bei dir springt ein Ball nach allen gesetzen der Schwerkraft auf dem Bildschirm.
 

Sibitiger

BeitragFr, Okt 29, 2004 21:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier ist noch ein Beispiel:

Code: [AUSKLAPPEN]

Graphics 800,600,24,2

AutoMidHandle 1

Global ek#=1, sk# ;ek=Erdanziehungskraft---sk=Sprungkraft
Global ball=CreateImage(40,40)
Global x#,y#,gesprungen,esc
x=400
y=545
esc=1

SetBuffer ImageBuffer(ball)

Oval 0,0,40,40,1

SetBuffer BackBuffer()

Repeat

Cls

Rect 350,560,100,20,1

If Not gesprungen=1 Then gesprungen=1:sk=20

If Not sk=-10 Then sk=sk-1

y=y-sk

If y>540 Then gesprungen=0:y=540

DrawImage ball,x,y

Flip

Until KeyHit(esc) End


Sibi

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group