Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

HILFE! Meine Partikel prallen nicht und erscheinen nicht

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
psygate



Anmeldungsdatum: 05.04.2005
Beiträge: 304
Wohnort: Wien und der Computer

BeitragVerfasst am: 28.03.2006, 14:38    Titel: HILFE! Meine Partikel prallen nicht und erscheinen nicht Antworten mit Zitat

Also... Kann sich mal bitte einer meinen code
unter http://freebasic.de/fbnp/index.php?view=291
anschauen und mir sagen was da schief läuft??
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 28.03.2006, 15:26    Titel: Antworten mit Zitat

kleiner fehler..

zwei mal
WITH dots(q)
statt
WITH dots(num)
schreiben, dann bewegts sich

aber deine kollision hat noch n paar probleme weil die teile sich nicht zwangsläufig nur um einen pixel verschieben und wenn sie einmal aus dem bildschirm raus sind kommen sie nich wieder rein zwinkern
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Tomtitom



Anmeldungsdatum: 20.09.2004
Beiträge: 308

BeitragVerfasst am: 28.03.2006, 15:28    Titel: Antworten mit Zitat

und sehe tut man nix, weil die im gelockten Screen psetest

Besser du arbeitest anstatt mit int(.x) = xmax ... mit .x > xmax ...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 28.03.2006, 15:56    Titel: Antworten mit Zitat

er hat doch screenunlock drin zwinkern man sieht was sobald man statt num q schreibt..
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Tomtitom



Anmeldungsdatum: 20.09.2004
Beiträge: 308

BeitragVerfasst am: 28.03.2006, 17:53    Titel: Antworten mit Zitat

huch, na das finde ich jetzt aber komisch, er hat zwar ein unlock mit drin, aber direkt danach wird doch wieder gelockt. Funktioniert Lock anders, als ich gerade denke? Ich dachte, dass alles was gemalt wird, wenn der Screen gelockt ist, nicht erscheint.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
psygate



Anmeldungsdatum: 05.04.2005
Beiträge: 304
Wohnort: Wien und der Computer

BeitragVerfasst am: 28.03.2006, 18:00    Titel: Antworten mit Zitat

screenlock sperrt solange die screen bis screenunlock benutzt wird.

Habs mal geupt.

die kleinen racker verschwinden immer noch! mit dem Kopf durch die Mauer wollen HILFE weinen

http://freebasic.de/fbnp/index.php?view=294


Zuletzt bearbeitet von psygate am 28.03.2006, 18:05, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 28.03.2006, 18:04    Titel: Antworten mit Zitat

Wenn der Screen gelockt ist, werden die Zeichnung duchgefürht aber nicht angezeigt. (Wie auf eine Zweite unsichtbare Bildschirmseite)
Durch Screenunlock wird dann diese Zweite Seite sozusagen auf die erste Kopiert und damit Sichbar.

Zitat:
huch, na das finde ich jetzt aber komisch, er hat zwar ein unlock mit drin, aber direkt danach wird doch wieder gelockt.

Das ist Sinnvoll und auch üblich.
So sieht sieht der Benutzer den Bildaufbau nicht und der Programmierer kann ganz Normal mit PSET Line Circle etc. und vorrallem CLS Arbeiten.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Tomtitom



Anmeldungsdatum: 20.09.2004
Beiträge: 308

BeitragVerfasst am: 28.03.2006, 21:00    Titel: Antworten mit Zitat

psygate hat Folgendes geschrieben:
die kleinen racker verschwinden immer noch! mit dem Kopf durch die Mauer wollen HILFE weinen

http://freebasic.de/fbnp/index.php?view=294


Sag mal, was soll das eigentlich für ein komisches Prallverhalten sein? Sollen die immer im 45° Winkel abprallen? normalerweise ist doch Einfallswinkel = Ausfallswinkel.

Ich schlage vor, du machst das nochmal richtig, dann löst sich das Problem von selbst.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 28.03.2006, 22:02    Titel: Antworten mit Zitat

könnte beides sein.. entweder der springt nach außen aus dem bildschirm oder er "überspringt" die bildschirmkante und fliegt dann einfach weiter weil dein prog da nicht mehr kontrolliert.
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
psygate



Anmeldungsdatum: 05.04.2005
Beiträge: 304
Wohnort: Wien und der Computer

BeitragVerfasst am: 29.03.2006, 22:03    Titel: Antworten mit Zitat

@Tomtitom:

uiuiuiui!

Das ist ein grober fehler meinerseits! durchgeknallt Das Prog sollte ich echt überarbeiten peinlich
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Tomtitom



Anmeldungsdatum: 20.09.2004
Beiträge: 308

BeitragVerfasst am: 29.03.2006, 23:18    Titel: Antworten mit Zitat

schön, wenn meine Hilfe gebührlich geehrt wird...

Wenn du es nämlich so machst, dürfte das Problem, dass die Partikel durch falsche Winkel 'rausfliegen' beseitigt sein.

Dazu brauchst du nicht das ganze Prog überarbeiten, das wäre ja unzumutbar.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
d.j.peters
Gast





BeitragVerfasst am: 29.03.2006, 23:39    Titel: Antworten mit Zitat

Nur als Anregung gedacht kann Deinen code gerade nicht lesen. (NOPASTE geht gerade nich bekomme timeout!)

Grüsse Joshy
Code:
'ball3.bas
OPTION EXPLICIT

type BALL
  as double  b,a
  as single  s,v,x,y,xxx,yyy
  as integer r,c
end type

#define max_balls 100
#define scr_w 800
#define scr_h 640

const G         as double = 98.1
const Gd2       as double = G   * 0.5
const PI        as double = 4.0 * atn(1.0)
const PI2       as double = PI  * 2.0
const PId2      as double = PI  * 0.5
const OneDegree as double = PI  / 180.0

dim shared balls(max_balls-1) as BALL

sub initball(byval index as integer)
  with balls(index)
    .b=timer
    .r=5+rnd*5
    .c=1 +(index and 7)
    .x=0:.y=0
    .xxx= scr_w\2
    .yyy= scr_h\2
    .v=150 + rnd * 50
    .a=PId2 + OneDegree * (90*rnd-45)
  end with
end sub

sub updateballs()
  dim as double t,v0t,now
  dim as integer index
  now=timer()
  for index=0 to max_balls-1
    if balls(index).v<=0 then
      initball index
    else
      with balls(index)
        t =(now - .b)
        v0t=.v*t
        .x=.xxx + v0t * cos(.a)
        .y=.yyy + v0t * sin(.a)  - (gd2*(t*t))

        if (.y<.r) then
          .y=.r:.a=PI2-.a :.v-=1
          .xxx=.x
          .yyy=.y
          .b=now
        end if

        if (.x<.r) then
          .x=.r:.v-=1
          .a=onedegree*359
          .xxx=.x
          .yyy=.y
          .b=now
        elseif (.x+.r)>=(scr_w-1) then
          .x=(scr_w-1)-.r:.v-=1
          .a=PI
          .xxx=.x
          .yyy=.y
          .b=now
        endif

      end with
    end if
  next
end sub

sub drawballs()
  dim as integer index
  for index=0 to max_balls-1
    with balls(index)
      circle (.x,scr_h - .y),.r,.c,,,,F
    end with
  next
  line ((scr_w\2-10),(scr_h\2-10))-step(20,20),1,bf
end sub

dim as integer i
dim as double s

screenres scr_w,scr_h

while len(inkey)=0
  screenlock:cls
  updateballs
  drawballs
  screenunlock
wend
Nach oben
psygate



Anmeldungsdatum: 05.04.2005
Beiträge: 304
Wohnort: Wien und der Computer

BeitragVerfasst am: 30.03.2006, 13:27    Titel: Antworten mit Zitat

@Joshy : und wieder einmal das thema verfehlt.
Leider kann ich mit dem code nichts anfangen, da er etwas ganz anderes macht als meiner. Erst lesen, dann dnken, dann posten.

Aber trotzdem:danke
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz