fallende Gegenstände (gelöst)
Übersicht

![]() |
Abenteurer036Betreff: fallende Gegenstände (gelöst) |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
ich programmiere gerade an einem Spiel wo von oben Früchte fallen sollen die man dan unten anhand einer Kiste aufsammeln kann. Leider weis ich nicht wie man etwas von oben runterfallen lasses kann! Kann mir da vielleicht jemand helfen? Ich danke schonmal im vorraus ![]() |
||
New Project [4%]
Schinken Maker [100%] |
- Zuletzt bearbeitet von Abenteurer036 am Mo, Sep 21, 2009 11:31, insgesamt einmal bearbeitet
![]() |
tedy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du gibst den Früchten eine Variable Y Position die du z.b bei jedem schleifendurchlauf um 1 erhöhst... So "fällt" das obst ![]() |
||
![]() |
Abenteurer036Betreff: Frage |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke für die Beschreibung, aber da ich noch nicht so erfahren in dem Progamm bin konnte ich damit noch nicht so viel anfangen. Vieleicht kannst du oder jemand Anders einen Script mit einem kleinen Beispiel phosten? | ||
New Project [4%]
Schinken Maker [100%] |
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallöchen,
ich würde die Früchte mit sogenannten Types machen! Ein Type ist eine Vorgabe für ein Objekt. Als Beispiel: Ein Löwe. Jetzt gibt es aber mehr als ein Löwe auf der Welt, also benutzen wir "Löwe" als Vorgabe für eine Art von Tier. In BlitzBasic würde soetwas z.B. so aussehen: Code: [AUSKLAPPEN] Type loewe Field groesse# Field hunger% Field blablubb$ End Type Ein Field ist eine Angabe zu Löwe, also eben z.B. die Grösse. Jetzt wissen wir was ein Löwe alles braucht um ein Löwe zu sein, aber wir haben immernoch keine Löwen! Also erstellen wir neue Löwen. Code: [AUSKLAPPEN] l.loewe = New loewe l\groesse = 0.5 l\hunger = True l\blablubb$ = "I like cheeseburgers!" l2.loewe = New loewe l2\groesse = 0.9 l2\hunger = False l2\blablubb$ = "I'd like a beer. kthnxbai" Dieser Code erstellt zwei Löwen (l und l2) welche mit Angaben gefüllt werden. Beachte: Der zweite Löwe kann auch genau wie der erste heissen. Jetzt wollen wir alle Löwen durchgehen, um irgendwas tolles mit ihnen zu machen. Code: [AUSKLAPPEN] For l.loewe = Each loewe ;Geht alle Löwen durch. Der gerade aktuelle Löwe wird mit 'l' angesprochen l\groesse# = l\groesse# + 0.1 ;Wir lassen mal alle Löwen wachsen l\hunger = Not l\hunger ;Heisst soviel wie: Wenn Hungrig, dann nicht mehr hungrig, wenn nicht hungrig, dann hungrig! l\blablubb$ = "Yay, ich wurde verändert. :>" Next Wenn du jetzt aufmerksam warst, und etwas Eigeninitiative zeigst, wirst du sicherlich an dein Ziel kommen. MfG Nici ;> |
||
![]() |
Abenteurer036 |
![]() Antworten mit Zitat ![]() |
---|---|---|
OK Danke ich werds versuchen ![]() |
||
New Project [4%]
Schinken Maker [100%] |
![]() |
Abenteurer036 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es funktioniert immer noch nicht ![]() Ich hab hier mal den Code den ich benutzt hab: Code: [AUSKLAPPEN] AppTitle "Fruit Attack" Graphics 640,480 SeedRnd MilliSecs() SetBuffer BackBuffer() Const BPfad$ = "....." Const SPfad$ = "....." Global HGrund = LoadImage (BPfad$ + "HGrund Wasser.bmp") Global Kiste = LoadAnimImage (BPfad$ + "Kiste.bmp", 100,40, 0,2) Global F01 = LoadImage (BPfad$ + "Fruit01.bmp") MaskImage Kiste, 255,255,255 MaskImage F01, 255,255,255 x = 230 y = 422 Esc = 1 links = 203 rechts = 205 ; ----------------------------- l.loewe = New loewe l\groesse = 0.5 l\hunger = True l\blablubb$ = "I like cheeseburgers!" l2.loewe = New loewe l2\groesse = 0.9 l2\hunger = False l2\blablubb$ = "I'd like a beer. kthnxbai" ; ----------------------------- Type Frucht Field groesse# Field hunger% Field blablubb$ End Type ; und hier die Repeat schleife Repeat For l.loewe = Each loewe l\groesse# = l\groesse# + 0.1 l\hunger = Not l\hunger l\blablubb$ = "Yay, ich wurde verändert. :>" Next If KeyDown(rechts) Then If x < 440 Then x = x + 20 If Nr = 0 Then Nr = 1 Else Nr = 0 ElseIf KeyDown(links) Then If x > 20 Then x = x - 20 If Nr = 0 Then Nr = 1 Else Nr = 0 Else Nr = 0 EndIf Cls DrawImage HGrund, 0,0 DrawImage Kiste, x,y, Nr Delay 100 Flip Until KeyDown(Esc) Kann mir vielleicht einer sagen was ich falsch gemacht habe? Ich danke schonmla im vorraus^^ |
||
New Project [4%]
Schinken Maker [100%] |
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich blick da ned ganz durch darum hab ich mal n kleines Sample dazu geschrieben
Den Rest wirst du schon hinkriegen ![]() Code: [AUSKLAPPEN] Graphics 800,600,32,2
SetBuffer BackBuffer() AppTitle ("Fruit Attack","Wollen sie die Früchte verfaulen lassen ? >:O") Type fruit Field x Field y End Type Color 100,255,100 While Not KeyHit(1) Cls If KeyHit(57) ;Wenn Leertaste f.fruit=New fruit ;Frucht erstellen f\x=Rnd(1,800) f\y=0 EndIf For f.fruit=Each fruit ;Jede Frucht abfragen f\y=f\y+2 ;Frucht "fallen" lassen Rect f\x,f\y,20,20,2 ; Frucht zeichnen If f\y>600 Then Delete f.fruit ;Wenn die Frucht nicht mehr sichtbar ist löschen Next Flip 60 Wend End mfg |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Entschuldigung, aber du kopierst meinen Code in deinen rein und dnekst dir einfach mal das geht?
Verstehe den Code, ich habe dir nur gezeigt wie Types funktionieren. MfG |
||
![]() |
Abenteurer036 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja das ist ziemlich komplitziert!
Ich weis z.B. nicht wozu der Punkt bei l.loewe gut ist! Und da gibt es noch ein paar andere Sachen die ich nicht so ganz verstehe... |
||
New Project [4%]
Schinken Maker [100%] |
![]() |
Thorsten |
![]() Antworten mit Zitat ![]() |
---|---|---|
The_Nici : Mehr oder weniger deine Schuld. Man gibt Anfängern die nichtmal die Programmierlogik drin haben den Begriff "Types" in die Hand, dazu ein paar Codes.
Abenteuerer : Lies Tutorials, das BB-Buch o.Ä., nach Codes allerdings zu fragen wird dich nur so weit bringen wie die Anderen hier. .. mfG, Thorsten |
||
![]() |
Abenteurer036 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich besitze bereits ein BlitzBasic Buch: Programmieren für Kids
Aber darin steht leider nichts von Types ![]() Deshalb wollte ich mal hier im Forum nachschaun aber ich hab bis jetzt leider noch keine genaueren Beschreibungen gefunden! |
||
New Project [4%]
Schinken Maker [100%] |
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
https://www.blitzforum.de/foru...ight=types
![]() |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
GermannX |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Sonst machs halt wirklich auf die "uncoole" Tour. Für den Anfang reicht das wohl.
Z.B. so (is hässlich und dumm, aber so lernt mans meiner Meinung nach und umgeht Types): Zitat: Graphics 800,600,32,2
SetBuffer BackBuffer() AppTitle ("Test") Global Timer=CreateTimer(60) Global ApfelX[10] Global ApfelY[10] While KeyDown(1)=0 Cls If KeyHit(57) ;Wenn Leertaste For I=0 To 10 ;Alle Früchte durchtesten If ApfelY[I]=0 Then ;Prüfen welche Frucht noch frei ist ApfelX[I]=Rnd(1,800) ;Frucht erstellen ApfelY[I]=1 Exit EndIf Next EndIf For I=0 To 10 If ApfelY[I]>800 Then ApfelY[I]=0 ;Wenn der Apfel den Boden erreicht hat, kommt er wieder nach oben EndIf If ApfelY[I]>0 Then ApfelY[I]=ApfelY[I]+1 ;Apfel Fallen lassen Rect ApfelX[I],ApfelY[I],10,10 EndIf Next Flip 0 WaitTimer(Timer) Wend End So sind bis zu 10 Äpfel unterwegs, aber du kannst das ja beliebig hochschrauben. Ich denke der Code ist auch ohne großartige kommentierung selbsterklärend ![]() MfG |
||
...und der Tod warf seine Sense weg und stieg auf den Mähdrescher, denn es war Krieg! |
![]() |
Blitzprogger |
![]() Antworten mit Zitat ![]() |
---|---|---|
sonst versuche es mit dimfeldern
beispiel: Code: [AUSKLAPPEN] Graphics 800,600,16,2 SetBuffer BackBuffer() Dim fruitsx(10) Dim fruitsy(10) While Not KeyHit(1) Cls If KeyHit(57) Then fruitsx(zaehler) = Rand(0,800) fruitsy(zaehler) = 0 zaehler = zaehler + 1 If zaehler > 10 Then zaeler = 0 EndIf For i = 0 To 10 If fruitsx(i) > 0 Then Rect fruitsx(i),fruitsy(i),20,20,1 fruitsy(i) = fruitsy(i) + 2 If fruitsy(i) > 600 Then fruitsy(i) = 0 Next Flip Wend End hab den code jetzt nicht ausprobiert ob er geht ![]() wichtig ist, dass du auch versuchst ihn zu verstehen. edit: mist, zu spät ![]() mfg |
||
Mein aktuelles Projekt, Irnithal: http://www.blitzforum.de/worklogs/415/
Unfreiwilliger Gewinner des BAC# 115. ![]() |
![]() |
Abenteurer036 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke,
ich wede mal alle variablen ausprobieren und mir dann die besten Sachen rauspicken ![]() |
||
New Project [4%]
Schinken Maker [100%] |
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Abenteurer036 hat Folgendes geschrieben: Ich besitze bereits ein BlitzBasic Buch: Programmieren für Kids
Aber darin steht leider nichts von Types ![]() Meinst du das "Programmieren für Kids" von Hans-Georg Schuhmann? Da sind Types nämlich, sogar sehr gut, beschrieben. Ignoriere mich wenn du ein anderes "Programmieren für Kids" besitzt. |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
![]() |
Abenteurer036 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja ich weis jetzt alles soweit aber wie mache ich das dass anstatt eines Rechtecks oder Kreises ein Bild von der Frucht nach unten fällt ![]() |
||
New Project [4%]
Schinken Maker [100%] |
![]() |
tedy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Als erstes musst du das Bild laden
Code: [AUSKLAPPEN] apfel=Loadimage("apfel.bmp")
und dann an die stelle des Apfels malen Code: [AUSKLAPPEN] Drawimage(apfel,apfelxposition,apfelyposition)
|
||
01010100 01100101 01000100 01111001 00100000 00111010 01000100 |
![]() |
Abenteurer036Betreff: Tile problem |
![]() Antworten mit Zitat ![]() |
---|---|---|
So, hab mich mal hingesetzt und den Code überarbeitet leider hab ich da immer noch ein paar Problemchen. Die 2 Früchte die ich gezeichnet habe werden nicht in einzelne Tiles aufgeteilt sondern bleiben ganz. Wie krig ich die auseinander? Und wie kann ich nach dem drücken der Leertaste das Obst automatisch fallen lassen ![]() Danke schonmal im vorraus ![]() EDIT: Das mit den Tiles wurde soeben gelöst! ![]() Code: [AUSKLAPPEN] AppTitle "Fruit Pot"
Graphics 1024,768,16,2 SetBuffer BackBuffer() ;----------------------------------------------------------------------------------- ;Player laden... Global pot = LoadImage("img/player/pot.bmp") MaskImage pot, 255,255,255 Global potX = 300 ;Früchte laden... Global fruits = LoadAnimImage("img/fruits/fruits.bmp", 96,32, 0,1) MaskImage fruits, 255,255,255 ;Backgrounds, Button und Icons laden... Global menue_bg = LoadImage("img/bgs/menue_bg.bmp") Global bg_sea_morning = LoadImage("img/bgs/bg_sea_morning.bmp") Global ocean_quiet = LoadImage("img/bgs/ocean_quiet.bmp") ;----------------------------------------------------------------------------------- Repeat mission01() Flip Until KeyHit(1) ;----------------------------------------------------------------------------------- Type fruit Field x Field y End Type ;----------------------------------------------------------------------------------- Function mission01() While Not KeyHit(1) DrawImage bg_sea_morning, 0,0 If KeyDown(203) Then potX = potX - 3 If KeyDown(205) Then potX = potX + 3 DrawImage pot, potX,390 DrawImage ocean_quiet, 0,498 If KeyHit(57) f.fruit = New fruit ;neue Frucht erstellen fx = Rnd(1024) fy = 0 EndIf DrawImage fruits, fx,fy For f.fruit = Each fruit fy = fy + 2 ;fallen lassen DrawImage fruits, 32,32 If fy > 600 Then Delete f.fruit Next Flip 60 Wend End End Function |
||
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zu dem auf Knopfdruck fallen lassen:
Zuerst musst du eine Globale Variable einbauen - ich nenne sie obst_faellt. Die setzt du am Anfang auf Null. Dann kannst du mit KeyHit ![]() Dann brauchst du nur noch die Zeile BlitzBasic: [AUSKLAPPEN] fy = fy + 2 ;fallen lassen in BlitzBasic: [AUSKLAPPEN] If obstfaellt Then fy = fy + 2 ;fallen lassen ändern. Aja, und es wäre gut, wenn du deinen Code _RICHTIG_ einrückst. PS: Wenn du später im Code nicht mehr willst, dass dein Obst runterfällt musst du obst_faellt wieder auf 0 setzen. Ich würde das tun, wenn kein Obst der ersten Ladung mehr da ist. |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group