Elasticher Ball
Übersicht

![]() |
ChesterBetreff: Elasticher Ball |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Problem gelöst Thx für die Hilfe | ||
![]() |
Bms |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenigstens einer | ||
getlose |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Forumsuche ! ![]() |
||
![]() |
Egon Dragon |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group